Versions Compared

Key

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

...


VFC API Interaction


CCVPN

Policy Creation

DCAE Events and A&AI Enrichment (if necessary)

...

Code Block
languagetext
titleCCVPN - Operational Policy
collapsetrue
controlLoop:
  version: 2.0.0
  controlLoopName: ControlLoop-CCVPN-2179b738-fd36-4843-a71a-a8c24c70c55b
  trigger_policy: unique-policy-id-16-receateE2EService
  timeout: 3600
  abatement: false
   
policies:
  - id: unique-policy-id-16-recreateE2EService
    name: Recreate E2E Service
    description:
    actor: SO
    recipe: Recreate_E2E_Service
    target:
      type: VM
    retry: 3
    timeout: 1200
    success: final_success
    failure: final_failure
    failure_timeout: final_failure_timeout
    failure_retries: final_failure_retries
    failure_exception: final_failure_exception
    failure_guard: final_failure_guard


DCAE Events and A&AI Enrichment (if necessary)

Code Block
languagetext
titleCCVPN - DCAE CL Event
collapsetrue
{
    "closedLoopEventClient": "DCAE.HolmesInstance",
    "policyVersion": "1.0.0.5",
    "policyName": "CCVPN",
    "policyScope": "service=SOTNService,type=SampleType,closedLoopControlName=CL-CCVPN-d925ed73-8231-4d02-9545-db4e101f88f8",
    "target_type": "VM",
    "AAI": {
        "vserver.vserver-name": "TBD",
        "service-instance.service-instance-id" : "service-instance-example-1,service-instance-example-2,service-instance-example-3",
        "service-instance-example-1.input-parameters" : "input-parameters-1",
        "service-instance-example-2.input-parameters" : "input-parameters-2",
        "service-instance-example-3.input-parameters" : "input-parameters-3"
    },
    "closedLoopAlarmStart": 1484677482204798,
    "closedLoopEventStatus": "null",
    "closedLoopControlName": "ControlLoop-CCVPN-2179b738-fd36-4843-a71a-a8c24c70c55b",
    "version": "1.0.2",
    "target": "vserver.vserver-name",
    "requestID": "97964e10-686e-4790-8c45-bdfa61df770f",
    "from": "DCAE"
}

Status Update

Code Block
languagetext
titleCCVPN - Update TP Status
collapsetrue
URL: https://<AAI host>:<AAI port>/aai/v14/network/network-resources/network-resource/{networkId}/pnfs/pnf/{pnfName}/p-interfaces/p-interface/{ifName}
Method: PATCH
Request Body:
{
    "operational-status": "some status"
}
Code Block
languagetext
titleCCVPN - Update Logic-link Status
collapsetrue
URL: https://<AAI host>:<AAI port>/aai/v14/network/logical-links/logical-link/{linkName}
Method: PATCH
Request Body:
{
    "operational-status": "some status"
}


Alarm Correlation

