Overview
The Network Discovery microservice allows clients to initiate audits of specified network resource instances. For each request received, the Network Discovery microservice collects information from the network (via other microservices) and returns it to the client.
Use in POMBA
The initial use case for the microservice is to provide support for the Network Discovery Context Builder, which was introduced as part of the POMBA project.
Configuration
Application Properties
Warning | ||
---|---|---|
| ||
In current Network Discovery microservice development (Dublin), southbound REST API sends OpenStack API requests instead of AAI Enricher API requests. |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
spring.jersey.type=filter spring.mvc.urls=swagger,docs,prometheus,auditevents,info,heapdump,autoconfig,beans,loggers,dump,env,trace,health,configprops,mappings,metrics,webjars server.contextPath=/network-discovery spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration #This property is used to set the Tomcat connector attributes.developers can define multiple attributes separated by comma #tomcat.connector.attributes=allowTrace-true #The max number of active threads in this pool server.tomcat.max-threads=200 #The minimum number of threads always kept alive server.tomcat.min-Spare-Threads=25 #The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less or equal to minSpareThreads server.tomcat.max-idle-time=60000 #Servlet context parameters server.context_parameters.p-name=value #context parameter with p-name as key and value as value. #Enable HTTPS server.port=8443 server.ssl.key-store=config/auth/client-cert-onap.p12 server.ssl.key-store-password=password(OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10) server.ssl.keyStoreType=JKS server.ssl.keyAlias=tomcat server.ssl.client-auth=want server.ssl.enabled=true server.ssl.enabled-protocols=TLSv1.1,TLSv1.2 # Basic Authentication basicAuth.username=admin basicAuth.password=OBF:1u2a1toa1w8v1tok1u30 # A&AI Enircher REST Client Configuration enricheropenstack.identity.url =https http://d2enrichment:9505 enricher.connectionTimeout=5000 enricher.readTimeout=60000 enricher.keyStorePath=config/auth/enricher-client-cert.p12 enricher.keyStorePassword=OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o enricher10.69.36.11:5000/v3/auth/tokens openstack.identity.user = ralph openstack.identity.password = OBF:1w951ugg1vun1uha1w8l openstack.types = vserver, l3-network enricheropenstack.type.vserver.url = http:/enricher/v11/cloud-infrastructure/vservers/vserver/10.69.36.11:8774/v2.1/servers/{0}?sot=!aai enricheropenstack.type.l3-network.url = http:/enricher/v11/network/l3-networks/l3-network/10.69.36.11:9696/v2.0/networks/{0}?sot=!aai # Mapping from Enricher Attribute name to POMBA Attribute name in the format # <Enricher Attribute Name>:<Pomba Attribute Name>; and separated by semicolon ";" # for example, # vserser-id:id; # means Attribute name "vserer-id" from Enricher will be converted to "id" in POMBA. enricher.attributeNameMappingList=Id:id;id:id;vserver-id:id;name:name;locked:inMaintenance; \ hostname:hostName;status:status;vm_state:vmState;vm-state:vmState;admin_state_up:adminState; \ favor.disk:flavorDisk;flavor.ephemeral:flavorEphemoral;flavor.extra_specs.hw.cpu_model:flavorHwCpuModel; \ flavor.extra_specs.hw.cpu_policy:flavorHwCpuPolicy;flavor.extra_specs.hw.mem_page_size:flavorHwMemPageSize; \ flavor.original_name:flavorOriginalName;flavor.ram:flavorRam;flavor.swap:flavorSwag;flavorvcpus:flavorVcpus; \ image.id:imageId;hostId:hostId;host:host;host_status:hostStatus;security_group.name:securityGroupName; \ serverName:serverName;metadata.myservername:otherServerName;shared:sharedNetwork;subnets:subnets; \ userId:userId;tenant_id:tenantId openstack.api.microversion = 2.42 |
Interfaces/API
URI example
Code Block | ||
---|---|---|
| ||
https://10.69.102.6:30299/network-discovery/v1/network/resource?requestId=88001&resourceType=vserver&resourceId=645a12dc-09b5-45cb-8ab1-a0ce41b7200a |
Response example
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "requestId": "88001", "code": 200, "message": "OK", "ackFinalIndicator": true, "resources": [ { "id": "645a12dc-09b5-45cb-8ab1-a0ce41b7200a", "name": null, "type": "vserver", "dataQuality": { "status": "ok", "errorText": null }, "attributeList": [ { "name": "id", "value": "645a12dc-09b5-45cb-8ab1-a0ce41b7200a", "dataQuality": { "status": "ok", "errorText": null } }, { "name": "name", "value": "norm-d2-k8s", "dataQuality": { "status": "ok", "errorText": null } }, { "name": "inMaintenance", "value": "false", "dataQuality": { "status": "ok", "errorText": null } }, { "name": "imageId", "value": "87e000f6-9a81-4841-b446-5d6751c42c48", "dataQuality": { "status": "ok", "errorText": null } }, { "name": "status", "value": "ACTIVE", "dataQuality": { "status": "ok", "errorText": null } }, { "name": "vmState", "value": "active", "dataQuality": { "status": "ok", "errorText": null } }, { "name": "tenantId", "value": "1130b349e19c4827bf91a29d51256af1", "dataQuality": { "status": "ok", "errorText": null } }, { "name": "hostId", "value": "28ae48d6cb907e3d019535563716cfb7ec1f2cecc951439330ed9759", "dataQuality": { "status": "ok", "errorText": null } }, { "name": "hostStatus", "value": "UNKNOWN", "dataQuality": { "status": "ok", "errorText": null } } ] } ] } |