Allow VNF package upload without policies
If you upload a vnf package without policies, currently it fails with an error message: "InvalidCSAR: 'NoneType' object is not iterable". This patch fixes this issue. Closes-Bug: #1847745 Change-Id: I4d6907b4da639e62294f07cbc767a176af04337c
This commit is contained in:
parent
d0c2fb6635
commit
83bc8468b6
|
@ -236,9 +236,11 @@ def _validate_sw_image_data_for_artifacts(tosca):
|
|||
|
||||
def _get_data_from_csar(tosca, context, id):
|
||||
for tp in tosca.nested_tosca_templates_with_topology:
|
||||
levels = _get_instantiation_levels_from_policy(tp.tpl.get("policies"))
|
||||
for policy_tpl in tp.tpl.get("policies"):
|
||||
_validate_instantiation_levels(policy_tpl, levels)
|
||||
policies = tp.tpl.get("policies")
|
||||
if policies:
|
||||
levels = _get_instantiation_levels_from_policy(policies)
|
||||
for policy_tpl in policies:
|
||||
_validate_instantiation_levels(policy_tpl, levels)
|
||||
|
||||
_validate_sw_image_data_for_artifacts(tosca)
|
||||
vnf_data = _get_vnf_data(tosca.nodetemplates)
|
||||
|
|
|
@ -179,7 +179,7 @@ class Conductor(manager.Manager):
|
|||
deploy_flavour.flavour_id = flavour['flavour_id']
|
||||
deploy_flavour.flavour_description = flavour['flavour_description']
|
||||
deploy_flavour.instantiation_levels = \
|
||||
flavour['instantiation_levels']
|
||||
flavour.get('instantiation_levels')
|
||||
deploy_flavour.create()
|
||||
|
||||
sw_images = flavour.get('sw_images')
|
||||
|
|
Binary file not shown.
|
@ -162,3 +162,14 @@ class TestCSARUtils(testtools.TestCase):
|
|||
csar_utils.delete_csar_data(constants.UUID)
|
||||
mock_rmtree.assert_called()
|
||||
mock_remove.assert_called()
|
||||
|
||||
@mock.patch('tacker.common.csar_utils._extract_csar_zip_file')
|
||||
def test_load_csar_data_without_policies(
|
||||
self, mock_extract_csar_zip_file):
|
||||
file_path = os.path.join(
|
||||
self.base_path, "../../etc/samples/"
|
||||
"csar_without_policies.zip")
|
||||
vnf_data, flavours = csar_utils.load_csar_data(
|
||||
self.context, constants.UUID, file_path)
|
||||
self.assertIsNone(flavours[0].get('instantiation_levels'))
|
||||
self.assertEqual(vnf_data['descriptor_version'], '1.0')
|
||||
|
|
Loading…
Reference in New Issue