Comment 9 for bug 1830351

Revision history for this message
Alan Bishop (alan-bishop) wrote :

The failures that started around May 7 show a problem occurring in
discover-tempest-config. The logs [1] show it detects the cinder service:

  "Setting [service_available] cinder = True"

[1] http://logs.rdoproject.org/openstack-periodic-24hr/opendev.org/openstack/tripleo-ci/master/periodic-tripleo-ci-centos-7-ovb-1ctlr_1comp-featureset020-queens/fb7d48b/logs/undercloud/home/zuul/tempest.log.txt.gz

But then when it attempts to detect whether the cinder-backup service is
available it stumbles:

  "No volume service found, skipping backup service check"

Even though, later, it reaffirms the volume service is available:

  "Setting [volume-feature-enabled] api_v3 = True"

Here's the python-tempestconf code [2]:

[2] https://github.com/openstack/python-tempestconf/blob/master/config_tempest/services/volume.py#L62

    def post_configuration(self, conf, is_service):
        # Verify if the cinder backup service is enabled
        if not is_service("volumev3"):
            C.LOG.info("No volume service found, "
                       "skipping backup service check")
            return

When is_service("volumev3") fails, it doesn't set [volume-feature-enabled]
backup = False in tempest.conf, and that setting defaults to True.

Now we have a situation where tempest thinks the cinder-backup service is
available, and the tests fail because it isn't part of the overcloud
deployment (cinder-backup is an optional service).

When things work correctly [3], the post_configuration code checks whether
the cinder-backup service is available, sees that it isn't, and correctly
configures tempest.conf:

  Setting [volume-feature-enabled] backup = False

[3] http://logs.rdoproject.org/openstack-periodic-24hr/opendev.org/openstack/tripleo-ci/master/periodic-tripleo-ci-centos-7-ovb-1ctlr_1comp-featureset020-queens/2a849bc/logs/undercloud/home/zuul/tempest.log.txt.gz

I have no idea why the post_configuration code misbehaves. I tried to
reproduce the problem (with python-tempestconf 2.0.0 and 2.2.0) but can't
get it to fail.