- Created by Sharon Chisholm, last modified by David Stangl on Sept 14, 2018
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 22 Next »
Architecture
Overview
- Will demonstrate Network Discovery Microservice and Service Decomposition Microservice
- Relies on supporting Microservices not yet in ONAP, but we can show
- Standardized API and provide a sense of its extensibility to support discovering of additional components
- VM attributes from Openstack
- How this fits into POMBA architecture
- How this could be leveraged in other use cases
Southbound API
- The following is the information expected from the southbound interface to network discovery
- Examples (coming soon)
- Mocking in SoapUI (soon)
Video
The demo shows a request being sent to POMBA's Network Discovery Context Builder, which makes use of Service Decomposition in order to build a list of resources that comprise the specified service. The context builder then takes advantage of the Network Discovery service to obtain details from the network for each of those resources. The context builder collates the information returned by Network Discovery for each resource before providing the collected data to POMBA's Context Aggregator for inclusion in an audit.
Captures
Service Decomposition
Network Discovery Context Builder → Service Decomposition
The context builder first needs to determine what resources comprise the service undergoing auditing and so it employs Service Decomposition.
Request
http://10.147.112.136:8080/service-decomposition/service/context?serviceInstanceId=c6456519-6acf-4adb-997c-3c363dd4caaf
Service Decomposition → AAI
Service Decomposition needs to send a series of requests to the AAI in order to effectively mine the data source for the service instance's component resources.
Request
http://10.147.112.136:8443/aai/v13/nodes/service-instance/c6456519-6acf-4adb-997c-3c363dd4caaf
Response
{ "service-instance-id": "c6456519-6acf-4adb-997c-3c363dd4caaf", "service-instance-name": "Firewall1", "model-invariant-id": "0c5a20de-87ad-442c-9190-f38ab0a6bb7f", "model-version-id": "d3d6cf83-d03a-43cc-99ff-206d40bb9a72", "resource-version": "1527637758480", "relationship-list": { "relationship": [ { "related-to": "generic-vnf", "related-link": "/aai/v13/network/generic-vnfs/generic-vnf/6700c313-fbb7-4cf9-ac70-0293ec56df68", "relationship-data": [ { "relationship-key": "generic-vnf.vnf-id", "relationship-value": "6700c313-fbb7-4cf9-ac70-0293ec56df68" } ], "related-to-property": [ { "property-key": "generic-vnf.vnf-name", "property-value": "PacketGenerator-1" } ] }, { "related-to": "generic-vnf", "related-link": "/aai/v13/network/generic-vnfs/generic-vnf/8a9ddb25-2e79-449c-a40d-5011bac0da39", "relationship-data": [ { "relationship-key": "generic-vnf.vnf-id", "relationship-value": "8a9ddb25-2e79-449c-a40d-5011bac0da39" } ], "related-to-property": [ { "property-key": "generic-vnf.vnf-name", "property-value": "Firewall-1" } ] } ] } }
Response
{ "relationship-list": { "relationship": [{ "related-to": "generic-vnf", "relationship-data": [{ "relationship-value": "6700c313-fbb7-4cf9-ac70-0293ec56df68", "relationship-key": "generic-vnf.vnf-id" }], "related-link": "/aai/v13/network/generic-vnfs/generic-vnf/6700c313-fbb7-4cf9-ac70-0293ec56df68", "related-to-property": [{ "property-key": "generic-vnf.vnf-name", "property-value": "PacketGenerator-1" }] }, { "related-to": "generic-vnf", "relationship-data": [{ "relationship-value": "6700c313-fbb7-4cf9-ac70-0293ec56df69", "relationship-key": "generic-vnf.vnf-id" }], "related-link": "/aai/v13/network/generic-vnfs/generic-vnf/6700c313-fbb7-4cf9-ac70-0293ec56df69", "related-to-property": [{ "property-key": "generic-vnf.vnf-name", "property-value": "PacketGenerator-2" }] }] }, "model-version-id": "d3d6cf83-d03a-43cc-99ff-206d40bb9a72", "service-instance-id": "c6456519-6acf-4adb-997c-3c363dd4caaf", "resource-version": "1527637758480", "generic-vnfs": [{ "nf-role": "", "service-id": "8ea56b0d-459d-4668-b363-c9567432d8b7", "relationship-list": { "relationship": [{ "related-to": "service-instance", "relationship-data": [{ "relationship-value": "Demonstration", "relationship-key": "customer.global-customer-id" }, { "relationship-value": "vFWCL", "relationship-key": "service-subscription.service-type" }, { "relationship-value": "c6456519-6acf-4adb-997c-3c363dd4caaf", "relationship-key": "service-instance.service-instance-id" }], "related-link": "/aai/v11/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFWCL/service-instances/service-instance/c6456519-6acf-4adb-997c-3c363dd4caaf", "related-to-property": [{ "property-key": "service-instance.service-instance-name", "property-value": "Firewall1" }] }, { "related-to": "l3-network", "relationship-data": [{ "relationship-value": "HNP1d77c-1094-41ec-b7f3-94bb30951870", "relationship-key": "l3-network.network-id" }], "related-link": "/aai/v13/network/l3-networks/l3-network/HNP1d77c-1094-41ec-b7f3-94bb30951870", "relationship-label": "org.onap.relationships.inventory.Uses", "related-to-property": [{ "property-key": "l3-network.network-name", "property-value": "HNPORTALOAM.OAM" }] }, { "related-to": "vserver", "relationship-data": [{ "relationship-value": "CloudOwner", "relationship-key": "cloud-region.cloud-owner" }, { "relationship-value": "RegionOne", "relationship-key": "cloud-region.cloud-region-id" }, { "relationship-value": "b49b830686654191bb1e952a74b014ad", "relationship-key": "tenant.tenant-id" }, { "relationship-value": "25fb07ab-0478-465e-a021-6384ac299671", "relationship-key": "vserver.vserver-id" }], "related-link": "/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/b49b830686654191bb1e952a74b014ad/vservers/vserver/25fb07ab-0478-465e-a021-6384ac299671" }, { "related-to": "vserver", "relationship-data": [{ "relationship-value": "CloudOwner", "relationship-key": "cloud-region.cloud-owner" }, { "relationship-value": "RegionOne", "relationship-key": "cloud-region.cloud-region-id" }, { "relationship-value": "b49b830686654191bb1e952a74b014ad", "relationship-key": "tenant.tenant-id" }, { "relationship-value": "25fb07ab-0478-465e-a021-6384ac299672", "relationship-key": "vserver.vserver-id" }], "related-link": "/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/b49b830686654191bb1e952a74b014ad/vservers/vserver/25fb07ab-0478-465e-a021-6384ac299672" }] }, "vnf-id": "6700c313-fbb7-4cf9-ac70-0293ec56df68", "nf-type": "", "l3-networks": [{ "network-role": "HNPORTALOAM.OAM", "network-technology": "ovs", "service-id": "V7611HNP-1222-48f1-8085-94aef0c6ef3d51870", "network-id": "HNP1d77c-1222-41ec-b7f3-94bb30951870", "neutron-network-id": "491c7cef-a3f4-4990-883e-b0af397466d0", "is-external-network": false, "is-bound-to-vpn": false, "is-provider-network": false, "network-type": "OVS_PROVIDER_VLAN", "orchestration-status": "active", "network-role-instance": 0, "resource-version": "1526558298075", "network-name": "HNPORTALOAM.OAM", "is-shared-network": false }], "prov-status": "PREPROV", "vnf-type": "vFW-vSINK-service/vPKG 0", "orchestration-status": "Created", "nf-naming-code": "", "in-maint": false, "nf-function": "", "model-version-id": "a5565bf4-d55a-4964-8fbc-6a7674a2e676", "vservers": [{ "relationship-list": { "relationship": [{ "related-to": "generic-vnf", "relationship-data": [{ "relationship-value": "8a9ddb25-2e79-449c-a40d-5011bac0da39", "relationship-key": "generic-vnf.vnf-id" }], "related-link": "/aai/v11/network/generic-vnfs/generic-vnf/8a9ddb25-2e79-449c-a40d-5011bac0da39", "related-to-property": [{ "property-key": "generic-vnf.vnf-name", "property-value": "Firewall-1" }] }, { "related-to": "flavor", "relationship-data": [{ "relationship-value": "CloudOwner", "relationship-key": "cloud-region.cloud-owner" }, { "relationship-value": "RegionOne", "relationship-key": "cloud-region.cloud-region-id" }, { "relationship-value": "764efb04-5a46-4806-a766-2bdd24559f39", "relationship-key": "flavor.flavor-id" }], "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/flavors/flavor/764efb04-5a46-4806-a766-2bdd24559f39", "related-to-property": [{ "property-key": "flavor.flavor-name", "property-value": "m1.medium" }] }, { "related-to": "image", "relationship-data": [{ "relationship-value": "CloudOwner", "relationship-key": "cloud-region.cloud-owner" }, { "relationship-value": "RegionOne", "relationship-key": "cloud-region.cloud-region-id" }, { "relationship-value": "42fd42f8-cf81-4f4c-a552-d4b124f83b0b", "relationship-key": "image.image-id" }], "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/images/image/42fd42f8-cf81-4f4c-a552-d4b124f83b0b", "related-to-property": [{ "property-key": "image.image-name", "property-value": "unknown" }] }] }, "in-maint": false, "resource-version": "1528481820321", "vserver-name": "Firewall-0", "prov-status": "ACTIVE", "vserver-id": "25fb07ab-0478-465e-a021-6384ac299671", "vserver-name2": "Firewall-0", "vserver-selflink": "http://10.12.25.2:8774/v2.1/b49b830686654191bb1e952a74b014ad/servers/25fb07ab-0478-465e-a021-6384ac299671", "is-closed-loop-disabled": false }, { "relationship-list": { "relationship": [{ "related-to": "generic-vnf", "relationship-data": [{ "relationship-value": "8a9ddb25-2e79-449c-a40d-5011bac0da39", "relationship-key": "generic-vnf.vnf-id" }], "related-link": "/aai/v11/network/generic-vnfs/generic-vnf/8a9ddb25-2e79-449c-a40d-5011bac0da39", "related-to-property": [{ "property-key": "generic-vnf.vnf-name", "property-value": "Firewall-1" }] }, { "related-to": "flavor", "relationship-data": [{ "relationship-value": "CloudOwner", "relationship-key": "cloud-region.cloud-owner" }, { "relationship-value": "RegionOne", "relationship-key": "cloud-region.cloud-region-id" }, { "relationship-value": "764efb04-5a46-4806-a766-2bdd24559f39", "relationship-key": "flavor.flavor-id" }], "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/flavors/flavor/764efb04-5a46-4806-a766-2bdd24559f39", "related-to-property": [{ "property-key": "flavor.flavor-name", "property-value": "m1.medium" }] }, { "related-to": "image", "relationship-data": [{ "relationship-value": "CloudOwner", "relationship-key": "cloud-region.cloud-owner" }, { "relationship-value": "RegionOne", "relationship-key": "cloud-region.cloud-region-id" }, { "relationship-value": "42fd42f8-cf81-4f4c-a552-d4b124f83b0b", "relationship-key": "image.image-id" }], "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/images/image/42fd42f8-cf81-4f4c-a552-d4b124f83b0b", "related-to-property": [{ "property-key": "image.image-name", "property-value": "unknown" }] }] }, "in-maint": false, "resource-version": "1528481820321", "vserver-name": "Firewall-0", "prov-status": "ACTIVE", "vserver-id": "25fb07ab-0478-465e-a021-6384ac299672", "vserver-name2": "Firewall-0", "vserver-selflink": "http://10.12.25.2:8774/v2.1/b49b830686654191bb1e952a74b014ad/servers/25fb07ab-0478-465e-a021-6384ac299672", "is-closed-loop-disabled": false }], "resource-version": "1527638176989", "model-customization-id": "4cc1e555-361f-4d69-ae21-9f371ea9f40c", "vf-modules": { "vf-module": [{ "vf-module-name": "vPacketGen-VNF-1128-3", "model-version-id": "d6d4a002-a584-4640-bdce-a50e9bce552b", "heat-stack-id": "vPacketGen-VNF-1128-3/df34f5d6-ed39-4184-b785-51c37cfa8ac2", "resource-version": "1527641224058", "model-customization-id": "49c8f521-e5ee-4095-bb87-4090166e49ab", "is-base-vf-module": true, "vf-module-id": "0f792076-f5b3-4251-9fcc-c4d5afae0eb1", "module-index": 0, "model-invariant-id": "2a8844a8-f5f7-46dd-a732-472c6972a28e", "orchestration-status": "active" }] }, "vserver": [{ "vserver-name": "Firewall-1", "vserver-id": "25fb07ab-0478-465e-a021-6384ac299671", "model-invariant-id": "0c5a20de-87ad-442c-9190-f38ab0a6bb7f" }], "model-invariant-id": "99f1fd3f-845c-48f5-a0ba-11fbde6ae557", "vnf-name": "PacketGenerator-1", "is-closed-loop-disabled": false }, { "nf-role": "", "service-id": "8ea56b0d-459d-4668-b363-c9567432d8b9", "relationship-list": { "relationship": [{ "related-to": "service-instance", "relationship-data": [{ "relationship-value": "Demonstration", "relationship-key": "customer.global-customer-id" }, { "relationship-value": "vFWCL", "relationship-key": "service-subscription.service-type" }, { "relationship-value": "c6456519-6acf-4adb-997c-3c363dd4caaf", "relationship-key": "service-instance.service-instance-id" }], "related-link": "/aai/v11/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFWCL/service-instances/service-instance/c6456519-6acf-4adb-997c-3c363dd4caaf", "related-to-property": [{ "property-key": "service-instance.service-instance-name", "property-value": "Firewall1" }] }, { "related-to": "l3-network", "relationship-data": [{ "relationship-value": "HNP1d77c-1094-41ec-b7f3-94bb30951870", "relationship-key": "l3-network.network-id" }], "related-link": "/aai/v13/network/l3-networks/l3-network/HNP1d77c-1094-41ec-b7f3-94bb30951871", "relationship-label": "org.onap.relationships.inventory.Uses", "related-to-property": [{ "property-key": "l3-network.network-name", "property-value": "HNPORTALOAM.OAM" }] }, { "related-to": "vserver", "relationship-data": [{ "relationship-value": "CloudOwner", "relationship-key": "cloud-region.cloud-owner" }, { "relationship-value": "RegionOne", "relationship-key": "cloud-region.cloud-region-id" }, { "relationship-value": "b49b830686654191bb1e952a74b014ad", "relationship-key": "tenant.tenant-id" }, { "relationship-value": "25fb07ab-0478-465e-a021-6384ac299671", "relationship-key": "vserver.vserver-id" }], "related-link": "/aai/v13/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/tenants/tenant/b49b830686654191bb1e952a74b014ad/vservers/vserver/b494cd6e-b9f3-45e0-afe7-e1d1a5f5d74b" }] }, "vnf-id": "6700c313-fbb7-4cf9-ac70-0293ec56df69", "nf-type": "", "l3-networks": [{ "network-role": "HNPORTALOAM.OAM", "network-technology": "ovs", "service-id": "V7611HNP-1222-48f1-8085-94aef0c6ef3d51870", "network-id": "HNP1d77c-1222-41ec-b7f3-94bb30951870", "neutron-network-id": "491c7cef-a3f4-4990-883e-b0af397466d0", "is-external-network": false, "is-bound-to-vpn": false, "is-provider-network": false, "network-type": "OVS_PROVIDER_VLAN", "orchestration-status": "active", "network-role-instance": 0, "resource-version": "1526558298075", "network-name": "HNPORTALOAM.OAM", "is-shared-network": false }], "prov-status": "PREPROV", "vnf-type": "vFW-vSINK-service/vPKG 0", "orchestration-status": "Created", "nf-naming-code": "", "in-maint": false, "nf-function": "", "model-version-id": "a5565bf4-d55a-4964-8fbc-6a7674a2e676", "vservers": [{ "relationship-list": { "relationship": [{ "related-to": "generic-vnf", "relationship-data": [{ "relationship-value": "8a9ddb25-2e79-449c-a40d-5011bac0da39", "relationship-key": "generic-vnf.vnf-id" }], "related-link": "/aai/v11/network/generic-vnfs/generic-vnf/8a9ddb25-2e79-449c-a40d-5011bac0da39", "related-to-property": [{ "property-key": "generic-vnf.vnf-name", "property-value": "Firewall-1" }] }, { "related-to": "flavor", "relationship-data": [{ "relationship-value": "CloudOwner", "relationship-key": "cloud-region.cloud-owner" }, { "relationship-value": "RegionOne", "relationship-key": "cloud-region.cloud-region-id" }, { "relationship-value": "764efb04-5a46-4806-a766-2bdd24559f39", "relationship-key": "flavor.flavor-id" }], "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/flavors/flavor/764efb04-5a46-4806-a766-2bdd24559f39", "related-to-property": [{ "property-key": "flavor.flavor-name", "property-value": "m1.medium" }] }, { "related-to": "image", "relationship-data": [{ "relationship-value": "CloudOwner", "relationship-key": "cloud-region.cloud-owner" }, { "relationship-value": "RegionOne", "relationship-key": "cloud-region.cloud-region-id" }, { "relationship-value": "42fd42f8-cf81-4f4c-a552-d4b124f83b0b", "relationship-key": "image.image-id" }], "related-link": "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/RegionOne/images/image/42fd42f8-cf81-4f4c-a552-d4b124f83b0b", "related-to-property": [{ "property-key": "image.image-name", "property-value": "unknown" }] }] }, "in-maint": false, "resource-version": "1528481820321", "vserver-name": "Firewall-0", "prov-status": "ACTIVE", "vserver-id": "b494cd6e-b9f3-45e0-afe7-e1d1a5f5d74b", "vserver-name2": "Firewall-0", "vserver-selflink": "http://10.12.25.2:8774/v2.1/b49b830686654191bb1e952a74b014ad/servers/25fb07ab-0478-465e-a021-6384ac299671", "is-closed-loop-disabled": false }], "resource-version": "1527638176989", "model-customization-id": "4cc1e555-361f-4d69-ae21-9f371ea9f40c", "vf-modules": { "vf-module": [{ "vf-module-name": "vPacketGen-VNF-1128-3", "model-version-id": "d6d4a002-a584-4640-bdce-a50e9bce552b", "heat-stack-id": "vPacketGen-VNF-1128-3/df34f5d6-ed39-4184-b785-51c37cfa8ac2", "resource-version": "1527641224058", "model-customization-id": "49c8f521-e5ee-4095-bb87-4090166e49ab", "is-base-vf-module": true, "vf-module-id": "0f792076-f5b3-4251-9fcc-c4d5afae0eb1", "module-index": 0, "model-invariant-id": "2a8844a8-f5f7-46dd-a732-472c6972a28e", "orchestration-status": "active" }] }, "vserver": [{ "vserver-name": "Firewall-1", "vserver-id": "25fb07ab-0478-465e-a021-6384ac299672", "model-invariant-id": "0c5a20de-87ad-442c-9190-f38ab0a6bb7f" }], "model-invariant-id": "99f1fd3f-845c-48f5-a0ba-11fbde6ae557", "vnf-name": "PacketGenerator-2", "is-closed-loop-disabled": false }], "model-invariant-id": "0c5a20de-87ad-442c-9190-f38ab0a6bb7f", "service-instance-name": "Firewall1" }
Network Discovery
Network Discovery Context Builder → Network Discovery
The context builder next needs to send multiple requests – one for each resource provided by Service Decomposition – to Network Discovery in order to obtain the values of associated attributes.
Request (Network Resource)
http://10.147.112.148:8080/network-discovery/v1/network/resource?requestId=d4ec9585-eb78-4450-b52c-dc3fa6194667___3?resourceType=l3-network?resourceId=HNP1d77c-1222-41ec-b7f3-94bb30951870?notificationURL=http://10.147.112.148:8080/network-discovery/v1/network/resource
Network Discovery → AAI Enricher
For each resource passed to it, Network Discovery simply hands off the discovery work to the AAI Enricher, which utilizes addons to query live networks. (Note: Enricher is not in ONAP at this time but the responses could be mocked.)
Request
https://d2enrichment:9505/enricher/v11/network/l3-networks/l3-network/HNP1d77c-1222-41ec-b7f3-94bb30951870?sot=!aai
Response
e.g. <l3-network xmlns="http://org.openecomp.aai.inventory/v10"> <network-id>HNP1d77c-1222-41ec-b7f3-94bb30951870</network-id> <network-name>networkname</network-name> <is-shared-network>true</is-shared-network> <in-maint>false</in-maint> <retrieval-timestamp>2018-09-12 01:02:03 +0000</retrieval-timestamp> </l3-network>
Response (Network Resource)
[requestId=9d9bbc4a-787a-44d3-8ac4-37daed95b252___13, code=200, message=OK, ackFinalIndicator=true, resources=[Resource [id=HNP1d77c-1222-41ec-b7f3-94bb30951870, name=null, type=l3-network, dataQuality=DataQuality [status=error, errorText=ENRICHER-312, Unknown SoT as Enricher could not recognize the SoT reference.], attributeList=null]]]
Request (VM Resource)
Network Discovery → AAI Enricher
Request
Response
e.g. <vserver xmlns="http://org.openecomp.aai.invetory/v10"> <vserver-id>9168b536-cd40-4630-b43f-b259807c6e87</vserver-id> <vserver-name>new-server-test</vserver-name> <locked>false</locked> <hostname>kll0123</hostname> <image-id>70a599e0-31e7-49b7-b260-868f441e862b</image-id> <retrieval-timestamp>2018-09-04 01:23:45 +0000</retrieval-timestamp> </vserver>
Response (VM Resource)
- No labels