Code Block
languagetext
titleCCVPN - Query for Logical-links
collapsetrue
URL: https://<AAI host>:<AAI port>/aai/v14/network/pnfs/pnf/{pnfName}/p-interfaces?interface-name={ifName}&operational-status={status}
Method: GET
Resquest Body:
{
}
 
 
Response Body:
{   
    "results" : [
        {
        "p-interface" : {
             "interface-name":{ifName}",                 
             "network-ref": "some ref",
             "transparent": "some blue",
             "operational-status":"[status}",
             "speed-value" : "some speed",
             "relationship-list":
                "relationship" : [
                    {
                      "related-to" : "logic-link",
                      "related-link" :'url of logical-link",
                      "relationship-data":[
                          "relationship-key" : "logical-link.link.name",
                          "relationship-value"; "some name"
                      ]
                    }
              ]
           }
    ]
}


Service Instance Information Query

Code Block
languagetext
titleCCVPN - Get vpn-binding from TP
collapsetrue
URL: https://<AAI host>:<AAI port>/aai/v14/network/network-resources/network-resource/{networkId}/pnfs/pnf/{pnfName}/p-interfaces?interface-name={ifName}&operational-status={status}
Method: GET
Request Body:
{
}
 
Response Body:
{
    "results": [
      {
        "p-interface": {
          "interface-name": "{ifName}",
          "network-ref": "some ref",
          "transparent": "some value",
          "operational-status ": "{status}",
          "speed-value": "some speed",
          "relationship-list": {
              "relationship" : [
                  {
                      "related-to": "vpn-binding",
                      "related-link": "url of vpn-binding",
                      "relationship-data": [
                         "relationship-key": "vpn-binding.vpn-id",
                         "relationship-value": "some id"
                      ]
                  }
              ]
          }
        }
      }
    ]
}
Code Block
languagetext
titleCCVPN - Get connectivity from vpn-binding
collapsetrue
URL: https://<AAI host>:<AAI port>/aai/v14/network/vpn-bindings?vpn-id={vpnId}
Method: GET
Request Body:
{
}
 
Response Body:
{
    "results": [
      {
        "vpn-binding": {
          "vpn-id": "{vpnId}",
          "vpn-name": "some name",
          "access-provider-id": "provider id",
          "access-client-id": "client id",
          "access-topology-id": "topology id",
          "src-access-node-id": "src node id",
          "src-access-ltp-id": "src ltp id",
          "dst-access-node-id": "dst node id",
          "dst-access-ltp-id": "dst ltp id,
          "operational-status": "some status",
          "relationship-list": {
              "relationship" : [
                  {
                      "related-to": "connectivity",
                      "related-link": "url of connectivity",
                      "relationship-data": [
                         "relationship-key": "connectivity. connectivity-id",
                         "relationship-value": "some id"
                      ]
                  }
              ]
           }
        }
      }
    ]
}
Code Block
languagetext
titleCCVPN - Query service instances by connectivity
collapsetrue
URL: https://<AAI host>:<AAI port>/aai/v14/network/connectivities/connectivity/{connectivityId}
Method: Get
Request Body:
{
}
Response Body:
{
    "results": [
      {
        "connectivity": {
          "connectivity-id": "{connectivityId}",
          "bandwidth-profile-name": "some profile",
          "vpn-type": "some type",
          "cir": "cir value",
          "eir": "eir value",
          "cbs": "cbs value",
          "ebs": "ebs value",
          "color-aware": "color value",
          "coupling-flag": "flag value",
          "etht-svc-name": "some name",
          "access-provider-id": "provider id",
          "access-client-id": "client id",
          "access-topology-id": "topology id",
          "access-node-id": "node id",
          "access-ltp-id": "ltp id",
          "connectivity-selflink": "some URL",
          "cvlan ": "some tag",
          "operational-status": "some status",
          "relationship-list": {
              "relationship" : [
                  {
                      "related-to": "service-instance",
                      "related-link": "url of service-instance",
                      "relationship-data": [                        
                            "relationship-key": "service-instance.service-instance-id",                        
                            "relationship-value": "some id"
                      ]
                  }
              ]
          }
      }
    ]
Code Block
languagetext
titleCCVPN - Get all 3 services instances from CCVPN
collapsetrue
From service-instance URL:
 
URL: https://<AAI host>:<AAI port>/aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}/service-instances?service-instance-id={servId}
 
Derive the service-subscription URL:
URL: https://<AAI host>:<AAI port>/aai/v14/business/customers/customer/{global-customer-id}/service-subscriptions/service-subscription/{service-type}
 
 
Method: GET
Request Body:
{
}
Response Body:
{
    "results": [
      {
        "service-subscription": {
          "service-type": "{service-type}",
          "temp-ub-sub-account-id": "some sub account",
          "service-instances": {
              "service-instance": [
                {
                  "service-instance-id": "some id 1",
                  "service-instance-name": "some name 1",
                  "environment-context": "some context 1",
                  "workload-context": "some workload 1",
                  "relationship-list": {
                      "relationship" : [
                      ]
                  }
                },
                {
                  "service-instance-id": "some id 2",
                  "service-instance-name": "some name 2",
                  "environment-context": "some context 2",
                  "workload-context": "some workload 2",
                  "relationship-list": {
                      "relationship" : [
                      ]
                  }
                },
                {
                  "service-instance-id": "some id 3",
                  "service-instance-name": "some name 3",
                  "environment-context": "some context 3",
                  "workload-context": "some workload 3",
                  "relationship-list": {
                      "relationship" : [
                      ]
                  }
                }
              ]
          },
          "relationship-list": {
              "relationship" : [
              ]
          }
        }
      }
    ]
}

Code Block
languagetext
titleCCVPN - Query 'input-parameters' for 'service-instance'
collapsetrue
URL: https://<AAI host>:<AAI port>/aai/v14/business/customers/customer/{global-custoner-id}/service-subscriptions/service-subscription/{service-type}/service-instances?service-instance-id={serviceId}
Method: GET
Request Body:
{
}
Response Body:
{
    "service-instance-id": "{service-instance-id}",
    "service-instance-name" : "instance name",
    "service-type": "some type",
    "service-role": "some role",
    "model-invariant-id": "model id",
    "model-version-id": "model version",
    "input-parameters:"request parameters",  // ... This is the service instance recreation input looked up by CL.
    "resource-version": "some version"
}
 
 
Example of response body:
{
    "service-instance-id": "176d9eba-1662-4289-8396-0097b50fd485",
    "service-type": "E2E Service",
    "service-role": "E2E Service",
    "model-invariant-id": "c22a9483-d2b6-49cc-b1f7-ef34c93572a1",
    "model-version-id": "71d0e396-e246-4c23-aa57-6da2043d6209",
    "input-parameters:".....;",             // ... This is the service instance recreation input looked up by CL.
    "resource-version": "1528975017336"
    "relationship-list": {
         "relationship": [
            {
            "related-to": "pnf",
            "related-link": "/aai/v11/network/pnfs/pnf/MME-0001",
            "relationship-data": [
                    {    
                    "relationship-key": "pnf.pnf-id",      
                    "relationship-value": "176d9eba-1662-4289-8396-0097b50fd466"
                    }
                ],
            "related-to-property": [
                    {
                    "property-key": "pnf.pnf-name",      
                    "property-value": "MME-0001"
                    }
                ]
            } 
        ]
    }
}


SO API Interaction