[openstack-dev] [tempest] clients/manager in plugins

GHANSHYAM MANN ghanshyammann at gmail.com
Sat Dec 12 02:31:32 UTC 2015

Hi Ryota,

That is the one way as you mentioned.

On Fri, Dec 11, 2015 at 8:15 PM, Ryota Mibu <r-mibu at cq.jp.nec.com> wrote:
> Hi,
> This is a question regarding design of clients and managers in a tempest plugin.
> I'm not familiar with tempest, but it seems that there are the following terms:
>     Client: client of service or feature (part of service)
>     ClientManager: having clients which are needed for particular test scenario

Yes, clients called service clients are those which place request on
services and Manager to load those clients and make them available for
tests cases.

> According to [1], we are encouraged to have own client in each project repository instead of tempest tree. That means we may have to gather clients from other repositories to create a test scenario when it use other services. For example, when <project A> and <project B> are out of tempest scope/tree, we have to load client of <project B> from its repository in order to create a test scenario under <project A>.

Yes, Tempest will maintain the service client for 6 core projects (as
per Big tent Architecture) and those will be available in Tempest-lib
as stable interfaces (many of the compute clients are available [4]
and other in progress).
Plugins or any functional tests can use those from Tempest-lib and
about other project(other than those 6 which Tempest own) clients, yes
plugin needs to use from that project repo.

> If so, I'd like to use tempest.test.BaseTestCase() with my ClientManager which is customized to load clients from other repositories out of tempest and my own repository. So, I proposed [2]. But, if there is a better approach to do the similar thing, please let me know.

So existing plugins like Manila etc, instantiate their Manager  in
their base test class which is inherited from
tempest.test.BaseTestCase() Along with that way, your idea of adding
option in Tempest base class itelf to give flexibility to users to
provide Manager class looks good to me as a short term solution.
Tempest long term solution/goal is to provide the plugin ability for
Manager class also and make that available from lib. But that is plan
and might take time.

> [1] http://docs.openstack.org/developer/tempest/plugin.html
> [2] https://review.openstack.org/#/c/255161/

[3] - https://github.com/openstack/tempest-lib/tree/master/tempest_lib/services

> Thanks,
> Ryota
> -----------------------------------
> "Ryota Mibu" <r-mibu at cq.jp.nec.com>
> NEC Corporation
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Ghanshyam Mann

More information about the OpenStack-dev mailing list