diff --git a/openstack/tests/unit/workflow/__init__.py b/openstack/tests/unit/workflow/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/openstack/tests/unit/workflow/test_version.py b/openstack/tests/unit/workflow/test_version.py new file mode 100644 index 000000000..1aca9a8fb --- /dev/null +++ b/openstack/tests/unit/workflow/test_version.py @@ -0,0 +1,43 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import testtools + +from openstack.workflow import version + +IDENTIFIER = 'IDENTIFIER' +EXAMPLE = { + 'id': IDENTIFIER, + 'links': '2', + 'status': '3', +} + + +class TestVersion(testtools.TestCase): + + def test_basic(self): + sot = version.Version() + self.assertEqual('version', sot.resource_key) + self.assertEqual('versions', sot.resources_key) + self.assertEqual('/', sot.base_path) + self.assertEqual('workflowv2', sot.service.service_type) + self.assertFalse(sot.allow_create) + self.assertFalse(sot.allow_get) + self.assertFalse(sot.allow_update) + self.assertFalse(sot.allow_delete) + self.assertTrue(sot.allow_list) + + def test_make_it(self): + sot = version.Version(**EXAMPLE) + self.assertEqual(EXAMPLE['id'], sot.id) + self.assertEqual(EXAMPLE['links'], sot.links) + self.assertEqual(EXAMPLE['status'], sot.status) diff --git a/openstack/tests/unit/workflow/test_workflow_service.py b/openstack/tests/unit/workflow/test_workflow_service.py new file mode 100644 index 000000000..cc5dd9b0e --- /dev/null +++ b/openstack/tests/unit/workflow/test_workflow_service.py @@ -0,0 +1,28 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import testtools + +from openstack.workflow import workflow_service + + +class TestWorkflowService(testtools.TestCase): + + def test_service(self): + sot = workflow_service.WorkflowService() + self.assertEqual('workflowv2', sot.service_type) + self.assertEqual('public', sot.interface) + self.assertIsNone(sot.region) + self.assertIsNone(sot.service_name) + self.assertEqual(1, len(sot.valid_versions)) + self.assertEqual('v2', sot.valid_versions[0].module) + self.assertEqual('v2', sot.valid_versions[0].path) diff --git a/openstack/workflow/__init__.py b/openstack/workflow/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/openstack/workflow/v2/__init__.py b/openstack/workflow/v2/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/openstack/workflow/version.py b/openstack/workflow/version.py new file mode 100644 index 000000000..4834e952a --- /dev/null +++ b/openstack/workflow/version.py @@ -0,0 +1,31 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + + +from openstack import resource2 as resource +from openstack.workflow import workflow_service + + +class Version(resource.Resource): + resource_key = 'version' + resources_key = 'versions' + base_path = '/' + service = workflow_service.WorkflowService( + version=workflow_service.WorkflowService.UNVERSIONED + ) + + # capabilities + allow_list = True + + # Properties + links = resource.Body('links') + status = resource.Body('status') diff --git a/openstack/workflow/workflow_service.py b/openstack/workflow/workflow_service.py new file mode 100644 index 000000000..8adc89a6c --- /dev/null +++ b/openstack/workflow/workflow_service.py @@ -0,0 +1,26 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from openstack import service_filter + + +class WorkflowService(service_filter.ServiceFilter): + """The workflow service.""" + + valid_versions = [service_filter.ValidVersion('v2')] + + def __init__(self, version=None): + """Create a workflow service.""" + super(WorkflowService, self).__init__( + service_type='workflowv2', + version=version + )