From fc3ead31e631f69fabf0baaa20c10bf955ce374b Mon Sep 17 00:00:00 2001 From: Lukasz Rajewski Date: Mon, 8 Apr 2019 15:05:22 +0200 Subject: Traffic Distributtion support added * New local polcies for vFW TD use case * Fixed encoding for conductor_request template and parameters section modified to accept all requestParameters * Conductor request can have many attributes in the 'attributes' section - all that are defined in the vnf policy file * Conductor request can have many request parameters in the 'requestParameters' section. The parameters come from QueryPolicies. Before list of suppoted parameters was hardcoded * Optional 'unique' parameter added to the placementDemand section. It is already supported by conductor for all inventory types * Improved debug logs for local policies * Unit tests added for expanded request format Change-Id: I41f219c366a3a77881c7096e64a6272edbada23b Issue-ID: OPTFRA-443 Signed-off-by: Lukasz Rajewski --- test/placement-tests/request_placement_vfmod.json | 88 +++++++++ test/placement-tests/request_vfmod.json | 58 ++++++ test/placement-tests/response_vfmod.json | 229 ++++++++++++++++++++++ 3 files changed, 375 insertions(+) create mode 100644 test/placement-tests/request_placement_vfmod.json create mode 100644 test/placement-tests/request_vfmod.json create mode 100644 test/placement-tests/response_vfmod.json (limited to 'test/placement-tests') diff --git a/test/placement-tests/request_placement_vfmod.json b/test/placement-tests/request_placement_vfmod.json new file mode 100644 index 0000000..4233416 --- /dev/null +++ b/test/placement-tests/request_placement_vfmod.json @@ -0,0 +1,88 @@ +{ + "name": "de4f04e3-0a65-470b-9d07-8ea6c2fb3e10", + "template": { + "constraints": { + "affinity_vFW_TD": { + "demands": ["vFW-SINK", "vPGN"], + "properties": { + "category": "region", + "qualifier": "same" + }, + "type": "zone" + } + }, + "parameters": { + "service_name": "vFW_TD", + "chosen_region": "RegionOne", + "service_id": "3e8d118c-10ca-4b4b-b3db-089b5e9e6a1c", + "customer_long": 2.2, + "REQUIRED_MEM": "", + "customer_lat": 1.1, + "REQUIRED_DISK": "" + }, + "locations": { + "customer_loc": { + "longitude": { + "get_param": "customer_long" + }, + "latitude": { + "get_param": "customer_lat" + } + } + }, + "demands": { + "vFW-SINK": [{ + "attributes": { + "global-customer-id": "Demonstration", + "cloud-region-id": { + "get_param": "chosen_region" + }, + "model-version-id": "763731df-84fd-494b-b824-01fc59a5ff2d", + "orchestration-status": ["active"], + "model-invariant-id": "e7227847-dea6-4374-abca-4561b070fe7d", + "service_instance_id": { + "get_param": "service_id" + }, + "prov-status": "ACTIVE" + }, + "inventory_provider": "aai", + "service_resource_id": "vFW-SINK-XX", + "inventory_type": "vfmodule", + "service_type": "vFW-SINK-XX", + "excluded_candidates": [{ + "inventory_type": "vfmodule", + "candidate_id": ["e765d576-8755-4145-8536-0bb6d9b1dc9a"] + }] + }], + "vPGN": [{ + "attributes": { + "global-customer-id": "Demonstration", + "cloud-region-id": { + "get_param": "chosen_region" + }, + "model-version-id": "e02a7e5c-9d27-4360-ab7c-73bb83b07e3b", + "orchestration-status": ["active"], + "model-invariant-id": "762472ef-5284-4daa-ab32-3e7bee2ec355", + "service_instance_id": { + "get_param": "service_id" + }, + "prov-status": "ACTIVE" + }, + "inventory_provider": "aai", + "service_resource_id": "vPGN-XX", + "unique": "false", + "inventory_type": "vfmodule", + "service_type": "vPGN-XX" + }] + }, + "optimization": { + "minimize": { + "sum": [] + } + }, + "homing_template_version": "2017-10-10" + }, + "limit": 100, + "files": {}, + "timeout": 1200 +} \ No newline at end of file diff --git a/test/placement-tests/request_vfmod.json b/test/placement-tests/request_vfmod.json new file mode 100644 index 0000000..1e95e22 --- /dev/null +++ b/test/placement-tests/request_vfmod.json @@ -0,0 +1,58 @@ +{ + "requestInfo": { + "transactionId": "e576c75e-7536-4145-a1c0-d60b65bb1bb8", + "requestId": "de4f04e3-0a65-470b-9d07-8ea6c2fb3e10", + "callbackUrl": "http://0.0.0.0:9000/osdfCallback/", + "sourceId": "SO", + "requestType": "create", + "numSolutions": "100", + "optimizers": [ + "placement" + ], + "timeout": 1200 + }, + "placementInfo": { + "requestParameters": { + "chosenRegion": "RegionOne" + }, + "subscriberInfo": { + "globalSubscriberId": "dbc2c763-6383-42d6-880a-b7d5c5bc84d9", + "subscriberName": "oof-so-chm" + }, + "placementDemands": [ + { + "resourceModuleName": "vFW-SINK", + "serviceResourceId": "vFW-SINK-XX", + "resourceModelInfo": { + "modelInvariantId": "e7227847-dea6-4374-abca-4561b070fe7d", + "modelVersionId": "763731df-84fd-494b-b824-01fc59a5ff2d" + }, + "excludedCandidates": [ + { + "identifierType": "vfmodule", + "identifiers": [ + "e765d576-8755-4145-8536-0bb6d9b1dc9a" + ] + } + ] + }, + { + "resourceModuleName": "vPGN", + "serviceResourceId": "vPGN-XX", + "unique": "false", + "resourceModelInfo": { + "modelInvariantId": "762472ef-5284-4daa-ab32-3e7bee2ec355", + "modelVersionId": "e02a7e5c-9d27-4360-ab7c-73bb83b07e3b" + } + } + ] + }, + "serviceInfo": { + "serviceInstanceId": "3e8d118c-10ca-4b4b-b3db-089b5e9e6a1c", + "serviceName": "vFW_TD", + "modelInfo": { + "modelInvariantId": "TD-invariantId", + "modelVersionId": "TD-versionId" + } + } +} \ No newline at end of file diff --git a/test/placement-tests/response_vfmod.json b/test/placement-tests/response_vfmod.json new file mode 100644 index 0000000..06e40de --- /dev/null +++ b/test/placement-tests/response_vfmod.json @@ -0,0 +1,229 @@ +{ + "transactionId": "", + "requestStatus": "completed", + "solutions": { + "placementSolutions": [ + [{ + "assignmentInfo": [{ + "key": "locationType", + "value": "att_aic" + }, { + "key": "vnfHostName", + "value": "vFW-FW-MC" + }, { + "key": "locationId", + "value": "RegionOne" + }, { + "key": "isRehome", + "value": "false" + }, { + "key": "nf-name", + "value": "vFW-FW-MC" + }, { + "key": "vnf-type", + "value": "5G_EVE_Demo/5G_EVE_FW 0" + }, { + "key": "ipv6-oam-address", + "value": "" + }, { + "key": "ipv4-oam-address", + "value": "oam_network_zb4J" + }, { + "key": "vservers", + "value": [{ + "vserver-id": "4a61b075-5ae0-4cfe-b213-27d3647a0578", + "l-interfaces": [{ + "macaddr": "fa:16:3e:4a:00:56", + "interface-name": "vnf-snk-r1-t1-mc-vfw_private_3_port-tntiamoj2res", + "ipv4-addresses": ["10.100.100.1"], + "ipv6-addresses": [], + "interface-id": "ff27775b-a2b7-4e6e-8f71-6a5a5e6020cd", + "network-name": "", + "network-id": "59763a33-3296-4dc8-9ee6-2bdcd63322fc" + }, { + "macaddr": "fa:16:3e:a1:e8:c9", + "interface-name": "vnf-snk-r1-t1-mc-vfw_private_2_port-hiay5zan4da6", + "ipv4-addresses": ["10.0.110.1"], + "ipv6-addresses": [], + "interface-id": "0bb0bb92-a4d1-4104-b491-e469949f60a3", + "network-name": "", + "network-id": "cdb4bc25-2412-4b77-bbd5-791a02f8776d" + }, { + "macaddr": "fa:16:3e:45:e2:16", + "interface-name": "vnf-snk-r1-t1-mc-vfw_private_0_port-7xlr5kjvsmk6", + "ipv4-addresses": ["192.168.10.100"], + "ipv6-addresses": [], + "interface-id": "f0291365-6070-4baa-8470-8775bed7c2c4", + "network-name": "", + "network-id": "932ac514-639a-45b2-b1a3-4c5bb708b5c1" + }, { + "macaddr": "fa:16:3e:2f:0b:2f", + "interface-name": "vnf-snk-r1-t1-mc-vfw_private_1_port-khio4swt2vy3", + "ipv4-addresses": ["192.168.20.100"], + "ipv6-addresses": [], + "interface-id": "5ba290b0-0833-4008-acda-be1878b9ae0c", + "network-name": "", + "network-id": "bd64a2b0-0bdd-45b4-b755-65d5ebe1cee0" + }], + "vserver-name": "vfw-vfw-1-dt" + }, { + "vserver-id": "cf51eeab-8f75-4635-a01c-9f4bbd1e146e", + "l-interfaces": [{ + "macaddr": "fa:16:3e:23:82:d7", + "interface-name": "vnf-snk-r1-t1-mc-vsn_private_2_port-spbtqjnybz5g", + "ipv4-addresses": ["10.100.100.3"], + "ipv6-addresses": [], + "interface-id": "1b3fd313-cde3-4df6-8ea8-bf4ae28e7e03", + "network-name": "", + "network-id": "59763a33-3296-4dc8-9ee6-2bdcd63322fc" + }, { + "macaddr": "fa:16:3e:fc:bd:16", + "interface-name": "vnf-snk-r1-t1-mc-vsn_private_1_port-spqyrticfqan", + "ipv4-addresses": ["10.0.110.3"], + "ipv6-addresses": [], + "interface-id": "1b33d675-f351-4766-8669-7314f774d52c", + "network-name": "", + "network-id": "cdb4bc25-2412-4b77-bbd5-791a02f8776d" + }, { + "macaddr": "fa:16:3e:3d:e9:c5", + "interface-name": "vnf-snk-r1-t1-mc-vsn_private_0_port-5ijwpdueh2fl", + "ipv4-addresses": ["192.168.20.250"], + "ipv6-addresses": [], + "interface-id": "cf82e256-8ccf-4e43-ba96-04ea2e47b5d2", + "network-name": "", + "network-id": "bd64a2b0-0bdd-45b4-b755-65d5ebe1cee0" + }], + "vserver-name": "vfw-vsn-1-dt" + }] + }, { + "key": "nf-type", + "value": "vnf" + }, { + "key": "vnfHostName", + "value": "vFW-FW-MC" + }, { + "key": "aic_version", + "value": "1" + }, { + "key": "cloudClli", + "value": "clli1" + }, { + "key": "service_instance_id", + "value": "3e8d118c-10ca-4b4b-b3db-089b5e9e6a1c" + }, { + "key": "cloudOwner", + "value": "CloudOwner" + }, { + "value": "vfw-0-mc", + "key": "vf-module-name" + }, { + "value": "85eec994-b635-42c7-87a1-d39720cad36d", + "key": "vf-module-id" + }, { + "key": "nf-id", + "value": "4d2dc294-dbb3-44a2-8422-fa61b30c21a9" + }], + "serviceResourceId": "vFW-SINK-XX", + "solution": { + "cloudOwner": "CloudOwner", + "identifiers": ["85eec994-b635-42c7-87a1-d39720cad36d"], + "identifierType": "vfmodule" + }, + "resourceModuleName": "vFW-SINK" + }, { + "assignmentInfo": [{ + "key": "locationType", + "value": "att_aic" + }, { + "key": "vnfHostName", + "value": "vFW-PKG-MC" + }, { + "key": "locationId", + "value": "RegionOne" + }, { + "key": "isRehome", + "value": "false" + }, { + "key": "nf-name", + "value": "vFW-PKG-MC" + }, { + "key": "vnf-type", + "value": "5G_EVE_Demo/5G_EVE_PKG 0" + }, { + "key": "ipv6-oam-address", + "value": "" + }, { + "key": "ipv4-oam-address", + "value": "oam_network_zb4J" + }, { + "key": "vservers", + "value": [{ + "vserver-id": "00bddefc-126e-4e4f-a18d-99b94d8d9a30", + "l-interfaces": [{ + "macaddr": "fa:16:3e:c4:07:7f", + "interface-name": "vnf-pkg-r1-t2-mc-vpg_private_2_port-mf7lu55usq7i", + "ipv4-addresses": ["10.100.100.2"], + "ipv6-addresses": [], + "interface-id": "4b333af1-90d6-42ae-8389-d440e6ff0e93", + "network-name": "", + "network-id": "59763a33-3296-4dc8-9ee6-2bdcd63322fc" + }, { + "macaddr": "fa:16:3e:b5:86:38", + "interface-name": "vnf-pkg-r1-t2-mc-vpg_private_1_port-734xxixicw6r", + "ipv4-addresses": ["10.0.110.2"], + "ipv6-addresses": [], + "interface-id": "85dd57e9-6e3a-48d0-a784-4598d627e798", + "network-name": "", + "network-id": "cdb4bc25-2412-4b77-bbd5-791a02f8776d" + }, { + "macaddr": "fa:16:3e:ff:d8:6f", + "interface-name": "vnf-pkg-r1-t2-mc-vpg_private_0_port-e5qdm3p5ijhe", + "ipv4-addresses": ["192.168.10.200"], + "ipv6-addresses": [], + "interface-id": "edaff25a-878e-4706-ad52-4e3d51cf6a82", + "network-name": "", + "network-id": "932ac514-639a-45b2-b1a3-4c5bb708b5c1" + }], + "vserver-name": "zdfw1fwl01pgn01" + }] + }, { + "key": "nf-type", + "value": "vnf" + }, { + "key": "vnfHostName", + "value": "vFW-PKG-MC" + }, { + "key": "aic_version", + "value": "1" + }, { + "key": "cloudClli", + "value": "clli1" + }, { + "key": "service_instance_id", + "value": "3e8d118c-10ca-4b4b-b3db-089b5e9e6a1c" + }, { + "key": "cloudOwner", + "value": "CloudOwner" + }, { + "value": "pkg-0-mc", + "key": "vf-module-name" + }, { + "value": "d187d743-5932-4fb9-a42d-db0a5be5ba7e", + "key": "vf-module-id" + }, { + "key": "nf-id", + "value": "fcbff633-47cc-4f38-a98d-4ba8285bd8b6" + }], + "serviceResourceId": "vPGN-XX", + "solution": { + "cloudOwner": "CloudOwner", + "identifiers": ["d187d743-5932-4fb9-a42d-db0a5be5ba7e"], + "identifierType": "vfmodule" + }, + "resourceModuleName": "vPGN" + }] + ] + }, + "statusMessage": "", + "requestId": "de4f04e3-0a65-470b-9d07-8ea6c2fb3e10" +} \ No newline at end of file -- cgit 1.2.3-korg