Prevent from CloudifyClientError (key already exists) 55/66255/1
authorCédric Ollivier <cedric.ollivier@orange.com>
Mon, 7 Jan 2019 11:15:24 +0000 (12:15 +0100)
committerCédric Ollivier <cedric.ollivier@orange.com>
Mon, 7 Jan 2019 11:19:32 +0000 (12:19 +0100)
It has rarely occured in Orange Openlab [1].

Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/functest/core/cloudify.py", line 70, in execute
    self.cfy_client.secrets.create("foo", "bar")
  File "/usr/lib/python2.7/site-packages/cloudify_rest_client/secrets.py", line 86, in create
    response = self.api.put('/secrets/{0}'.format(key), data=data)
  File "/usr/lib/python2.7/site-packages/cloudify_rest_client/client.py", line 263, in put
    timeout=timeout)
  File "/usr/lib/python2.7/site-packages/cloudify_rest_client/client.py", line 224, in do_request
    verify=self.get_request_verify(), timeout=timeout)
  File "/usr/lib/python2.7/site-packages/cloudify_rest_client/client.py", line 158, in _do_request
    self._raise_client_error(response, request_url)
  File "/usr/lib/python2.7/site-packages/cloudify_rest_client/client.py", line 119, in _raise_client_error
    response=response)
  File "/usr/lib/python2.7/site-packages/cloudify_rest_client/client.py", line 131, in _prepare_and_raise_exception
    status_code, error_code=error_code, response=response)
CloudifyClientError: 409: <Secret id=`foo` tenant=`default_tenant`> already exists on <Tenant name=`default_tenant`>

Change-Id: Ic61d0c729f13caa552a0b0a00dad35e50d130e01
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
(cherry picked from commit b8a115906e4f6e598e7e1f1b59e2b1fb201af6a5)

functest/core/cloudify.py

index 0428a13..daa63e6 100644 (file)
@@ -67,7 +67,8 @@ class Cloudify(singlevm.SingleVm2):
                     "The current manager status is %s", cfy_status)
                 if str(cfy_status) != 'running':
                     raise Exception("Cloudify Manager isn't up and running")
-                self.cfy_client.secrets.create("foo", "bar")
+                self.cfy_client.secrets.create(
+                    "foo", "bar", update_if_exists=True)
                 self.__logger.debug(
                     "List secrets: %s", self.cfy_client.secrets.list())
                 self.cfy_client.secrets.delete("foo")