14 Query LCM Operation

This resource represents VNF lifecycle management operation occurrences. This resource can be used to query status information about multiple VNF lifecycle management operation occurrences.

The following image illustrates the sequence for querying/reading information about a VNF LCM Operation.

Figure 14-1 VNF LCM Operation


Query VNF LCM Operation

Query LCM Operation, using the following two ways:

  • Query individual LCM Operation
  • Query All LCM Operation

14.1 Query Individual LCM Operation

If the NFVO intends to read information about a particular LCM Operation, it sends a GET request to the "Individual LCM operation" resource, addressed by the appropriate VNF LCM Operation occurrence identifier (vnfLcmOpOccId) in its resource URI.

The VNFM returns a 200 OK response to the NFVO, and includes specific data structure of type " VnfLcmOpOcc" related to the VNF LCM Operation occurrence identifier (vnfLcmOpOccId) in the payload body.

Sample Request

Query individual LCM Operation

URL: GET: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_lcm_op_occs /<<{vnfLcmOpOccId}>>

Sample Response

URL: GET: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_lcm_op_occs/<<{vnfLcmOpOccId}>>
Accept: application/json
Content-Type: application/json
X-Token: Token generated after login
{
  "id": "lcmOp-00301ea4-a7b2-4334-8b93-190377700ab0",
  "operationState": "COMPLETED",
  "stateEnteredTime": "2019/02/08 07:33:00 UTC",
  "startTime": "2019/02/08 07:31:19 UTC",
  "vnfInstanceId": "dsrNetworkOam-cf67bff6-e9c9-4213-b6fa-b5337c3d30b6",
  "operation": "TERMINATE",
  "operationParams": {
    "terminationType": "FORCEFUL",
    "gracefulTerminationTimeout": null,
    "additionalParams": null
  },
  "links": {
    "self": {
      "href": "https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-00301ea4-a7b2-4334-8b93-190377700ab0"
    },
    "vnfInstance": {
      "href": "https://localhost:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-cf67bff6-e9c9-4213-b6fa-b5337c3d30b6"
    }
  },
  "isCancelPending": false,
  "isAutomaticInvocation": false
}

14.2 Query All LCM Operation

If the NFVO intends to query all LCM Operation, it sends a GET request to the LCM operation resource.

The VNFM returns a 200 OK response to the NFVO, and includes zero or more data structures of type " VnfLcmOpOcc" in the payload body.

Sample Request

Query All LCM Operation

URL: GET: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_lcm_op_occs

Sample Response

URL: GET: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_lcm_op_occs
Response Body for No VNF Instances
[]

Response Body for Query All LCM Operation
[
{
 	"id": "lcmOp-ec72c7b4-7cea-4201-a0ab-5c0cec66cfa6",
 	"operationState": "STARTING",
 	"stateEnteredTime": "2019/01/16 05:53:31 UTC",
 	"startTime": "2019/01/16 05:53:31 UTC",
 	"vnfInstanceId": "dsrNetworkOam-dfc4dcd2-2752-48b4-875d-6cf703ba4134",
 	"operation": "INSTANTIATE",
 	"operationParams": {
 		"flavourId": "DSR NOAM",
 		"instantiationLevelId": "smalll",
 		"extVirtualLinks": "extVirtualLinks",
 		"extManagedVirtualLinks": [],
 		"vimConnectionInfo": [
		  {
		   "id": "vimid",
 		   "vimType": "OpenStack",
           "interfaceInfo": {
          	 "controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
          },
         "accessInfo": {
 		   "username": "dsrat.user",
 		   "password": "xxxxx",
		   “userDomain”: “Default”,
               "projectDomain": "default",
 		   "tenant": "DSR AT Dev 2"
         },
        "extra": null
        }
       ],
       "localizationLanguage": "localizationLanguage",
       "additionalParams": {
         "ntpServerIp": "10.250.32.10",
         "xmiNetwork": {
         "name": "ext-net7",
         "ipVersion": "IPv4",
									"xmiSubnetName":"ext-net7-subnet"
 		}
 	   }
      },
 	"links": {
 	  "self": {
        "href": "https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-ec72c7b4-7cea-4201-a0ab-5c0cec66cfa6"
      },
 	 "vnfInstance": {
        "href": "https://localhost:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-dfc4dcd2-2752-48b4-875d-6cf703ba4134"
      }
   },
   "isAutomaticInvocation": false,
   "isCancelPending": false
 },
 {
 "id": "lcmOp-00574fa7-8c4a-45ac-b7a8-816bfaf70985",
 "operationState": "STARTING",
 "stateEnteredTime": "2019/01/16 06:05:32 UTC",
 "startTime": "2019/01/16 06:05:32 UTC",
 "vnfInstanceId": "dsrSignaling-08db63da-6cac-495f-8480-baf368d21cf7",
 "operation": "INSTANTIATE",
 "operationParams": {
 	"flavourId": "DIAMETER",
 	"instantiationLevelId": "small",
 	"extVirtualLinks": "extVirtualLinks",
 	"extManagedVirtualLinks": [
 	{
 	"id": "id1",
 	"resourceId": "31ae9c8b-519e-4316-9a24-45c619646d69"
 	},
 	{
 	"id": "id2",
 	"resourceId": "aa9d142d-89d4-40e7-a701-559a993aa5ea"
 	}
 	],
 	"vimConnectionInfo": [
 	 {
      "id": "vimid",
      "vimType": "OpenStack",
      "interfaceInfo": {
      "controllerUri": "https://oortcloud.us.oracle.com:5000/v3"
     },
     "accessInfo": {
       "username": "dsrat.user",
       "password": "xxxxxx",
       “userDomain”: “Default”,
       "projectDomain": "default",
       "tenant": "DSR AT Dev 2"
     },
     "extra": null
    }
    ],
    "localizationLanguage": "localizationLanguage",
    "additionalParams": {
     "xmiNetwork": {
     "name": "ext-net7",
     "ipVersion": "IPv4",
					"xmiSubnetName":"ext-net7-subnet"
      },
     "xsiNetwork": {
     "name": "ext-net7",
     "ipVersion": "IPv4",
					"xsiSubnetName":"ext-net7-subnet"
     },
    "ntpServerIp": "10.250.32.10",
    "primaryNoamVmName": "NOAM00-03ba4134",
    "noamSgName": "dsrNetworkOam_NOAM_03ba4134_SG"
    }
    },
    "links": {
     "self": {
      "href": "https://localhost:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-00574fa7-8c4a-45ac-b7a8-816bfaf70985"
      },
     "vnfInstance": {
      "href": "https://localhost:8443/vnflcm/v1/vnf_instances/dsrSignaling-08db63da-6cac-495f-8480-baf368d21cf7"
     }
    },
    "isAutomaticInvocation": false,
    "isCancelPending": false
 }
]

