Merge "wokflow: add update_workflow proxy method"

This commit is contained in:
Zuul 2023-07-24 12:29:13 +00:00 committed by Gerrit Code Review
commit 1841fb2710
6 changed files with 43 additions and 6 deletions

View File

@ -15,8 +15,8 @@ Workflow Operations
.. autoclass:: openstack.workflow.v2._proxy.Proxy
:noindex:
:members: create_workflow, delete_workflow, get_workflow,
find_workflow, workflows
:members: create_workflow, update_workflow, delete_workflow,
get_workflow, find_workflow, workflows
Execution Operations
^^^^^^^^^^^^^^^^^^^^

View File

@ -33,6 +33,7 @@ class TestWorkflow(base.TestCase):
self.assertTrue(sot.allow_fetch)
self.assertTrue(sot.allow_list)
self.assertTrue(sot.allow_create)
self.assertTrue(sot.allow_commit)
self.assertTrue(sot.allow_delete)
def test_instantiate(self):

View File

@ -37,6 +37,9 @@ class TestWorkflowProxy(test_proxy_base.TestProxyBase):
def test_workflow_create(self):
self.verify_create(self.proxy.create_workflow, workflow.Workflow)
def test_workflow_update(self):
self.verify_update(self.proxy.update_workflow, workflow.Workflow)
def test_execution_create(self):
self.verify_create(self.proxy.create_execution, execution.Execution)

View File

@ -34,6 +34,21 @@ class Proxy(proxy.Proxy):
"""
return self._create(_workflow.Workflow, **attrs)
def update_workflow(self, workflow, **attrs):
"""Update workflow from attributes
:param workflow: The value can be either the name of a workflow or a
:class:`~openstack.workflow.v2.workflow.Workflow`
instance.
:param dict attrs: Keyword arguments which will be used to update
a :class:`~openstack.workflow.v2.workflow.Workflow`,
comprised of the properties on the Workflow class.
:returns: The results of workflow update
:rtype: :class:`~openstack.workflow.v2.workflow.Workflow`
"""
return self._update(_workflow.Workflow, workflow, **attrs)
def get_workflow(self, *attrs):
"""Get a workflow

View File

@ -20,6 +20,7 @@ class Workflow(resource.Resource):
# capabilities
allow_create = True
allow_commit = True
allow_list = True
allow_fetch = True
allow_delete = True
@ -47,7 +48,7 @@ class Workflow(resource.Resource):
#: The time at which the workflow was created
updated_at = resource.Body("updated_at")
def create(self, session, prepend_key=True, base_path=None):
def _request_kwargs(self, prepend_key=True, base_path=None):
request = self._prepare_request(
requires_id=False, prepend_key=prepend_key, base_path=base_path
)
@ -61,9 +62,23 @@ class Workflow(resource.Resource):
uri = request.url + scope
request.headers.update(headers)
response = session.post(
uri, json=None, headers=request.headers, **kwargs
)
return dict(url=uri, json=None, headers=request.headers, **kwargs)
def create(self, session, prepend_key=True, base_path=None):
kwargs = self._request_kwargs(
prepend_key=prepend_key, base_path=base_path
)
response = session.post(**kwargs)
self._translate_response(response, has_body=False)
return self
def update(self, session, prepend_key=True, base_path=None):
kwargs = self._request_kwargs(
prepend_key=prepend_key, base_path=base_path
)
response = session.put(**kwargs)
self._translate_response(response, has_body=False)
return self
def commit(self, *args, **kwargs):
return self.update(*args, **kwargs)

View File

@ -0,0 +1,3 @@
features:
- |
Added ``update_workflow`` to the workflow proxy.