From c8201c119ec686e79797721156767685fe848aca Mon Sep 17 00:00:00 2001 From: shangxdy Date: Thu, 7 Apr 2016 14:08:49 -0400 Subject: Update tosca lib to version 0.5 Use tosca-parser and heat-translator to analyze to the basic nfv-tosca type definitions, and use simple tosca new feature such as policy, group and trigger, which are now supported by the latest version of tosca-parser and heat-translator. JIRA:PARSER-18 Change-Id: I797bcacbb5b32005d0aeb0f3f32851ac96e30f01 Signed--off-by: shangxdy Signed-off-by: shangxdy --- .../translator/hot/tosca/tests/__init__.py | 0 .../hot/tosca/tests/test_tosca_blockstorage.py | 84 ------- .../hot/tosca/tests/test_tosca_compute.py | 253 --------------------- .../hot/tosca/tests/test_tosca_objectstore.py | 71 ------ 4 files changed, 408 deletions(-) delete mode 100644 tosca2heat/heat-translator-0.3.0/translator/hot/tosca/tests/__init__.py delete mode 100644 tosca2heat/heat-translator-0.3.0/translator/hot/tosca/tests/test_tosca_blockstorage.py delete mode 100644 tosca2heat/heat-translator-0.3.0/translator/hot/tosca/tests/test_tosca_compute.py delete mode 100644 tosca2heat/heat-translator-0.3.0/translator/hot/tosca/tests/test_tosca_objectstore.py (limited to 'tosca2heat/heat-translator-0.3.0/translator/hot/tosca/tests') diff --git a/tosca2heat/heat-translator-0.3.0/translator/hot/tosca/tests/__init__.py b/tosca2heat/heat-translator-0.3.0/translator/hot/tosca/tests/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/tosca2heat/heat-translator-0.3.0/translator/hot/tosca/tests/test_tosca_blockstorage.py b/tosca2heat/heat-translator-0.3.0/translator/hot/tosca/tests/test_tosca_blockstorage.py deleted file mode 100644 index d4fffe1..0000000 --- a/tosca2heat/heat-translator-0.3.0/translator/hot/tosca/tests/test_tosca_blockstorage.py +++ /dev/null @@ -1,84 +0,0 @@ -# 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 toscaparser.common.exception import InvalidPropertyValueError -from toscaparser.nodetemplate import NodeTemplate -from toscaparser.tests.base import TestCase -from toscaparser.utils.gettextutils import _ -import toscaparser.utils.yamlparser -from translator.hot.tosca.tosca_block_storage import ToscaBlockStorage - - -class ToscaBlockStoreTest(TestCase): - - def _tosca_blockstore_test(self, tpl_snippet, expectedprops): - nodetemplates = (toscaparser.utils.yamlparser. - simple_parse(tpl_snippet)['node_templates']) - name = list(nodetemplates.keys())[0] - try: - nodetemplate = NodeTemplate(name, nodetemplates) - tosca_block_store = ToscaBlockStorage(nodetemplate) - tosca_block_store.handle_properties() - if not self._compare_properties(tosca_block_store.properties, - expectedprops): - raise Exception(_("Hot Properties are not" - " same as expected properties")) - except Exception: - # for time being rethrowing. Will be handled future based - # on new development - raise - - def _compare_properties(self, hotprops, expectedprops): - return all(item in hotprops.items() for item in expectedprops.items()) - - def test_node_blockstorage_with_properties(self): - tpl_snippet = ''' - node_templates: - my_storage: - type: tosca.nodes.BlockStorage - properties: - size: 1024 MiB - snapshot_id: abc - ''' - expectedprops = {'snapshot_id': 'abc', - 'size': 1} - self._tosca_blockstore_test( - tpl_snippet, - expectedprops) - - tpl_snippet = ''' - node_templates: - my_storage: - type: tosca.nodes.BlockStorage - properties: - size: 124 MB - snapshot_id: abc - ''' - expectedprops = {'snapshot_id': 'abc', - 'size': 1} - self._tosca_blockstore_test( - tpl_snippet, - expectedprops) - - def test_node_blockstorage_with_invalid_size_property(self): - tpl_snippet = ''' - node_templates: - my_storage: - type: tosca.nodes.BlockStorage - properties: - size: 0 MB - snapshot_id: abc - ''' - expectedprops = {} - self.assertRaises(InvalidPropertyValueError, - lambda: self._tosca_blockstore_test(tpl_snippet, - expectedprops)) diff --git a/tosca2heat/heat-translator-0.3.0/translator/hot/tosca/tests/test_tosca_compute.py b/tosca2heat/heat-translator-0.3.0/translator/hot/tosca/tests/test_tosca_compute.py deleted file mode 100644 index f956344..0000000 --- a/tosca2heat/heat-translator-0.3.0/translator/hot/tosca/tests/test_tosca_compute.py +++ /dev/null @@ -1,253 +0,0 @@ -# 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 json -import mock -from mock import patch - -from toscaparser.nodetemplate import NodeTemplate -from toscaparser.tests.base import TestCase -from toscaparser.utils.gettextutils import _ -import toscaparser.utils.yamlparser -from translator.hot.tosca.tosca_compute import ToscaCompute - - -class ToscaComputeTest(TestCase): - - def _tosca_compute_test(self, tpl_snippet, expectedprops): - nodetemplates = (toscaparser.utils.yamlparser. - simple_parse(tpl_snippet)['node_templates']) - name = list(nodetemplates.keys())[0] - try: - nodetemplate = NodeTemplate(name, nodetemplates) - nodetemplate.validate() - toscacompute = ToscaCompute(nodetemplate) - toscacompute.handle_properties() - if not self._compare_properties(toscacompute.properties, - expectedprops): - raise Exception(_("Hot Properties are not" - " same as expected properties")) - except Exception: - # for time being rethrowing. Will be handled future based - # on new development in Glance and Graffiti - raise - - def _compare_properties(self, hotprops, expectedprops): - return all(item in hotprops.items() for item in expectedprops.items()) - - def test_node_compute_with_host_and_os_capabilities(self): - tpl_snippet = ''' - node_templates: - server: - type: tosca.nodes.Compute - capabilities: - host: - properties: - disk_size: 10 GB - num_cpus: 4 - mem_size: 4 GB - os: - properties: - architecture: x86_64 - type: Linux - distribution: Fedora - version: 18.0 - ''' - expectedprops = {'flavor': 'm1.large', - 'image': 'fedora-amd64-heat-config'} - self._tosca_compute_test( - tpl_snippet, - expectedprops) - - def test_node_compute_without_os_capabilities(self): - tpl_snippet = ''' - node_templates: - server: - type: tosca.nodes.Compute - capabilities: - host: - properties: - disk_size: 10 GB - num_cpus: 4 - mem_size: 4 GB - #left intentionally - ''' - expectedprops = {'flavor': 'm1.large', - 'image': None} - self._tosca_compute_test( - tpl_snippet, - expectedprops) - - def test_node_compute_without_host_capabilities(self): - tpl_snippet = ''' - node_templates: - server: - type: tosca.nodes.Compute - capabilities: - os: - properties: - architecture: x86_64 - type: Linux - distribution: Fedora - version: 18.0 - ''' - expectedprops = {'flavor': None, - 'image': 'fedora-amd64-heat-config'} - self._tosca_compute_test( - tpl_snippet, - expectedprops) - - def test_node_compute_without_properties_and_os_capabilities(self): - tpl_snippet = ''' - node_templates: - server: - type: tosca.nodes.Compute - properties: - #left intentionally - capabilities: - #left intentionally - ''' - expectedprops = {'flavor': None, - 'image': None} - self._tosca_compute_test( - tpl_snippet, - expectedprops) - - def test_node_compute_with_only_type(self): - tpl_snippet = ''' - node_templates: - server: - type: tosca.nodes.Compute - ''' - expectedprops = {'flavor': None, - 'image': None} - self._tosca_compute_test( - tpl_snippet, - expectedprops) - - def test_node_compute_host_capabilities_without_properties(self): - tpl_snippet = ''' - node_templates: - server: - type: tosca.nodes.Compute - capabilities: - host: - properties: - #left intentionally - ''' - expectedprops = {'flavor': 'm1.nano'} - self._tosca_compute_test( - tpl_snippet, - expectedprops) - - def test_node_compute_host_capabilities_without_disk_size(self): - tpl_snippet = ''' - node_templates: - server: - type: tosca.nodes.Compute - capabilities: - host: - properties: - num_cpus: 4 - mem_size: 4 GB - ''' - expectedprops = {'flavor': 'm1.large'} - self._tosca_compute_test( - tpl_snippet, - expectedprops) - - def test_node_compute_host_capabilities_without_mem_size(self): - tpl_snippet = ''' - node_templates: - server: - type: tosca.nodes.Compute - capabilities: - host: - properties: - num_cpus: 4 - disk_size: 10 GB - ''' - expectedprops = {'flavor': 'm1.large'} - self._tosca_compute_test( - tpl_snippet, - expectedprops) - - def test_node_compute_host_capabilities_without_mem_size_disk_size(self): - tpl_snippet = ''' - node_templates: - server: - type: tosca.nodes.Compute - capabilities: - host: - properties: - num_cpus: 4 - ''' - expectedprops = {'flavor': 'm1.large'} - self._tosca_compute_test( - tpl_snippet, - expectedprops) - - @patch('requests.post') - @patch('requests.get') - @patch('os.getenv') - def test_node_compute_with_nova_flavor(self, mock_os_getenv, - mock_get, mock_post): - tpl_snippet = ''' - node_templates: - server: - type: tosca.nodes.Compute - capabilities: - host: - properties: - num_cpus: 1 - disk_size: 1 GB - mem_size: 1 GB - ''' - with patch('translator.hot.tosca.tosca_compute.ToscaCompute.' - '_check_for_env_variables') as mock_check_env: - mock_check_env.return_value = True - mock_os_getenv.side_effect = ['demo', 'demo', - 'demo', 'http://abc.com/5000/'] - mock_ks_response = mock.MagicMock() - mock_ks_response.status_code = 200 - mock_ks_content = { - 'access': { - 'token': { - 'id': 'd1dfa603-3662-47e0-b0b6-3ae7914bdf76' - }, - 'serviceCatalog': [{ - 'type': 'compute', - 'endpoints': [{ - 'publicURL': 'http://abc.com' - }] - }] - } - } - mock_ks_response.content = json.dumps(mock_ks_content) - mock_nova_response = mock.MagicMock() - mock_nova_response.status_code = 200 - mock_flavor_content = { - 'flavors': [{ - 'name': 'm1.mock_flavor', - 'ram': 1024, - 'disk': 1, - 'vcpus': 1 - }] - } - mock_nova_response.content = \ - json.dumps(mock_flavor_content) - mock_post.return_value = mock_ks_response - mock_get.return_value = mock_nova_response - expectedprops = {'flavor': 'm1.mock_flavor'} - self._tosca_compute_test( - tpl_snippet, - expectedprops) diff --git a/tosca2heat/heat-translator-0.3.0/translator/hot/tosca/tests/test_tosca_objectstore.py b/tosca2heat/heat-translator-0.3.0/translator/hot/tosca/tests/test_tosca_objectstore.py deleted file mode 100644 index 4c42794..0000000 --- a/tosca2heat/heat-translator-0.3.0/translator/hot/tosca/tests/test_tosca_objectstore.py +++ /dev/null @@ -1,71 +0,0 @@ -# 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 toscaparser.nodetemplate import NodeTemplate -from toscaparser.tests.base import TestCase -from toscaparser.utils.gettextutils import _ -import toscaparser.utils.yamlparser -from translator.hot.tosca.tosca_object_storage import ToscaObjectStorage - - -class ToscaObjectStoreTest(TestCase): - - def _tosca_objectstore_test(self, tpl_snippet, expectedprops): - nodetemplates = (toscaparser.utils.yamlparser. - simple_parse(tpl_snippet)['node_templates']) - name = list(nodetemplates.keys())[0] - try: - nodetemplate = NodeTemplate(name, nodetemplates) - tosca_object_store = ToscaObjectStorage(nodetemplate) - tosca_object_store.handle_properties() - if not self._compare_properties(tosca_object_store.properties, - expectedprops): - raise Exception(_("Hot Properties are not" - " same as expected properties")) - except Exception: - # for time being rethrowing. Will be handled future based - # on new development - raise - - def _compare_properties(self, hotprops, expectedprops): - return all(item in hotprops.items() for item in expectedprops.items()) - - def test_node_objectstorage_with_properties(self): - tpl_snippet = ''' - node_templates: - server: - type: tosca.nodes.ObjectStorage - properties: - name: test - size: 1024 KB - maxsize: 1 MB - ''' - expectedprops = {'name': 'test', - 'X-Container-Meta': {'Quota-Bytes': 1000000}} - self._tosca_objectstore_test( - tpl_snippet, - expectedprops) - - def test_node_objectstorage_with_few_properties(self): - tpl_snippet = ''' - node_templates: - server: - type: tosca.nodes.ObjectStorage - properties: - name: test - size: 1024 B - ''' - expectedprops = {'name': 'test', - 'X-Container-Meta': {'Quota-Bytes': 1024}} - self._tosca_objectstore_test( - tpl_snippet, - expectedprops) -- cgit 1.2.3-korg