[openstack-dev] [Keystone] Need help writing gate tests
ayoung at redhat.com
Thu Jul 11 03:23:34 UTC 2013
On 07/10/2013 11:01 PM, Clark Boylan wrote:
> On Wed, Jul 10, 2013 at 7:32 PM, Adam Young <ayoung at redhat.com> wrote:
>> I want to write 3 new Jenkins gate tests: Run the Keystone unit tests
>> 1. A live LDAP server
>> 2. MySQL
>> 3. Postgresql
>> Right now, we know that the unit tests will fail against the live DBs, so we
>> want those two to be non-voting. The Live LDAP one should be the scheme as
>> set up by devstack, and should be voting (can be non-voting to start)
>> where do I start? Do I need to do this in
>> https://github.com/openstack-infra/config or
> Adding a Jenkins job typically involves two pieces of config in
> openstack-infra/config. First you need to add the job to the Jenkins
> Job Builder config so that the job gets into Jenkins. This is done in
> the files under
> modules/openstack_project/files/jenkins_job_builder/config. There are
> tons of examples in there and documentation can be found at
> http://ci.openstack.org/jjb.html. The other config that is needed is
> an update to the zuul layout.yaml file telling zuul when to run the
> jobs. The layout file is at
> modules/openstack_project/files/zuul/layout.yaml and documentation for
> that can be found at http://ci.openstack.org/zuul.html.
Thanks. I'll start reading up here.
> Our CentOS 6 and Ubuntu Precise slaves (used to run python 2.6 and 2.7
> unittests) have MySQL and PostgreSQL servers running on them and are
> available to the unittests.
We currently use a sepate user and database for tests than would be run
for a live server. The keystone server is the keystone DB user, and the
unit tests run against the keystone_test database as the keystone_test
user. I assu have to create these as part of the test setup? I can
possibly add the unit test runs to the current gate jobs, assuming I can
get them to run cleanly. Would that make more sense? I thought that the
current gate jobs for Mysql and postgres were pretty much Tempest runs,
and we don't currently have a way for tempest to run Keystone unit
tests. Does that make more sense than creating a whole separate gate
job, or is the separate gate job the more scalable solution?
> You can see how Nova makes use of these
> servers at https://github.com/openstack/nova/blob/master/nova/tests/db/test_migrations.py#L31.
> I prefer having opportunistic tests like Nova because it keeps the
> number of special tests in our system down. If this isn't possible
> because the tests don't currently pass you will probably want to add a
> new test that runs something like `tox -evenv -- #command to run tests
> against real DBs`.
> Our CentOS 6 and Ubuntu Precise slaves do not currently have LDAP
> servers running on them but we would be happy to add them. I don't
> think disposable devstack slaves are necessary to do LDAP testing as
> your LDAP tests should be able to assert a clean LDAP state before
Yes, that works fine. We wipe the LDAP clean before each test. We still
need to install the schema, as that is outside the realm of Keystone.
Devstack does that now. I assume we should make puppet scripts for that?
> If that isn't possible (I could be completely wrong about my
> previous statement) you will want to look at the
> gate-pbr-devstack-vm-rawinstall in the Jenkins Job Builder config as
> it will show you how to use a devstack node for something other than
> running tempest.
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
More information about the OpenStack-dev