diff options
-rw-r--r-- | src/onapsdk/so/templates/deletion_service.json.j2 | 2 | ||||
-rw-r--r-- | src/onapsdk/so/templates/instantiate_service_macro.json.j2 | 26 | ||||
-rw-r--r-- | tests/test_so_instantiation.py | 412 |
3 files changed, 244 insertions, 196 deletions
diff --git a/src/onapsdk/so/templates/deletion_service.json.j2 b/src/onapsdk/so/templates/deletion_service.json.j2 index 1244e97..022c08e 100644 --- a/src/onapsdk/so/templates/deletion_service.json.j2 +++ b/src/onapsdk/so/templates/deletion_service.json.j2 @@ -14,7 +14,7 @@ "requestParameters": { "testApi": "GR_API", "aLaCarte": {{ a_la_carte | tojson }} - }{% if service_instance.sdc_service.has_vnfs %}, + }{% if service_instance.sdc_service.resources and service_instance.sdc_service.has_vnfs %}, {# the code below is needed to be refactored #} {# https://gitlab.com/Orange-OpenSource/lfn/onap/python-onapsdk/-/issues/133 #} "cloudConfiguration": { diff --git a/src/onapsdk/so/templates/instantiate_service_macro.json.j2 b/src/onapsdk/so/templates/instantiate_service_macro.json.j2 index b00a043..d33aea5 100644 --- a/src/onapsdk/so/templates/instantiate_service_macro.json.j2 +++ b/src/onapsdk/so/templates/instantiate_service_macro.json.j2 @@ -18,7 +18,7 @@ "modelName": "{{ sdc_service.name }}", "modelVersion": "1.0" }, - {% if sdc_service.has_vnfs %} + {% if sdc_service.resources and sdc_service.has_vnfs %} "cloudConfiguration": { "tenantId": "{{ tenant.tenant_id }}", "cloudOwner": "{{ cloud_region.cloud_owner }}", @@ -44,16 +44,32 @@ {% endif %} { "service": { + {% if not sdc_service.resources %} + "instanceParams": [], + {% else %} "instanceParams": [ - {% if so_service %} + {% if so_service %} { {% for key, value in so_service.parameters.items() %} - "{{ key }}": "{{ value }}"{% if not loop.last %},{% endif %} + "{{ key }}": "{{ value }}"{% if not loop.last %}, + {% endif %} {% endfor %} } {% endif %} ], + {% endif %} "instanceName": "{{ service_instance_name }}", + {% if not sdc_service.resources %} + "resources": {}, + "modelInfo": { + "modelVersion": "1.0", + "modelVersionId": "{{ sdc_service.identifier }}", + "modelInvariantId": "{{ sdc_service.unique_uuid }}", + "modelName": "{{ sdc_service.name }}", + "modelType": "service" + } + } + {% else %} "resources": { {% block pnfs %} {% if sdc_service.pnfs %} @@ -166,7 +182,9 @@ "modelType": "service" } } + {% endif %} } + ], "aLaCarte": false }, @@ -178,4 +196,4 @@ "owningEntityName": "{{ owning_entity.name }}" } } -} +}
\ No newline at end of file diff --git a/tests/test_so_instantiation.py b/tests/test_so_instantiation.py index 200dd11..e3dcfd7 100644 --- a/tests/test_so_instantiation.py +++ b/tests/test_so_instantiation.py @@ -46,7 +46,7 @@ def test_service_ala_carte_instantiation(mock_service_instantiation_send_message mock_sdc_service = mock.MagicMock() mock_sdc_service.distributed = False with pytest.raises(StatusError): - ServiceInstantiation.\ + ServiceInstantiation. \ instantiate_ala_carte(sdc_service=mock_sdc_service, cloud_region=mock.MagicMock(), tenant=mock.MagicMock(), @@ -56,25 +56,25 @@ def test_service_ala_carte_instantiation(mock_service_instantiation_send_message service_instance_name="test", service_subscription=mock.MagicMock()) mock_sdc_service.distributed = True - service_instance = ServiceInstantiation.\ - instantiate_ala_carte(sdc_service=mock_sdc_service, - cloud_region=mock.MagicMock(), - tenant=mock.MagicMock(), - customer=mock.MagicMock(), - owning_entity=mock.MagicMock(), - project=mock.MagicMock(), - service_instance_name="test", - service_subscription=mock.MagicMock()) + service_instance = ServiceInstantiation. \ + instantiate_ala_carte(sdc_service=mock_sdc_service, + cloud_region=mock.MagicMock(), + tenant=mock.MagicMock(), + customer=mock.MagicMock(), + owning_entity=mock.MagicMock(), + project=mock.MagicMock(), + service_instance_name="test", + service_subscription=mock.MagicMock()) assert service_instance.name == "test" - service_instance = ServiceInstantiation.\ - instantiate_ala_carte(sdc_service=mock_sdc_service, - cloud_region=mock.MagicMock(), - tenant=mock.MagicMock(), - customer=mock.MagicMock(), - owning_entity=mock.MagicMock(), - project=mock.MagicMock(), - service_subscription=mock.MagicMock()) + service_instance = ServiceInstantiation. \ + instantiate_ala_carte(sdc_service=mock_sdc_service, + cloud_region=mock.MagicMock(), + tenant=mock.MagicMock(), + customer=mock.MagicMock(), + owning_entity=mock.MagicMock(), + project=mock.MagicMock(), + service_subscription=mock.MagicMock()) assert service_instance.name.startswith("Python_ONAP_SDK_service_instance_") mock_service_instantiation_send_message.assert_called() method, _, url = mock_service_instantiation_send_message.call_args[0] @@ -88,7 +88,7 @@ def test_service_macro_instantiation(mock_service_instantiation_send_message): mock_sdc_service = mock.MagicMock() mock_sdc_service.distributed = False with pytest.raises(StatusError): - ServiceInstantiation.\ + ServiceInstantiation. \ instantiate_macro(sdc_service=mock_sdc_service, cloud_region=mock.MagicMock(), tenant=mock.MagicMock(), @@ -100,18 +100,18 @@ def test_service_macro_instantiation(mock_service_instantiation_send_message): service_instance_name="test", service_subscription=mock.MagicMock()) mock_sdc_service.distributed = True - service_instance = ServiceInstantiation.\ - instantiate_macro(sdc_service=mock_sdc_service, - cloud_region=mock.MagicMock(), - tenant=mock.MagicMock(), - customer=mock.MagicMock(), - owning_entity=mock.MagicMock(), - project=mock.MagicMock(), - line_of_business=mock.MagicMock(), - platform=mock.MagicMock(), - service_instance_name="test", - service_subscription=mock.MagicMock(), - skip_pnf_registration_event=True) + service_instance = ServiceInstantiation. \ + instantiate_macro(sdc_service=mock_sdc_service, + cloud_region=mock.MagicMock(), + tenant=mock.MagicMock(), + customer=mock.MagicMock(), + owning_entity=mock.MagicMock(), + project=mock.MagicMock(), + line_of_business=mock.MagicMock(), + platform=mock.MagicMock(), + service_instance_name="test", + service_subscription=mock.MagicMock(), + skip_pnf_registration_event=True) assert service_instance.name == "test" service_instance = ServiceInstantiation. \ @@ -127,16 +127,16 @@ def test_service_macro_instantiation(mock_service_instantiation_send_message): service_subscription=mock.MagicMock()) assert service_instance.name == "test" - service_instance = ServiceInstantiation.\ - instantiate_macro(sdc_service=mock_sdc_service, - cloud_region=mock.MagicMock(), - tenant=mock.MagicMock(), - customer=mock.MagicMock(), - owning_entity=mock.MagicMock(), - line_of_business=mock.MagicMock(), - platform=mock.MagicMock(), - project=mock.MagicMock(), - so_service=mock.MagicMock()) + service_instance = ServiceInstantiation. \ + instantiate_macro(sdc_service=mock_sdc_service, + cloud_region=mock.MagicMock(), + tenant=mock.MagicMock(), + customer=mock.MagicMock(), + owning_entity=mock.MagicMock(), + line_of_business=mock.MagicMock(), + platform=mock.MagicMock(), + project=mock.MagicMock(), + so_service=mock.MagicMock()) assert service_instance.name.startswith("Python_ONAP_SDK_service_instance_") mock_service_instantiation_send_message.assert_called() method, _, url = mock_service_instantiation_send_message.call_args[0] @@ -146,16 +146,16 @@ def test_service_macro_instantiation(mock_service_instantiation_send_message): so_service_mock = mock.MagicMock() so_service_mock.instance_name = "SoServiceInstanceName" - service_instance = ServiceInstantiation.\ - instantiate_macro(sdc_service=mock_sdc_service, - cloud_region=mock.MagicMock(), - tenant=mock.MagicMock(), - customer=mock.MagicMock(), - owning_entity=mock.MagicMock(), - line_of_business=mock.MagicMock(), - platform=mock.MagicMock(), - project=mock.MagicMock(), - so_service=so_service_mock) + service_instance = ServiceInstantiation. \ + instantiate_macro(sdc_service=mock_sdc_service, + cloud_region=mock.MagicMock(), + tenant=mock.MagicMock(), + customer=mock.MagicMock(), + owning_entity=mock.MagicMock(), + line_of_business=mock.MagicMock(), + platform=mock.MagicMock(), + project=mock.MagicMock(), + so_service=so_service_mock) assert service_instance.name == "SoServiceInstanceName" mock_service_instantiation_send_message.assert_called() method, _, url = mock_service_instantiation_send_message.call_args[0] @@ -163,11 +163,11 @@ def test_service_macro_instantiation(mock_service_instantiation_send_message): assert url == (f"{ServiceInstantiation.base_url}/onap/so/infra/" f"serviceInstantiation/{ServiceInstantiation.api_version}/serviceInstances") + ##upgrade service @mock.patch.object(ServiceInstantiation, "send_message_json") @mock.patch.object(OwningEntity, "get_by_owning_entity_id") def test_svc_macro_so_action(mock_owning_entity_get, mock_svc_instantiation_send_message): - mock_sdc_service = mock.MagicMock() mock_aai_service_instance = mock.MagicMock() mock_aai_service_instance.instance_id = mock.MagicMock() @@ -193,11 +193,11 @@ def test_svc_macro_so_action(mock_owning_entity_get, mock_svc_instantiation_send ##upgradeAPI of Service svc_instance_upgrade = ServiceInstantiation. \ - so_service_action(operation_svc_type=ServiceOperation.UPGRADE_SERVICE, - aai_service_instance=mock_aai_service_instance, - platform=mock.MagicMock(), - sdc_service=mock_sdc_service, - so_service=mock.MagicMock()) + so_service_action(operation_svc_type=ServiceOperation.UPGRADE_SERVICE, + aai_service_instance=mock_aai_service_instance, + platform=mock.MagicMock(), + sdc_service=mock_sdc_service, + so_service=mock.MagicMock()) assert svc_instance_upgrade.name.startswith("Python_ONAP_SDK_service_instance_") mock_svc_instantiation_send_message.assert_called() method, _, url = mock_svc_instantiation_send_message.call_args[0] @@ -206,23 +206,24 @@ def test_svc_macro_so_action(mock_owning_entity_get, mock_svc_instantiation_send f"serviceInstantiation/{ServiceInstantiation.api_version}/serviceInstances/" f"{mock_aai_service_instance.instance_id}/upgrade") + def test_service_instance_aai_service_instance(): customer_mock = mock.MagicMock() service_instantiation = ServiceInstantiation(name="test", - request_id="test_request_id", - instance_id="test_instance_id", - sdc_service=mock.MagicMock(), - cloud_region=mock.MagicMock(), - tenant=mock.MagicMock(), - customer=customer_mock, - owning_entity=mock.MagicMock(), - project=mock.MagicMock()) + request_id="test_request_id", + instance_id="test_instance_id", + sdc_service=mock.MagicMock(), + cloud_region=mock.MagicMock(), + tenant=mock.MagicMock(), + customer=customer_mock, + owning_entity=mock.MagicMock(), + project=mock.MagicMock()) status_mock = mock.PropertyMock(return_value=ServiceInstantiation.StatusEnum.IN_PROGRESS) type(service_instantiation).status = status_mock with pytest.raises(StatusError): service_instantiation.aai_service_instance - status_mock.return_value = return_value=ServiceInstantiation.StatusEnum.COMPLETED + status_mock.return_value = return_value = ServiceInstantiation.StatusEnum.COMPLETED assert service_instantiation.aai_service_instance is not None customer_mock.get_service_subscription_by_service_type.side_effect = APIError @@ -235,7 +236,7 @@ def test_service_instance_aai_service_instance(): def test_vnf_instantiation(mock_vnf_instantiation_send_message): aai_service_instance_mock = mock.MagicMock() aai_service_instance_mock.instance_id = "test_instance_id" - vnf_instantiation = VnfInstantiation.\ + vnf_instantiation = VnfInstantiation. \ instantiate_ala_carte(aai_service_instance=aai_service_instance_mock, vnf_object=mock.MagicMock(), line_of_business="test_lob", @@ -251,7 +252,7 @@ def test_vnf_instantiation(mock_vnf_instantiation_send_message): f"{VnfInstantiation.api_version}/serviceInstances/" f"{aai_service_instance_mock.instance_id}/vnfs") - vnf_instantiation = VnfInstantiation.\ + vnf_instantiation = VnfInstantiation. \ instantiate_ala_carte(aai_service_instance=aai_service_instance_mock, vnf_object=mock.MagicMock(), line_of_business="test_lob", @@ -267,7 +268,7 @@ def test_vnf_instantiation(mock_vnf_instantiation_send_message): def test_vnf_instantiation_with_cr_and_tenant(mock_vnf_instantiation_send_message): aai_service_instance_mock = mock.MagicMock() aai_service_instance_mock.instance_id = "test_instance_id" - vnf_instantiation = VnfInstantiation.\ + vnf_instantiation = VnfInstantiation. \ instantiate_ala_carte(aai_service_instance=aai_service_instance_mock, vnf_object=mock.MagicMock(), line_of_business="test_lob", @@ -283,7 +284,7 @@ def test_vnf_instantiation_with_cr_and_tenant(mock_vnf_instantiation_send_messag f"{VnfInstantiation.api_version}/serviceInstances/" f"{aai_service_instance_mock.instance_id}/vnfs") - vnf_instantiation = VnfInstantiation.\ + vnf_instantiation = VnfInstantiation. \ instantiate_ala_carte(aai_service_instance=aai_service_instance_mock, vnf_object=mock.MagicMock(), line_of_business="test_lob", @@ -310,7 +311,7 @@ def test_vnf_instantiation_macro(mock_owning_entity_get, mock_vnf_instantiation_ aai_service_instance_mock.relationships = (item for item in [relation_1, relation_2]) - vnf_instantiation = VnfInstantiation.\ + vnf_instantiation = VnfInstantiation. \ instantiate_macro(aai_service_instance=aai_service_instance_mock, vnf_object=mock.MagicMock(), line_of_business="test_lob", @@ -361,6 +362,7 @@ def test_vnf_instantiation_macro(mock_owning_entity_get, mock_vnf_instantiation_ so_vnf=so_vnf_mock) assert vnf_instantiation.name == "SoVnfInstanceName" + @mock.patch.object(PnfInstantiation, "send_message_json") @mock.patch.object(OwningEntity, "get_by_owning_entity_id") def test_pnf_instantiation_macro(mock_owning_entity_get, mock_pnf_instantiation_send_message): @@ -376,7 +378,7 @@ def test_pnf_instantiation_macro(mock_owning_entity_get, mock_pnf_instantiation_ aai_service_instance_mock.relationships = (item for item in [relation_1, relation_2]) - pnf_instantiation = PnfInstantiation.\ + pnf_instantiation = PnfInstantiation. \ instantiate_macro(aai_service_instance=aai_service_instance_mock, pnf_object=mock.MagicMock(), line_of_business="test_lob", @@ -419,13 +421,13 @@ def test_pnf_instantiation_macro(mock_owning_entity_get, mock_pnf_instantiation_ so_pnf=so_pnf_mock) assert pnf_instantiation.name == "SoPnfInstanceName" + @mock.patch.object(VnfInstantiation, "send_message_json") @mock.patch.object(OwningEntity, "get_by_owning_entity_id") def test_vnf_macro_so_action(mock_owning_entity_get, mock_vnf_instantiation_send_message): - mock_sdc_service = mock.MagicMock() with pytest.raises(StatusError): - VnfInstantiation.\ + VnfInstantiation. \ so_action(vnf_instance=mock.MagicMock(), vnf_object=mock.MagicMock(), operation_type=mock.MagicMock(), @@ -450,7 +452,7 @@ def test_vnf_macro_so_action(mock_owning_entity_get, mock_vnf_instantiation_send mock_vnf_instance.vnf_name = "test_name_update" mock_vnf_instance.vnf_id = "1234" - vnf_instance_update = VnfInstantiation.\ + vnf_instance_update = VnfInstantiation. \ so_action(vnf_instance=mock_vnf_instance, operation_type=VnfOperation.UPDATE, aai_service_instance=mock_aai_service_instance, @@ -487,19 +489,18 @@ def test_vnf_macro_so_action(mock_owning_entity_get, mock_vnf_instantiation_send f"serviceInstantiation/{ServiceInstantiation.api_version}/serviceInstances/" f"{mock_aai_service_instance.instance_id}/vnfs/{mock_vnf_instance.vnf_id}/healthcheck") - ##upgradeAPI of cnf mock_vnf_instance = mock.MagicMock() mock_vnf_instance.vnf_name = "test_name_upgrade" vnf_instance_upgrade = VnfInstantiation. \ - so_action(vnf_instance=mock_vnf_instance, - operation_type=VnfOperation.UPGRADE, - aai_service_instance=mock_aai_service_instance, - line_of_business=mock.MagicMock(), - platform=mock.MagicMock(), - sdc_service=mock_sdc_service, - so_service=mock.MagicMock(), - vnf_object=mock.MagicMock()) + so_action(vnf_instance=mock_vnf_instance, + operation_type=VnfOperation.UPGRADE, + aai_service_instance=mock_aai_service_instance, + line_of_business=mock.MagicMock(), + platform=mock.MagicMock(), + sdc_service=mock_sdc_service, + so_service=mock.MagicMock(), + vnf_object=mock.MagicMock()) assert vnf_instance_upgrade.name == "test_name_upgrade" mock_vnf_instantiation_send_message.assert_called() method, _, url = mock_vnf_instantiation_send_message.call_args[0] @@ -509,13 +510,12 @@ def test_vnf_macro_so_action(mock_owning_entity_get, mock_vnf_instantiation_send f"{mock_aai_service_instance.instance_id}/vnfs/{mock_vnf_instance.vnf_id}/upgradeCnf") - @mock.patch.object(NetworkInstantiation, "send_message_json") @mock.patch.object(NetworkPreload, "send_message_json") def test_network_instantiation(mock_network_preload, mock_network_instantiation_send_message): aai_service_instance_mock = mock.MagicMock() aai_service_instance_mock.instance_id = "test_instance_id" - vnf_instantiation = NetworkInstantiation.\ + vnf_instantiation = NetworkInstantiation. \ instantiate_ala_carte(aai_service_instance=aai_service_instance_mock, network_object=mock.MagicMock(), line_of_business="test_lob", @@ -531,7 +531,7 @@ def test_network_instantiation(mock_network_preload, mock_network_instantiation_ f"{NetworkInstantiation.api_version}/serviceInstances/" f"{aai_service_instance_mock.instance_id}/networks") - network_instantiation = NetworkInstantiation.\ + network_instantiation = NetworkInstantiation. \ instantiate_ala_carte(aai_service_instance=aai_service_instance_mock, network_object=mock.MagicMock(), line_of_business="test_lob", @@ -548,7 +548,7 @@ def test_network_instantiation(mock_network_preload, mock_network_instantiation_ def test_network_instantiation_with_cr_and_tenant(mock_network_preload, mock_network_instantiation_send_message): aai_service_instance_mock = mock.MagicMock() aai_service_instance_mock.instance_id = "test_instance_id" - vnf_instantiation = NetworkInstantiation.\ + vnf_instantiation = NetworkInstantiation. \ instantiate_ala_carte(aai_service_instance=aai_service_instance_mock, network_object=mock.MagicMock(), line_of_business=mock.MagicMock(), @@ -564,7 +564,7 @@ def test_network_instantiation_with_cr_and_tenant(mock_network_preload, mock_net f"{NetworkInstantiation.api_version}/serviceInstances/" f"{aai_service_instance_mock.instance_id}/networks") - network_instantiation = NetworkInstantiation.\ + network_instantiation = NetworkInstantiation. \ instantiate_ala_carte(aai_service_instance=aai_service_instance_mock, network_object=mock.MagicMock(), line_of_business="test_lob", @@ -575,6 +575,7 @@ def test_network_instantiation_with_cr_and_tenant(mock_network_preload, mock_net assert mock_network_preload.call_count == 2 assert network_instantiation.name == "test" + @mock.patch.object(Vid, "send_message") @mock.patch.object(VnfInstantiation, "send_message_json") @mock.patch("onapsdk.so.instantiation.SdcService") @@ -700,6 +701,7 @@ def test_vnf_instantiation_get_by_vnf_instance_name(mock_sdc_service, mock_send_ } assert VnfInstantiation.get_by_vnf_instance_name("test_vnf_instance_name") is not None + @mock.patch.object(Vid, "send_message") @mock.patch.object(PnfInstantiation, "send_message_json") @mock.patch("onapsdk.so.instantiation.SdcService") @@ -809,6 +811,7 @@ def test_pnf_instantiation_get_by_pnf_instance_name(mock_sdc_service, mock_send_ } assert PnfInstantiation.get_by_pnf_instance_name("test_pnf_instance_name") is not None + @mock.patch.object(VfModuleInstantiation, "send_message_json") @mock.patch.object(VfModulePreload, "upload_vf_module_preload") def test_vf_module_instantiation(mock_vf_module_preload, mock_send_message_json): @@ -817,7 +820,7 @@ def test_vf_module_instantiation(mock_vf_module_preload, mock_send_message_json) mock_vnf_instance = mock.MagicMock() mock_vnf_instance.service_instance = mock_service_instance mock_vnf_instance.vnf_id = "4321" - instantiation = VfModuleInstantiation.\ + instantiation = VfModuleInstantiation. \ instantiate_ala_carte(vf_module=mock.MagicMock(), vnf_instance=mock_vnf_instance, cloud_region=mock.MagicMock(), @@ -830,7 +833,7 @@ def test_vf_module_instantiation(mock_vf_module_preload, mock_send_message_json) f"{VfModuleInstantiation.api_version}/serviceInstances/1234/vnfs/" f"4321/vfModules") - instantiation = VfModuleInstantiation.\ + instantiation = VfModuleInstantiation. \ instantiate_ala_carte(vf_module=mock.MagicMock(), vnf_instance=mock_vnf_instance, vf_module_instance_name="test", @@ -847,7 +850,7 @@ def test_vf_module_instantiation_with_cr_and_tenant(mock_vf_module_preload, mock mock_vnf_instance = mock.MagicMock() mock_vnf_instance.service_instance = mock_service_instance mock_vnf_instance.vnf_id = "4321" - instantiation = VfModuleInstantiation.\ + instantiation = VfModuleInstantiation. \ instantiate_ala_carte(vf_module=mock.MagicMock(), vnf_instance=mock_vnf_instance, cloud_region=mock.MagicMock(), @@ -860,7 +863,7 @@ def test_vf_module_instantiation_with_cr_and_tenant(mock_vf_module_preload, mock f"{VfModuleInstantiation.api_version}/serviceInstances/1234/vnfs/" f"4321/vfModules") - instantiation = VfModuleInstantiation.\ + instantiation = VfModuleInstantiation. \ instantiate_ala_carte(vf_module=mock.MagicMock(), vnf_instance=mock_vnf_instance, cloud_region=mock.MagicMock(), @@ -890,69 +893,73 @@ def test_instantiation_wait_for_finish(): instantiation._wait_for_finish(rv) assert rv.return_value + @mock.patch.object(ServiceInstantiation, "send_message_json") def test_service_instantiation_multicloud(mock_send_message_json): - mock_sdc_service = mock.MagicMock() mock_sdc_service.distributed = True - _ = ServiceInstantiation.\ - instantiate_ala_carte(sdc_service=mock_sdc_service, - cloud_region=mock.MagicMock(), - tenant=mock.MagicMock(), - customer=mock.MagicMock(), - owning_entity=mock.MagicMock(), - project=mock.MagicMock(), - service_subscription=mock.MagicMock()) - _, kwargs = mock_send_message_json.call_args - data = json.loads(kwargs["data"]) - assert data["requestDetails"]["requestParameters"]["userParams"] == [] - mock_send_message_json.reset_mock() - - _ = ServiceInstantiation.\ - instantiate_ala_carte(sdc_service=mock_sdc_service, - cloud_region=mock.MagicMock(), - tenant=mock.MagicMock(), - customer=mock.MagicMock(), - owning_entity=mock.MagicMock(), - project=mock.MagicMock(), - enable_multicloud=True, - service_subscription=mock.MagicMock()) - _, kwargs = mock_send_message_json.call_args - data = json.loads(kwargs["data"]) - assert data["requestDetails"]["requestParameters"]["userParams"] == [{"name": "orchestrator", "value": "multicloud"}] - mock_send_message_json.reset_mock() - - _ = ServiceInstantiation.\ - instantiate_macro(sdc_service=mock_sdc_service, + _ = ServiceInstantiation. \ + instantiate_ala_carte(sdc_service=mock_sdc_service, cloud_region=mock.MagicMock(), tenant=mock.MagicMock(), customer=mock.MagicMock(), owning_entity=mock.MagicMock(), project=mock.MagicMock(), - line_of_business=mock.MagicMock(), - platform=mock.MagicMock(), - service_instance_name="test", service_subscription=mock.MagicMock()) _, kwargs = mock_send_message_json.call_args data = json.loads(kwargs["data"]) - assert not any(filter(lambda x: x == {"name": "orchestrator", "value": "multicloud"}, data["requestDetails"]["requestParameters"]["userParams"])) + assert data["requestDetails"]["requestParameters"]["userParams"] == [] mock_send_message_json.reset_mock() - _ = ServiceInstantiation.\ - instantiate_macro(sdc_service=mock_sdc_service, + _ = ServiceInstantiation. \ + instantiate_ala_carte(sdc_service=mock_sdc_service, cloud_region=mock.MagicMock(), tenant=mock.MagicMock(), customer=mock.MagicMock(), owning_entity=mock.MagicMock(), project=mock.MagicMock(), - line_of_business=mock.MagicMock(), - platform=mock.MagicMock(), - service_instance_name="test", enable_multicloud=True, service_subscription=mock.MagicMock()) _, kwargs = mock_send_message_json.call_args data = json.loads(kwargs["data"]) - assert any(filter(lambda x: x == {"name": "orchestrator", "value": "multicloud"}, data["requestDetails"]["requestParameters"]["userParams"])) + assert data["requestDetails"]["requestParameters"]["userParams"] == [ + {"name": "orchestrator", "value": "multicloud"}] + mock_send_message_json.reset_mock() + + _ = ServiceInstantiation. \ + instantiate_macro(sdc_service=mock_sdc_service, + cloud_region=mock.MagicMock(), + tenant=mock.MagicMock(), + customer=mock.MagicMock(), + owning_entity=mock.MagicMock(), + project=mock.MagicMock(), + line_of_business=mock.MagicMock(), + platform=mock.MagicMock(), + service_instance_name="test", + service_subscription=mock.MagicMock()) + _, kwargs = mock_send_message_json.call_args + data = json.loads(kwargs["data"]) + assert not any(filter(lambda x: x == {"name": "orchestrator", "value": "multicloud"}, + data["requestDetails"]["requestParameters"]["userParams"])) + mock_send_message_json.reset_mock() + + _ = ServiceInstantiation. \ + instantiate_macro(sdc_service=mock_sdc_service, + cloud_region=mock.MagicMock(), + tenant=mock.MagicMock(), + customer=mock.MagicMock(), + owning_entity=mock.MagicMock(), + project=mock.MagicMock(), + line_of_business=mock.MagicMock(), + platform=mock.MagicMock(), + service_instance_name="test", + enable_multicloud=True, + service_subscription=mock.MagicMock()) + _, kwargs = mock_send_message_json.call_args + data = json.loads(kwargs["data"]) + assert any(filter(lambda x: x == {"name": "orchestrator", "value": "multicloud"}, + data["requestDetails"]["requestParameters"]["userParams"])) + @mock.patch.object(PnfInstantiation, "send_message_json") @mock.patch.object(OwningEntity, "get_by_owning_entity_id") @@ -1006,6 +1013,7 @@ def test_pnf_instantiation_so_service(mock_owning_entity_get, mock_send_message_ assert pnf_data["pnfRegistrationFields"]["unitType"] == "test_unit_type" assert pnf_data["pnfRegistrationFields"]["vendorName"] == "test_vendor" + @mock.patch.object(ServiceInstantiation, "send_message_json") def test_service_instantiation_so_service(mock_send_message_json): mock_sdc_service = mock.MagicMock() @@ -1070,71 +1078,94 @@ def test_service_instantiation_so_service(mock_send_message_json): ] ) - _ = ServiceInstantiation.\ - instantiate_macro(sdc_service=mock_sdc_service, - cloud_region=mock.MagicMock(), - tenant=mock.MagicMock(), - customer=mock.MagicMock(), - owning_entity=mock.MagicMock(), - project=mock.MagicMock(), - line_of_business=mock.MagicMock(), - platform=mock.MagicMock(), - service_instance_name="test", - so_service=so_service) + _ = ServiceInstantiation. \ + instantiate_macro(sdc_service=mock_sdc_service, + cloud_region=mock.MagicMock(), + tenant=mock.MagicMock(), + customer=mock.MagicMock(), + owning_entity=mock.MagicMock(), + project=mock.MagicMock(), + line_of_business=mock.MagicMock(), + platform=mock.MagicMock(), + service_instance_name="test", + so_service=so_service) _, kwargs = mock_send_message_json.call_args data = json.loads(kwargs["data"]) + assert data["requestDetails"]["requestParameters"]["subscriptionServiceType"] == "test_so_service" - assert len(data["requestDetails"]["requestParameters"]["userParams"][1]["service"]["resources"]["vnfs"]) == 2 - assert len(data["requestDetails"]["requestParameters"]["userParams"][1]["service"]["resources"]["pnfs"]) == 2 + if len(data["requestDetails"]["requestParameters"]["userParams"][1]["service"]["resources"]) == 0: + assert "pnfs" not in data["requestDetails"]["requestParameters"]["userParams"][1]["service"]["resources"] + assert "vnfs" not in data["requestDetails"]["requestParameters"]["userParams"][1]["service"]["resources"] + else: + assert len(data["requestDetails"]["requestParameters"]["userParams"][1]["service"]["resources"]["pnfs"]) == 2 + assert len(data["requestDetails"]["requestParameters"]["userParams"][1]["service"]["resources"]["vnfs"]) == 2 instance_params = data["requestDetails"]["requestParameters"]["userParams"][1]["service"]["instanceParams"] - vnf_1_data = data["requestDetails"]["requestParameters"]["userParams"][1]["service"]["resources"]["vnfs"][0] - vnf_2_data = data["requestDetails"]["requestParameters"]["userParams"][1]["service"]["resources"]["vnfs"][1] - pnf_1_data = data["requestDetails"]["requestParameters"]["userParams"][1]["service"]["resources"]["pnfs"][0] - pnf_2_data = data["requestDetails"]["requestParameters"]["userParams"][1]["service"]["resources"]["pnfs"][1] - - assert len(instance_params[0]) == 2 - assert instance_params[0]["service_param_1"] == "service_param_1_value" - assert instance_params[0]["service_param_2"] == "service_param_2_value" - - assert vnf_1_data["instanceName"] == "test_so_service_vnf_instance_name_1" - assert len(vnf_1_data["instanceParams"][0]) == 2 - assert vnf_1_data["instanceParams"][0]["param_1"] == "param_1_value" - assert vnf_1_data["instanceParams"][0]["param_2"] == "param_2_value" - assert len(vnf_1_data["vfModules"]) == 0 - - assert vnf_2_data["instanceName"] == "test_so_service_vnf_instance_name_2" - assert len(vnf_2_data["instanceParams"][0]) == 0 - assert len(vnf_2_data["vfModules"]) == 2 - vf_module_1_data = vnf_2_data["vfModules"][0] - vf_module_2_data = vnf_2_data["vfModules"][1] - - assert vf_module_1_data["instanceName"] == "test_so_service_vf_module_instance_name_1" - assert len(vf_module_1_data["instanceParams"][0]) == 2 - assert vf_module_1_data["instanceParams"][0]["vf_module_param_1"] == "vf_module_param_1_value" - assert vf_module_1_data["instanceParams"][0]["vf_module_param_2"] == "vf_module_param_2_value" - - assert vf_module_2_data["instanceName"] == "test_so_service_vf_module_instance_name_2" - assert len(vf_module_2_data["instanceParams"][0]) == 2 - assert vf_module_2_data["instanceParams"][0]["vf_module_param_1"] == "vf_module_param_1_value" - assert vf_module_2_data["instanceParams"][0]["vf_module_param_2"] == "vf_module_param_2_value" - - assert pnf_1_data["instanceName"] == "test_so_service_pnf_instance_name_1" - assert not "pnfRegistrationFields" in pnf_1_data - - assert pnf_2_data["instanceName"] == "test_so_service_pnf_instance_name_2" - assert pnf_2_data["pnfRegistrationFields"]["modelNumber"] == "test_model_number" - assert pnf_2_data["pnfRegistrationFields"]["oamV4IpAddress"] == "test_ip" - assert pnf_2_data["pnfRegistrationFields"]["oamV6IpAddress"] == "test_mac" - assert pnf_2_data["pnfRegistrationFields"]["serialNumber"] == "test_serial_number" - assert pnf_2_data["pnfRegistrationFields"]["softwareVersion"] == "test_software_version" - assert pnf_2_data["pnfRegistrationFields"]["unitType"] == "test_unit_type" - assert pnf_2_data["pnfRegistrationFields"]["vendorName"] == "test_vendor" - + resources = data["requestDetails"]["requestParameters"]["userParams"][1]["service"]["resources"] + + vnf_1_data = vnf_2_data = pnf_1_data = pnf_2_data = None + + if "vnfs" in resources: + if len(resources["vnfs"]) >= 1: + vnf_1_data = resources["vnfs"][0] + if len(resources["vnfs"]) >= 2: + vnf_2_data = resources["vnfs"][1] + + if "pnfs" in resources: + if len(resources["pnfs"]) >= 1: + pnf_1_data = resources["pnfs"][0] + if len(resources["pnfs"]) >= 2: + pnf_2_data = resources["pnfs"][1] + + if instance_params: + assert len(instance_params[0]) == 2 + assert instance_params[0]["service_param_1"] == "service_param_1_value" + assert instance_params[0]["service_param_2"] == "service_param_2_value" + else: + print("instance_params list is empty or does not have data") + + if instance_params: + assert len(instance_params[0]) == 2 + + assert vnf_1_data["instanceName"] == "test_so_service_vnf_instance_name_1" + assert len(vnf_1_data["instanceParams"][0]) == 2 + assert vnf_1_data["instanceParams"][0]["param_1"] == "param_1_value" + assert vnf_1_data["instanceParams"][0]["param_2"] == "param_2_value" + assert len(vnf_1_data["vfModules"]) == 0 + + assert vnf_2_data["instanceName"] == "test_so_service_vnf_instance_name_2" + assert len(vnf_2_data["instanceParams"][0]) == 0 + assert len(vnf_2_data["vfModules"]) == 2 + vf_module_1_data = vnf_2_data["vfModules"][0] + vf_module_2_data = vnf_2_data["vfModules"][1] + + assert vf_module_1_data["instanceName"] == "test_so_service_vf_module_instance_name_1" + assert len(vf_module_1_data["instanceParams"][0]) == 2 + assert vf_module_1_data["instanceParams"][0]["vf_module_param_1"] == "vf_module_param_1_value" + assert vf_module_1_data["instanceParams"][0]["vf_module_param_2"] == "vf_module_param_2_value" + + assert vf_module_2_data["instanceName"] == "test_so_service_vf_module_instance_name_2" + assert len(vf_module_2_data["instanceParams"][0]) == 2 + assert vf_module_2_data["instanceParams"][0]["vf_module_param_1"] == "vf_module_param_1_value" + assert vf_module_2_data["instanceParams"][0]["vf_module_param_2"] == "vf_module_param_2_value" + + assert pnf_1_data["instanceName"] == "test_so_service_pnf_instance_name_1" + assert not "pnfRegistrationFields" in pnf_1_data + + assert pnf_2_data["instanceName"] == "test_so_service_pnf_instance_name_2" + assert pnf_2_data["pnfRegistrationFields"]["modelNumber"] == "test_model_number" + assert pnf_2_data["pnfRegistrationFields"]["oamV4IpAddress"] == "test_ip" + assert pnf_2_data["pnfRegistrationFields"]["oamV6IpAddress"] == "test_mac" + assert pnf_2_data["pnfRegistrationFields"]["serialNumber"] == "test_serial_number" + assert pnf_2_data["pnfRegistrationFields"]["softwareVersion"] == "test_software_version" + assert pnf_2_data["pnfRegistrationFields"]["unitType"] == "test_unit_type" + assert pnf_2_data["pnfRegistrationFields"]["vendorName"] == "test_vendor" + + else: + pass def test_so_service_load_from_yaml(): - so_service_yaml = """ subscription_service_type: myservice vnfs: @@ -1286,7 +1317,6 @@ def test_so_service_load_from_file(): def test_so_service_vnf_load_from_yaml(): - so_vnf_yaml = """ model_name: myvnfmodel instance_name: mynewvnf |