APPC Mulitple standalone ansible servers support
In ONAP community, using ansible server to configure VNF is more popular now. As of Casablanca release, APPC has provided one single ansible server configuration functionality. In Dublin, APPC will allow multiple ansible server end points for routing life cycle command (see LCM API for more details). In order to support this new function. APPC will be enhancing in several adapators, database as well as CDT GUI. This page describes how to implement, how to use this feature, and some sample requests/response will be shown.
Design
Currently APPC directs Life Cycle commands to one and only one ansible server. This feature will enhance APPC to allow multiple ansible server end points to be defined within APPC. This will allow APPC to route life cycle commands to additional Ansible servers (active-active).
Database enhancement
A new table will be added for storing admin artifact:
Asdc_artifacts_id <next_serial_number>
Artifact_type <APPC-CONFIG>
Artifact_version <0.1>
Artifact_description <VNF Management Admin Artifact>
Internal_version <start with 0 and increment upon new verion>
Creation_date <system date and time>
Artifact_name <ansible_admin_FQDN_Artifact_0.0.1V.json>
Artifact_content <actual json refer to the sample below>
CDT will keep using the Design interface to retrieve and save Admin Artifact to the new table above. Admin artifact is VNF and action agnostic. Those attributes will have a null value as inputs of the API calls.
User ID = “admin”
Vnf-type = null
Action = null
/operations/design-services:dbservice
Sample Request to Save
{
"input": {
"design-request": {
"request-id":"704632839946",
"action": "uploadArtifact",
"payload":
"{\"userID\": \"admin\",\"vnf-type\" : \"NULL
\",\"action\" : \"NULL\",\"artifact-name\" :
\"reference_AllAction_vnfc2_0.0.1V.json\",\"artifact-type\"
: \"APPC-CONFIG\",\"artifact-version\" :
\"0.1\",\"artifact-contents\": "<content>”
}
}
}
Sample request to retrieve:
{
"input": {
"design-request": {
"request-id": "704632839946",
"action": "getArtifact",
"payload":
"{\"vnf-type\":\"NULL\",\"vnfc-type\":\"null\",\"protocol\":\"\",\"incart\":\"N\",\"action\":\"NULL
\",\"artifact-name\":\"reference_AllAction_vnfc2_0.0.1V.json\",\"artifact-type\":\"APPC-CONFIG\",\"userID\":\"admin\"}"
}
}
}
Sample of Admin Artifact
{
"fqdn-list": [
{
"vnf-management-server-fqdn": "fqdn-value1 url:port",
"cloud-owner-list": [
{
"cloud-owner": "xxx3.0",
"region-id-list": [
{
"region-id": "san4a",
"tenant-id-list": [
"tenantuuid1",
"tenantuuid2"
]
},
{
"region-id": "san4b",
"tenant-id-list": [
"tenantuuid1",
"tenantuuid2"
]
}
]
},
{
"cloud-owner": "nc1.0",
"region-id-list": [
{
"region-id": "san4a",
"tenant-id-list": [
"tenantuuid3",
"tenantuuid4"
]
}
]
}
],
"description": "fqdn for east zone vUSP Production",
"username": "albino attuid",
"create-date": "",
"modify-username": "",
"modify-date": ""
},
{
"vnf-management-server-fqdn": "fqdn-value2 url:port",
"cloud-owner-list": [
{
"cloud-owner": "xxx3.0",
"region-id-list": [
{
"region-id": "san4a",