Race condition appears in next situation:
1. First thread calls _set_config_value for one section.
2. Second thread calls _set_config_value for another section.
3. First thread. Config option value set, calls
open(self.config_file, 'wb'), which erases all file content.
4. Second thread. In previous point moment second thread tries to
set config option value to self.config_file, which is empty (see 3).
So, NoSectionError exception raised.
This patch adds ten retries for setting option value, if NoSectionError
raised, i.e. try to wait until self.config_file is busy.
Change-Id: Ic54ea287ebe4724511f75d42677cae5dfdec4e57
Closes-bug: #1535766
Heat integration tests
These tests can be run against any heat-enabled OpenStack cloud, however defaults match running against a recent DevStack.
To run the tests against DevStack, do the following:
# source DevStack credentials
source /opt/stack/devstack/openrc
# run the heat integration tests with those credentials
cd /opt/stack/heat
tox -eintegration
If custom configuration is required, copy the following file:
heat_integrationtests/heat_integrationtests.conf.sample
to:
heat_integrationtests/heat_integrationtests.conf
and make any required configuration changes before running:
tox -eintegration