Skip to content

Commit 3cd1904

Browse files
committed
Fix error with swr tests
1 parent 9cddbf8 commit 3cd1904

3 files changed

Lines changed: 22 additions & 2 deletions

File tree

otcextensions/tests/functional/sdk/swr/__init__.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
1010
# License for the specific language governing permissions and limitations
1111
# under the License.
12+
import time
13+
14+
from openstack import exceptions as sdk_exceptions
15+
1216
from otcextensions.tests.functional import base
1317

1418

@@ -17,3 +21,19 @@ class TestSwr(base.BaseFunctionalTest):
1721
def setUp(self):
1822
super(TestSwr, self).setUp()
1923
self.client = self.conn.swr
24+
25+
def _create_organization(self, namespace, retries=3, delay=5):
26+
"""Create an SWR organization, retrying on transient server errors.
27+
28+
The SWR "create namespace" API occasionally returns a transient
29+
5xx (e.g. SVCSTG.SWR.5000059) under load; retry a few times
30+
before giving up.
31+
"""
32+
for attempt in range(retries):
33+
try:
34+
return self.client.create_organization(namespace=namespace)
35+
except sdk_exceptions.HttpException as e:
36+
status = e.response.status_code if e.response is not None else None
37+
if not status or status < 500 or attempt == retries - 1:
38+
raise
39+
time.sleep(delay)

otcextensions/tests/functional/sdk/swr/v2/test_organization.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def setUp(self):
2222
super(TestOrganization, self).setUp()
2323

2424
self.org_name = "sdk-swr-org-" + uuid.uuid4().hex
25-
self.org = self.client.create_organization(namespace=self.org_name)
25+
self.org = self._create_organization(self.org_name)
2626
if os.getenv("OS_SWR_PERMISSIONS_RUN"):
2727
self.permission = [
2828
{

otcextensions/tests/functional/sdk/swr/v2/test_repository.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def setUp(self):
2222

2323
self.org_name = "sdk-swr-org-" + uuid.uuid4().hex
2424
self.repo_name = "sdk-swr-repo-" + uuid.uuid4().hex
25-
self.org = self.client.create_organization(namespace=self.org_name)
25+
self.org = self._create_organization(self.org_name)
2626
self.repo = self.client.create_repository(
2727
namespace=self.org_name,
2828
repository=self.repo_name,

0 commit comments

Comments
 (0)