14.3 VNFM Get Operation Status

VNFM supports the SOL003 operation 'Get Operation Status'. The Get Operation Status operation is compliant to SOL003 version 3.3.1

NFVO invokes Get Operation Status in VNF Life cycle management operations towards VNFM. The VNFM queries the VNF for all life cycle management operation occurance.

Figure 14-2 Get Operation Status LCM operation

Get Operation Status LCM operation

The Get Operations Status operation is as follows.

  1. If the NFVO intends to query all VNF lifecycle management operation occurrences, it sends a GET request to the VNF LCM operation occurrences resource.
  2. The VNFM returns a 200 OK response to the NFVO and includes zero or more data structures of type VnfLcmOpOcc in the payload body.
  3. If the NFVO intends to read information about a particular VNF LCM operation occurrence, it sends a GET request to the Individual VNF LCM operation occurrence resource, addressed by the appropriate VNF LCM operation occurrence identifier in its resource URI.
  4. The VNFM returns a 200 OK response to the NFVO and includes one data structure of type VnfLcmOpOcc in the payload body.

The new fields added and their definitions are mentioned in the following table:

Table 14-1 New fields and their definitions

New fields Sub fields Definitions
error If "operationState" is "FAILED" or "operationState" is "PROCESSING", this attribute is present and contains the error information, unless it has been requested to be excluded through an attribute selector.
resourceChanges This attribute contains information about the cumulative changes to virtualised resources that were performed so far by the LCM operation since its start, if applicable.
  affectedVnfcs Information about VNFC instances that were affected during the lifecycle operation.
_links Links to resources related to this resource.
  self URI of this resource.
  vnfInstance Link to the VNF instance that the operation applies to.

Example of an LCM successful scenario

{
  "id": "lcmOp-55233499-078b-4eba-91fd-a58752ce23a4",
  "operationState": "COMPLETED",
  "stateEnteredTime": "2021/07/20 06:23:22 GMT",
  "startTime": "2021/07/20 06:22:58 GMT",
  "vnfInstanceId": "dsrIdih-16d883d6-0dd6-476c-aad7-a529054bb0c0",
  "operation": "TERMINATE",
  "operationParams": {
    "terminationType": "FORCEFUL",
    "gracefulTerminationTimeout": null,
    "additionalParams": null
  },
  "resourceChanges": {
    "affectedVnfcs": [
      {
        "id": "FT--a82db823-IDAPP00",
        "changeType": "REMOVED",
        "computeResource": {
          "vimConnectionId": "vimid",
          "resourceId": "06f682d9-9146-4989-9489-aebf33ecd7b3"
        }
      },
      {
        "id": "FT--a82db823-IDMED00",
        "changeType": "REMOVED",
        "computeResource": {
          "vimConnectionId": "vimid",
          "resourceId": "946ae36b-2378-4609-b72e-7e14f6f0d430"
        }
      },
      {
        "id": "FT--a82db823-IDDB00",
        "changeType": "REMOVED",
        "computeResource": {
          "vimConnectionId": "vimid",
          "resourceId": "143c4019-416b-49d4-9bcd-ee8b321ce731"
        }
      }
    ]
  },
  "links": {
    "self": {
      "href": "https://[2606:b400:605:b813::b]:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-55233499-078b-4eba-91fd-a58752ce23a4"
    },
    "vnfInstance": {
      "href": "https://[2606:b400:605:b813::b]:8443/vnflcm/v1/vnf_instances/dsrIdih-16d883d6-0dd6-476c-aad7-a529054bb0c0"
    }
  },
  "isAutomaticInvocation": false,
  "isCancelPending": false
}

