<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>I've been developing the streamer functionality, and it's correctly working (in my testing) as driven from the Remote.policy attribute. It correctly works with 'immediate', 'on_demand', and 'cache_only'. Read more about the expected behaviors in the epic [0].<br></div><div><br></div><div># Try it out!<br></div><div>Here is the core commit needed:  <a href="https://github.com/pulp/pulp/pull/3738">https://github.com/pulp/pulp/pull/3738</a></div><div>Here is the streamer you should pip install from master:  <a href="https://github.com/bmbouter/pulp_streamer">https://github.com/bmbouter/pulp_streamer</a></div><div>Here is what it looks like to port a plugin using DeclarativeVersion, e.g. pulp_file to support lazy:  <a href="https://github.com/pulp/pulp_file/pull/132">https://github.com/pulp/pulp_file/pull/132</a></div><div><br></div><div>You'll need to configure Pulp's webserver for streaming. I did this by exporting an environment var to dynaconf in the same bash environment as my django run server. Specifically I configured Pulp to redirect to port localhost:8080/streamer/ with this command:</div><div><br></div><div>export PULP_CONTENT='@json {"HOST": null, "WEB_SERVER": "django", "REDIRECT": {"ENABLED": true, "PORT": 8080, "HOST": "localhost", "PATH_PREFIX": "/streamer/"}}'</div><div><br></div><div>Then I run the streamer (after pip installed) with gunicorn which you also need to pip install. Run it with:</div><div><br></div><div>gunicorn pulpcore.streamer:server --bind localhost:8080 --worker-class aiohttp.GunicornWebWorker -w 2</div><div><br></div><div>Then sync a pulp_file repo with policy='on_demand' or policy='cache_only' and see how Pulp behaves.</div><div><br></div><div>Feedback, ideas, concerns are welcome in any form. Note this is still rough, and the following are known things to be done:</div><div><br></div><div>* fix tests to get Travis passing<br></div><div>* docs for the streamer and for pulpcore<br></div><div>* an installer role to install the streamer</div><div>* integration with squid to cache lots of data at the streamer<br></div><div>* transfer the pulp_streamer to the Pulp org on github</div><div>* publish an initial release to PyPI for users to use it</div><div>* write a blog post about porting to it and using it</div><div>* make a demo</div><div><br></div><div>[0]: <a href="https://pulp.plan.io/issues/3693">https://pulp.plan.io/issues/3693</a></div><div><br></div><div>Thanks!</div><div>Brian<br></div></div></div></div></div></div></div></div>