<div dir="ltr">Hi Tempest plugin developers / maintainers,<div><br></div><div>a new stable interface "ServiceClients" [0][1] is available in Tempest that provides tests with a convenient way to access all available service clients.</div><div>At the same time the plugin interface is extended with an optional method "get_service_clients" [2][3], that allows plugins to declare any service client they implement.</div><div><br></div><div>When a plugin uses "ServiceClients", all Tempest stable clients and all clients exposed by installed plugins via the new interface will be automatically available and pre-configured.</div><div>This makes it easy for plugins to access service clients and to write integration tests which access APIs via service clients implemented in different plugins.</div><div><br></div><div>One caveat is that three of the Tempest service clients are stable at the moment: compute, network and image. </div><div>Work is in progress to make the other three (identity, volume and object-storage) stable as well.</div><div><br></div><div><div>ServiceClients replaces the legacy "Manager" classes [2] and [3], which are not stable interface and may change or disappear without prior notice. </div><div>We'll keep them both around unchanged for a reasonable amount of time to allow for plugins to switch to the new interface - and at least as long as the remaining Tempest service clients are available in tempest.lib.</div><div><br></div><div>I tried out the new interface with a couple of plugins already [6][7]. I would heartily recommend migrating your Tempest plugin to the new interface, especially if your currently using one of the unstable "Manager" interfaces today. Please reach out for help in the #openstack-qa room if you have questions on the new interfaces, trouble using them in your plugin, requests for features or feedback.</div><div><div><br></div></div></div><div>Thanks for reading through.</div><div><br></div><div>Andrea Frittoli (andreaf)</div><div><br></div><div>[0] <a href="http://docs.openstack.org/developer/tempest/library/clients.html#tempest.lib.services.clients.ServiceClients">http://docs.openstack.org/developer/tempest/library/clients.html#tempest.lib.services.clients.ServiceClients</a> </div><div>[1] <a href="http://docs.openstack.org/releasenotes/tempest/unreleased.html#new-features">http://docs.openstack.org/releasenotes/tempest/unreleased.html#new-features</a></div><div>[2] <a href="http://docs.openstack.org/developer/tempest/plugin.html#service-clients">http://docs.openstack.org/developer/tempest/plugin.html#service-clients</a> </div><div>[3] <a href="http://docs.openstack.org/releasenotes/tempest/unreleased.html#new-features">http://docs.openstack.org/releasenotes/tempest/unreleased.html#new-features</a> </div><div>[4] <a href="http://git.openstack.org/cgit/openstack/tempest/tree/tempest/manager.py#n26">http://git.openstack.org/cgit/openstack/tempest/tree/tempest/manager.py#n26</a> </div><div>[5] <a href="http://git.openstack.org/cgit/openstack/tempest/tree/tempest/clients.py#n35">http://git.openstack.org/cgit/openstack/tempest/tree/tempest/clients.py#n35</a> </div><div>[6] <a href="https://review.openstack.org/#/c/334596/">https://review.openstack.org/#/c/334596/</a></div><div>[7] <a href="https://review.openstack.org/#/c/338486/">https://review.openstack.org/#/c/338486/</a> </div></div>