13 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 13-1 VNF LCM Operation


Query VNF LCM Operation

Query LCM Operation, using the following two ways:

  • Query individual LCM Operation
  • Query All LCM Operation

13.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
}

13.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
 }
]

13.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 13-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 13-1 New fields and their definitions

New fields Sub fields Definitions
error If "operationState" is "FAILED_TEMP" or "FAILED" or "operationState" is "PROCESSING" or "ROLLING_BACK" and previous value of "operationState" was "FAILED_TEMP", 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.
  affectedVirtualLinks Information about VL instances that were affected during the lifecycle operation.
  affectedExtLinkPorts Information about external VNF link ports that were affected during the lifecycle operation.
  affectedVirtualStorages Information about virtualised storage instances that were affected during the lifecycle operation.
changedInfo Information about the changed VNF instance information, including VNF configurable properties, if applicable.
changedExtConnectivity Information about changed external connectivity, if applicable.
modificationsTriggeredByVnfPkgChange Information about performed changes of "VnfInstance" attributes triggered by changing the current VNF package, if applicable. Shall be absent if the "operation" attribute is different from "CHANGE_VNFPKG"
vnfSnapshotInfoId Identifier of the "Individual VNF snapshot" resource. Shall be present if applicable to the type of LCM operation, i.e. if the value of the "operation" attribute is either "CREATE_SNAPSHOT" or "REVERT_TO_SNAPSHOT".
_links Links to resources related to this resource.
  self URI of this resource.
  vnfInstance Link to the VNF instance that the operation applies to.
  grant Link to the grant for this operation, if one exists.
  cancel Link to the task resource that represents the "cancel" operation for this VNF LCM operation occurrence, if cancelling is currently allowed.
  retry Link to the task resource that represents the "retry" operation for this VNF LCM operation occurrence, if retrying is currently allowed.
  rollback Link to the task resource that represents the "rollback" operation for this VNF LCM operation occurrence, if rolling back is currently allowed.
  fail Link to the task resource that represents the "fail" operation for this VNF LCM operation occurrence, if declaring as failed is currently allowed.
  vnfSnapshot Link to the VNF snapshot resource, if the VNF LCM operation occurrence is related to a VNF snapshot. Shall be present if operation="CREATE_SNAPSHOT" or operation="REVERT_TO_SNAPSHOT".

Note:

  1. This allows the NFVO to obtain the information contained in the latest "result" notification if it has not received it due to an error or a wrongly configured subscription filter.
  2. Not more than one of changedInfo and modificationsTriggeredByVnfPkgChange shall be present.
  3. For a particular affected VL, there shall be as many "AffectedVirtualLink" entries as needed for signalling the different types of changes, i.e. one per virtual link and change type. For instance, in the case of signaling affected VL instances involving the addition of a particular VL instance with links ports, one "AffectedVirtualLink" entry signals the addition of the VL by using the "changeType" attribute of "AffectedVirtualLink" structure equal to "ADDED", and another "AffectedVirtualLink" entry signals the addition of externally visible VNF link ports of the VL by using the "changeType" equal to "LINK_PORT_ADDED".

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
}