Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Info
titleCasablanca Release

The Network Discovery microservice was first introduced in Casablanca.

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
titleUpdate

In current Network Discovery microservice development (Dublin), southbound REST API sends OpenStack API requests instead of AAI Enricher API requests.

Code Block
languagebash
titleApplication Properties
collapsetrue
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.

# Basic Authentication
basicAuth.username=admin
basicAuth.password=OBF:1u2a1toa1w8v1tok1u30

# A&AI Enircher REST Client Configuration
enricher.url=https://d2enrichment:9505
enricher.connectionTimeout=5000
enricher.readTimeout=60000
enricher.keyStorePath=config/auth/enricher-client-cert.p12
enricher.keyStorePassword=OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o

enricher.types = vserver, l3-network
enricher.type.vserver.url    = /enricher/v11/cloud-infrastructure/vservers/vserver/{0}?sot=!aai
enricher.type.l3-network.url = /enricher/v11/network/l3-networks/l3-network/{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




Interfaces/API


URI example

Code Block
titleNetwork Discovery Micro Service URI example
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


Response example

Code Block
languagexml
titleNetwork Discovery Micro Service response
collapsetrue
[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]]]



{
    "requestId": "77001",
    "code": 200,
    "message": "OK",
    "ackFinalIndicator": true,
    "resources": [
        {
            "id": "2c311eae-f542-4173-8a01-582922abd495",
            "name": null,
            "type": "vserver",
            "dataQuality": {
                "status": "ok",
                "errorText": null
            },
            "attributeList": [
                {
                    "name": "id",
                    "value": "2c311eae-f542-4173-8a01-582922abd495",
                    "dataQuality": {
                        "status": "ok",
                        "errorText": null
                    }
                },
                {
                    "name": "name",
                    "value": "norm_bouygues",
                    "dataQuality": {
                        "status": "ok",
                        "errorText": null
                    }
                },
                {
                    "name": "inMaintenance",
                    "value": "false",
                    "dataQuality": {
                        "status": "ok",
                        "errorText": null
                    }
                },
                {
                    "name": "hostname",
                    "value": "norm-bouygues",
                    "dataQuality": {
                        "status": "ok",
                        "errorText": null
                    }
                },
                {
                    "name": "imageId",
                    "value": "c0022890-d91f-422c-91c5-3866edeae768",
                    "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": "15ad36d394e744838e947ca90609f805",
                    "dataQuality": {
                        "status": "ok",
                        "errorText": null
                    }
                },
                {
                    "name": "hostId",
                    "value": "ea1660efbbedda164379afacdc622305c4b88cebfb84119472d286a8",
                    "dataQuality": {
                        "status": "ok",
                        "errorText": null
                    }
                },
                {
                    "name": "host",
                    "value": "Setup-NCSO-OTT-E-C2",
                    "dataQuality": {
                        "status": "ok",
                        "errorText": null
                    }
                },
                {
                    "name": "hostStatus",
                    "value": "UP",
                    "dataQuality": {
                        "status": "ok",
                        "errorText": null
                    }
                }
            ]
        }
    ]
}