Example of a failed LCM scenario

{
  "id": "lcmOp-536b138e-192d-4659-8457-b9306d4ced88",
  "operationState": "FAILED",
  "stateEnteredTime": "2021/07/20 07:12:00 GMT",
  "startTime": "2021/07/20 06:27:45 GMT",
  "vnfInstanceId": "dsrNetworkOam-cb8802a0-6358-4e78-805d-392f8bc9848b",
  "operation": "INSTANTIATE",
  "operationParams": {
    "flavourId": "DSR NOAM",
    "instantiationLevelId": "ha",
    "extVirtualLinks": "extVirtualLinks",
    "extManagedVirtualLinks": [],
    "vimConnectionInfo": [
      {
        "id": "vimid",
        "vimType": "OpenStack",
        "interfaceInfo": {
          "controllerUri": "https://mvl-dev1.us.oracle.com:5000/v3"
        },
        "accessInfo": {
          "username": "dsrvnfm",
          "password": "xxxxxxx",
          "userDomain": "default",
          "projectDomain": "default",
          "tenant": "VNFM_FT1"
        },
        "extra": {}
      }
    ],
    "localizationLanguage": "localizationLanguage",
    "additionalParams": {
      "ntpServerIp": "10.250.32.10",
      "xmiNetwork": {
        "name": "ext-net5-dual",
        "subnet": [
          {
            "ipVersion": "IPv4",
            "name": "ext-net5-ipv4"
          }
        ]
      },
      "imiNetwork": {
        "name": "imi-private",
        "subnet": [
          {
            "ipVersion": "IPv4",
            "name": "imi-private-sub"
          }
        ]
      }
    }
  },
  "error": {
    "title": "DsrVnfmGenException",
    "status": 500,
    "detail": "There is cloud-init failure."
  },
  "resourceChanges": {
    "affectedVnfcs": [
      {
        "id": "FT--8716b8dc-DNO00",
        "changeType": "ADDED",
        "computeResource": {
          "vimConnectionId": "vimid",
          "resourceId": "ad5b378e-40b7-4a83-a31d-ed7b9ddf2501"
        }
      },
      {
        "id": "FT--8716b8dc-DNO01",
        "changeType": "ADDED",
        "computeResource": {
          "vimConnectionId": "vimid",
          "resourceId": "dfae8cfd-94c4-4e1a-9322-6fc3e583243b"
        }
      }
    ]
  },
  "links": {
    "self": {
      "href": "https://[2606:b400:605:b813::b]:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-536b138e-192d-4659-8457-b9306d4ced88"
    },
    "vnfInstance": {
      "href": "https://[2606:b400:605:b813::b]:8443/vnflcm/v1/vnf_instances/dsrNetworkOam-cb8802a0-6358-4e78-805d-392f8bc9848b"
    }
  },
  "isAutomaticInvocation": false,
  "isCancelPending": false
}

Example of an LCM operation after MODIFY VNF

{
  "id": "lcmOp-ea2f46e7-5721-49a2-8770-e4002180169c",
  "operationState": "COMPLETED",
  "stateEnteredTime": "2021/07/19 17:40:28 GMT",
  "startTime": "2021/07/19 17:40:28 GMT",
  "vnfInstanceId": "vnfmSecondary-2b9f3114-51c3-4b8a-a51d-2d826c8354be",
  "operation": "MODIFY_INFO",
  "operationParams": {
    "vnfInstanceDescription": "Modify VNF",
    "vimConnectionInfo": null
  },
  "changedInfo": {
    "vnfInstanceDescription": "Modify VNF"
  },
  "links": {
    "self": {
      "href": "https://[2606:b400:605:b813::b]:8443/vnflcm/v1/vnf_lcm_op_occs/lcmOp-ea2f46e7-5721-49a2-8770-e4002180169c"
    },
    "vnfInstance": {
      "href": "https://[2606:b400:605:b813::b]:8443/vnflcm/v1/vnf_instances/vnfmSecondary-2b9f3114-51c3-4b8a-a51d-2d826c8354be"
    }
  },
  "isAutomaticInvocation": false,
  "isCancelPending": false
}