Add documents for error handling operations in V2
This patch provides Tacker documents for error handling operations (retry, fail, rollback) in V2-API. The specification about new API is added to API Reference. Also, these descriptions are added to an error handling page of Tacker Use Cases Guide. This patch includes some improvements of these documents. For example, modifying spelling inconsistencies, unifying uppercase and lowercase letters and so on. This patch does not include documents for other operations (Modify, Scale, Heal, Changeextconn) in V2-API. Those documents will be provided with another patch by the release of Yoga. Implements: blueprint support-nfv-solv3-error-handling Change-Id: Id045469db965b0e0ef12e271d9259002ef7e60af
This commit is contained in:
@@ -621,6 +621,14 @@ graceful_termination_timeout:
|
||||
in: body
|
||||
required: false
|
||||
type: integer
|
||||
grant_id:
|
||||
description: |
|
||||
Identifier of the grant related to this VNF LCM operation occurrence.
|
||||
Shall be set to the value of the "id" attribute in the "Grant"
|
||||
representing the associated "Individual Grant", if such grant exists.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
instantiated_vnf_info:
|
||||
description: |
|
||||
Information specific to an instantiated VNF instance. This attribute shall
|
||||
@@ -718,7 +726,7 @@ link_port_id:
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
localizataion_language:
|
||||
localization_language:
|
||||
description: |
|
||||
Localization language of the VNF to be instantiated.
|
||||
The value shall comply with the format defined in
|
||||
@@ -801,6 +809,19 @@ parent_cp_config_id:
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
removed_storage_resource_ids:
|
||||
description: |
|
||||
References to VirtualStorage resources that
|
||||
have been removed.
|
||||
The value contains the identifier of a
|
||||
VirtualStorageResourceInfo item that has been
|
||||
removed from the VNFC, and might no longer
|
||||
exist in the VnfInstance.
|
||||
It shall be provided if at least one storage
|
||||
resource was removed from the VNFC.
|
||||
in: body
|
||||
required: false
|
||||
type: array
|
||||
resource_changes:
|
||||
description: |
|
||||
This attribute contains information about the cumulative
|
||||
|
||||
@@ -0,0 +1,248 @@
|
||||
{
|
||||
"_links": {
|
||||
"fail": {
|
||||
"href": "http://127.0.0.1:9890/v2/vnflcm/vnf_lcm_op_occs/9b475d28-5acb-4c3b-95dd-fec2b2319643/fail"
|
||||
},
|
||||
"retry": {
|
||||
"href": "http://127.0.0.1:9890/v2/vnflcm/vnf_lcm_op_occs/9b475d28-5acb-4c3b-95dd-fec2b2319643/retry"
|
||||
},
|
||||
"rollback": {
|
||||
"href": "http://127.0.0.1:9890/v2/vnflcm/vnf_lcm_op_occs/9b475d28-5acb-4c3b-95dd-fec2b2319643/rollback"
|
||||
},
|
||||
"self": {
|
||||
"href": "http://127.0.0.1:9890/v2/vnflcm/vnf_lcm_op_occs/9b475d28-5acb-4c3b-95dd-fec2b2319643"
|
||||
},
|
||||
"vnfInstance": {
|
||||
"href": "http://127.0.0.1:9890/v2/vnflcm/vnf_instances/10ed068e-1284-48f2-9b6e-1c443ace9cc6"
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"detail": "instantiate_end failed: b'test instantiate_end error'",
|
||||
"status": 422,
|
||||
"title": "Mgmt driver execution failed"
|
||||
},
|
||||
"grantId": "f7437546-5c4d-4860-85b4-9e7dc5fe8e67",
|
||||
"id": "9b475d28-5acb-4c3b-95dd-fec2b2319643",
|
||||
"isAutomaticInvocation": false,
|
||||
"isCancelPending": false,
|
||||
"operation": "INSTANTIATE",
|
||||
"operationParams": {
|
||||
"additionalParams": {
|
||||
"lcm-operation-user-data": "./UserData/userdata_default.py",
|
||||
"lcm-operation-user-data-class": "DefaultUserData"
|
||||
},
|
||||
"extManagedVirtualLinks": [
|
||||
{
|
||||
"id": "ac9eff82-9406-42f0-88ae-1be9d89eb917",
|
||||
"resourceId": "b3f18cea-a773-4f46-8fa1-9357df2ce360",
|
||||
"vnfVirtualLinkDescId": "internalVL1"
|
||||
}
|
||||
],
|
||||
"extVirtualLinks": [
|
||||
{
|
||||
"extCps": [
|
||||
{
|
||||
"cpConfig": {
|
||||
"VDU1_CP1_1": {
|
||||
"cpProtocolData": [
|
||||
{
|
||||
"ipOverEthernet": {
|
||||
"ipAddresses": [
|
||||
{
|
||||
"numDynamicAddresses": 1,
|
||||
"type": "IPV4"
|
||||
}
|
||||
]
|
||||
},
|
||||
"layerProtocol": "IP_OVER_ETHERNET"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"cpdId": "VDU1_CP1"
|
||||
},
|
||||
{
|
||||
"cpConfig": {
|
||||
"VDU2_CP1_1": {
|
||||
"cpProtocolData": [
|
||||
{
|
||||
"ipOverEthernet": {
|
||||
"ipAddresses": [
|
||||
{
|
||||
"fixedAddresses": [
|
||||
"10.10.0.102"
|
||||
],
|
||||
"type": "IPV4"
|
||||
}
|
||||
]
|
||||
},
|
||||
"layerProtocol": "IP_OVER_ETHERNET"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"cpdId": "VDU2_CP1"
|
||||
}
|
||||
],
|
||||
"id": "789ecc10-4285-43fe-b8e3-b0e7d4a5cd79",
|
||||
"resourceId": "7d16f94d-d4c9-412b-a2f5-0321131e9e4d"
|
||||
},
|
||||
{
|
||||
"extCps": [
|
||||
{
|
||||
"cpConfig": {
|
||||
"VDU1_CP2_1": {
|
||||
"cpProtocolData": [
|
||||
{
|
||||
"ipOverEthernet": {
|
||||
"ipAddresses": [
|
||||
{
|
||||
"numDynamicAddresses": 1,
|
||||
"subnetId": "f6208fae-87fa-473f-bc96-441a75a19d09",
|
||||
"type": "IPV4"
|
||||
}
|
||||
]
|
||||
},
|
||||
"layerProtocol": "IP_OVER_ETHERNET"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"cpdId": "VDU1_CP2"
|
||||
},
|
||||
{
|
||||
"cpConfig": {
|
||||
"VDU2_CP2_1": {
|
||||
"cpProtocolData": [
|
||||
{
|
||||
"ipOverEthernet": {
|
||||
"ipAddresses": [
|
||||
{
|
||||
"fixedAddresses": [
|
||||
"10.10.1.102"
|
||||
],
|
||||
"subnetId": "f6208fae-87fa-473f-bc96-441a75a19d09",
|
||||
"type": "IPV4"
|
||||
}
|
||||
]
|
||||
},
|
||||
"layerProtocol": "IP_OVER_ETHERNET"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"cpdId": "VDU2_CP2"
|
||||
}
|
||||
],
|
||||
"id": "cd8aa4ce-a17f-47d8-b3fb-6102ce17f355",
|
||||
"resourceId": "67f4ca33-4142-4d1a-afb0-978365e31aa2"
|
||||
}
|
||||
],
|
||||
"flavourId": "simple",
|
||||
"instantiationLevelId": "instantiation_level_1",
|
||||
"vimConnectionInfo": {
|
||||
"vim1": {
|
||||
"accessInfo": {
|
||||
"password": "devstack",
|
||||
"project": "nfv",
|
||||
"projectDomain": "Default",
|
||||
"region": "RegionOne",
|
||||
"userDomain": "Default",
|
||||
"username": "nfv_user"
|
||||
},
|
||||
"interfaceInfo": {
|
||||
"endpoint": "http://localhost/identity/v3"
|
||||
},
|
||||
"vimId": "0f093d21-cd8f-4826-aeee-27cd9305a209",
|
||||
"vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3"
|
||||
}
|
||||
}
|
||||
},
|
||||
"operationState": "FAILED",
|
||||
"resourceChanges": {
|
||||
"affectedVirtualLinks": [
|
||||
{
|
||||
"changeType": "ADDED",
|
||||
"id": "e2cc5431-eb8d-4208-b8e1-3b766c123279",
|
||||
"networkResource": {
|
||||
"resourceId": "d2565a88-aea8-4999-b52f-a220b59df5ea",
|
||||
"vimConnectionId": "0f093d21-cd8f-4826-aeee-27cd9305a209",
|
||||
"vimLevelResourceType": "OS::Neutron::Net"
|
||||
},
|
||||
"vnfLinkPortIds": [
|
||||
"69081627-7f06-42fd-af9c-3f79d44fb8c3",
|
||||
"46dd1aec-0ae1-4cff-8d5d-81c671f4aaad"
|
||||
],
|
||||
"vnfVirtualLinkDescId": "internalVL3"
|
||||
},
|
||||
{
|
||||
"changeType": "ADDED",
|
||||
"id": "b5d1f4b8-fb87-4155-a4e9-6619a1b7097f",
|
||||
"networkResource": {
|
||||
"resourceId": "d785e039-215c-4e6e-951c-79959d8c531c",
|
||||
"vimConnectionId": "0f093d21-cd8f-4826-aeee-27cd9305a209",
|
||||
"vimLevelResourceType": "OS::Neutron::Net"
|
||||
},
|
||||
"vnfLinkPortIds": [
|
||||
"7d244233-7244-4a40-9e4f-7aec929401ab",
|
||||
"fd61f725-28b7-44a5-ba02-652846bef719"
|
||||
],
|
||||
"vnfVirtualLinkDescId": "internalVL2"
|
||||
}
|
||||
],
|
||||
"affectedVirtualStorages": [
|
||||
{
|
||||
"changeType": "ADDED",
|
||||
"id": "55cf75b7-6c73-455e-8bd2-07f31047672d",
|
||||
"storageResource": {
|
||||
"resourceId": "5c6956bc-9e1b-490f-8592-a490da200a2c",
|
||||
"vimConnectionId": "0f093d21-cd8f-4826-aeee-27cd9305a209",
|
||||
"vimLevelResourceType": "OS::Cinder::Volume"
|
||||
},
|
||||
"virtualStorageDescId": "VirtualStorage"
|
||||
}
|
||||
],
|
||||
"affectedVnfcs": [
|
||||
{
|
||||
"affectedVnfcCpIds": [
|
||||
"a84df9fb-b81a-49be-a010-3082e6d2adbe",
|
||||
"77bfa29d-9fbe-42f2-9892-af98a2507d59",
|
||||
"4f0173ce-a624-4173-8e4b-a37667e04a80",
|
||||
"3057e251-8546-4f61-96e4-ea6c1af886cf",
|
||||
"7b31dd26-a2af-4e47-921d-5695ac101028"
|
||||
],
|
||||
"changeType": "ADDED",
|
||||
"computeResource": {
|
||||
"resourceId": "c9920a04-cf74-4e42-be89-a2fec2f89e48",
|
||||
"vimConnectionId": "0f093d21-cd8f-4826-aeee-27cd9305a209",
|
||||
"vimLevelResourceType": "OS::Nova::Server"
|
||||
},
|
||||
"id": "43c29ba1-6037-49a6-a73a-b83484e7dc4e",
|
||||
"vduId": "VDU2"
|
||||
},
|
||||
{
|
||||
"addedStorageResourceIds": [
|
||||
"55cf75b7-6c73-455e-8bd2-07f31047672d"
|
||||
],
|
||||
"affectedVnfcCpIds": [
|
||||
"defd21b3-d0e2-4eb4-8433-e4b555e5926b",
|
||||
"60eb1d2b-11cf-4bb3-90c6-83096bd7d2a0",
|
||||
"d7c68605-3022-41a4-a4bf-44cc76aa9d28",
|
||||
"efb91c15-9ddc-435b-aded-33203b9061b6",
|
||||
"95ad30b9-87e9-4695-be38-59298dc86cb6"
|
||||
],
|
||||
"changeType": "ADDED",
|
||||
"computeResource": {
|
||||
"resourceId": "dd5731bb-50f1-47e5-b1bf-ae0c34fd646e",
|
||||
"vimConnectionId": "0f093d21-cd8f-4826-aeee-27cd9305a209",
|
||||
"vimLevelResourceType": "OS::Nova::Server"
|
||||
},
|
||||
"id": "d9d06660-35d2-4c90-b9f0-139f38731e75",
|
||||
"vduId": "VDU1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"startTime": "2021-12-20T15:36:13Z",
|
||||
"stateEnteredTime": "2021-12-20T15:36:13Z",
|
||||
"vnfInstanceId": "10ed068e-1284-48f2-9b6e-1c443ace9cc6"
|
||||
}
|
||||
@@ -2,6 +2,15 @@
|
||||
[
|
||||
{
|
||||
"_links": {
|
||||
"fail": {
|
||||
"href": "http://127.0.0.1:9890/v2/vnflcm/vnf_lcm_op_occs/a790879c-05f9-4475-9c90-1677452d3eb5/fail"
|
||||
},
|
||||
"retry": {
|
||||
"href": "http://127.0.0.1:9890/v2/vnflcm/vnf_lcm_op_occs/a790879c-05f9-4475-9c90-1677452d3eb5/retry"
|
||||
},
|
||||
"rollback": {
|
||||
"href": "http://127.0.0.1:9890/v2/vnflcm/vnf_lcm_op_occs/a790879c-05f9-4475-9c90-1677452d3eb5/rollback"
|
||||
},
|
||||
"self": {
|
||||
"href": "http://127.0.0.1:9890/v2/vnflcm/vnf_lcm_op_occs/a790879c-05f9-4475-9c90-1677452d3eb5"
|
||||
},
|
||||
@@ -9,11 +18,16 @@
|
||||
"href": "http://127.0.0.1:9890/v2/vnflcm/vnf_instances/e00f0d64-d7a3-459b-8a51-b402d5344296"
|
||||
}
|
||||
},
|
||||
"grantId": "30bdaa69-ef80-4545-9298-428b70ce8e4a",
|
||||
"id": "a790879c-05f9-4475-9c90-1677452d3eb5",
|
||||
"isAutomaticInvocation": false,
|
||||
"isCancelPending": false,
|
||||
"operation": "INSTANTIATE",
|
||||
"operationParams": {
|
||||
"additionalParams": {
|
||||
"lcm-operation-user-data": "./UserData/userdata_default.py",
|
||||
"lcm-operation-user-data-class": "DefaultUserData"
|
||||
},
|
||||
"extManagedVirtualLinks": [
|
||||
{
|
||||
"id": "7a6fe192-c34b-4029-937d-f1a2e7a00f5a",
|
||||
@@ -141,6 +155,166 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"operationState": "PROCESSING",
|
||||
"startTime": "2021-12-20T07:55:55Z",
|
||||
"stateEnteredTime": "2021-12-20T07:55:55Z",
|
||||
"vnfInstanceId": "f68c329d-2fca-4178-9a38-e21ee8c01606"
|
||||
},
|
||||
{
|
||||
"_links": {
|
||||
"fail": {
|
||||
"href": "http://127.0.0.1:9890/v2/vnflcm/vnf_lcm_op_occs/fdd8bdf4-8f7b-4237-99d3-c87c0910571d/fail"
|
||||
},
|
||||
"retry": {
|
||||
"href": "http://127.0.0.1:9890/v2/vnflcm/vnf_lcm_op_occs/fdd8bdf4-8f7b-4237-99d3-c87c0910571d/retry"
|
||||
},
|
||||
"rollback": {
|
||||
"href": "http://127.0.0.1:9890/v2/vnflcm/vnf_lcm_op_occs/fdd8bdf4-8f7b-4237-99d3-c87c0910571d/rollback"
|
||||
},
|
||||
"self": {
|
||||
"href": "http://127.0.0.1:9890/v2/vnflcm/vnf_lcm_op_occs/fdd8bdf4-8f7b-4237-99d3-c87c0910571d"
|
||||
},
|
||||
"vnfInstance": {
|
||||
"href": "http://127.0.0.1:9890/v2/vnflcm/vnf_instances/c256d5c2-f29e-474c-bced-cbc6d9e2b00b"
|
||||
}
|
||||
},
|
||||
"grantId": "3aa7d8cd-6f85-4d7f-859a-eb26481157e6",
|
||||
"id": "fdd8bdf4-8f7b-4237-99d3-c87c0910571d",
|
||||
"isAutomaticInvocation": false,
|
||||
"isCancelPending": false,
|
||||
"operation": "INSTANTIATE",
|
||||
"operationParams": {
|
||||
"additionalParams": {
|
||||
"lcm-operation-user-data": "./UserData/userdata_default.py",
|
||||
"lcm-operation-user-data-class": "DefaultUserData"
|
||||
},
|
||||
"extManagedVirtualLinks": [
|
||||
{
|
||||
"id": "46653630-2b7f-493c-8dec-c2c6e2fd98c8",
|
||||
"resourceId": "6c85c8bd-91f3-48b4-bc4b-030bbdfb1a8d",
|
||||
"vnfVirtualLinkDescId": "internalVL1"
|
||||
}
|
||||
],
|
||||
"extVirtualLinks": [
|
||||
{
|
||||
"extCps": [
|
||||
{
|
||||
"cpConfig": {
|
||||
"VDU1_CP1_1": {
|
||||
"cpProtocolData": [
|
||||
{
|
||||
"ipOverEthernet": {
|
||||
"ipAddresses": [
|
||||
{
|
||||
"numDynamicAddresses": 1,
|
||||
"type": "IPV4"
|
||||
}
|
||||
]
|
||||
},
|
||||
"layerProtocol": "IP_OVER_ETHERNET"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"cpdId": "VDU1_CP1"
|
||||
},
|
||||
{
|
||||
"cpConfig": {
|
||||
"VDU2_CP1_1": {
|
||||
"cpProtocolData": [
|
||||
{
|
||||
"ipOverEthernet": {
|
||||
"ipAddresses": [
|
||||
{
|
||||
"fixedAddresses": [
|
||||
"10.10.0.102"
|
||||
],
|
||||
"type": "IPV4"
|
||||
}
|
||||
]
|
||||
},
|
||||
"layerProtocol": "IP_OVER_ETHERNET"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"cpdId": "VDU2_CP1"
|
||||
}
|
||||
],
|
||||
"id": "bec04b02-273f-4eb3-a18d-af695c4399bf",
|
||||
"resourceId": "576075c2-d33e-4002-8d85-9c906cf63ed7"
|
||||
},
|
||||
{
|
||||
"extCps": [
|
||||
{
|
||||
"cpConfig": {
|
||||
"VDU1_CP2_1": {
|
||||
"cpProtocolData": [
|
||||
{
|
||||
"ipOverEthernet": {
|
||||
"ipAddresses": [
|
||||
{
|
||||
"numDynamicAddresses": 1,
|
||||
"subnetId": "afc77fd6-1bf6-4db9-b285-6799642cbfd2",
|
||||
"type": "IPV4"
|
||||
}
|
||||
]
|
||||
},
|
||||
"layerProtocol": "IP_OVER_ETHERNET"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"cpdId": "VDU1_CP2"
|
||||
},
|
||||
{
|
||||
"cpConfig": {
|
||||
"VDU2_CP2_1": {
|
||||
"cpProtocolData": [
|
||||
{
|
||||
"ipOverEthernet": {
|
||||
"ipAddresses": [
|
||||
{
|
||||
"fixedAddresses": [
|
||||
"10.10.1.102"
|
||||
],
|
||||
"subnetId": "afc77fd6-1bf6-4db9-b285-6799642cbfd2",
|
||||
"type": "IPV4"
|
||||
}
|
||||
]
|
||||
},
|
||||
"layerProtocol": "IP_OVER_ETHERNET"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"cpdId": "VDU2_CP2"
|
||||
}
|
||||
],
|
||||
"id": "625f6da9-6a01-480e-8ecb-1ef8122ad224",
|
||||
"resourceId": "c84bc776-69ed-4ec9-886e-c594d9ebe38f"
|
||||
}
|
||||
],
|
||||
"flavourId": "simple",
|
||||
"instantiationLevelId": "instantiation_level_1",
|
||||
"vimConnectionInfo": {
|
||||
"vim1": {
|
||||
"accessInfo": {
|
||||
"password": "devstack",
|
||||
"project": "nfv",
|
||||
"projectDomain": "Default",
|
||||
"region": "RegionOne",
|
||||
"userDomain": "Default",
|
||||
"username": "nfv_user"
|
||||
},
|
||||
"interfaceInfo": {
|
||||
"endpoint": "http://localhost/identity/v3"
|
||||
},
|
||||
"vimId": "fc734abb-2d1b-4032-b594-88c33634e023",
|
||||
"vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3"
|
||||
}
|
||||
}
|
||||
},
|
||||
"operationState": "COMPLETED",
|
||||
"resourceChanges": {
|
||||
"affectedVirtualLinks": [
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
{
|
||||
"_links": {
|
||||
"fail": {
|
||||
"href": "http://127.0.0.1:9890/v2/vnflcm/vnf_lcm_op_occs/a790879c-05f9-4475-9c90-1677452d3eb5/fail"
|
||||
},
|
||||
"retry": {
|
||||
"href": "http://127.0.0.1:9890/v2/vnflcm/vnf_lcm_op_occs/a790879c-05f9-4475-9c90-1677452d3eb5/retry"
|
||||
},
|
||||
"rollback": {
|
||||
"href": "http://127.0.0.1:9890/v2/vnflcm/vnf_lcm_op_occs/a790879c-05f9-4475-9c90-1677452d3eb5/rollback"
|
||||
},
|
||||
"self": {
|
||||
"href": "http://127.0.0.1:9890/v2/vnflcm/vnf_lcm_op_occs/a790879c-05f9-4475-9c90-1677452d3eb5"
|
||||
},
|
||||
@@ -7,11 +16,16 @@
|
||||
"href": "http://127.0.0.1:9890/v2/vnflcm/vnf_instances/e00f0d64-d7a3-459b-8a51-b402d5344296"
|
||||
}
|
||||
},
|
||||
"grantId": "f848dd6c-6393-4104-8bfe-df764a042563",
|
||||
"id": "a790879c-05f9-4475-9c90-1677452d3eb5",
|
||||
"isAutomaticInvocation": false,
|
||||
"isCancelPending": false,
|
||||
"operation": "INSTANTIATE",
|
||||
"operationParams": {
|
||||
"additionalParams": {
|
||||
"lcm-operation-user-data": "./UserData/userdata_default.py",
|
||||
"lcm-operation-user-data-class": "DefaultUserData"
|
||||
},
|
||||
"extManagedVirtualLinks": [
|
||||
{
|
||||
"id": "7a6fe192-c34b-4029-937d-f1a2e7a00f5a",
|
||||
|
||||
@@ -9,14 +9,8 @@ This interface manages the VNF lifecycle management operations of VNF instances.
|
||||
This interface allows the NFVO to invoke VNF lifecycle management operations
|
||||
of VNF instances towards the VNFM.
|
||||
|
||||
.. note::
|
||||
TODO: Xena release does not support version 2 vnflcm APIs of
|
||||
scale vnf, heal vnf, change external vnf connectivity,
|
||||
rollback, retry and fail.
|
||||
The version 2 of these APIs will be supported in future releases.
|
||||
|
||||
Creates a new VNF instance resource (v2)
|
||||
========================================
|
||||
Create a new VNF instance resource (v2)
|
||||
=======================================
|
||||
|
||||
.. rest_method:: POST /vnflcm/v2/vnf_instances
|
||||
|
||||
@@ -167,7 +161,7 @@ Request Parameters
|
||||
- interfaceInfo: vim_connection_info_interface_info
|
||||
- accessInfo: vim_connection_info_access_info
|
||||
- extra: vim_connection_info_extra
|
||||
- localizationLanguage: localizataion_language
|
||||
- localizationLanguage: localization_language
|
||||
- additionalParams: vnf_instance_additional_params
|
||||
- extensions: vnf_instance_extensions
|
||||
- vnfConfigurableProperties: vnf_instance_vnf_configurable_properties
|
||||
@@ -258,7 +252,7 @@ Request Parameters
|
||||
|
||||
- vnfInstanceId: vnf_instance_id
|
||||
|
||||
Show VNF Instance (v2)
|
||||
Show VNF instance (v2)
|
||||
======================
|
||||
|
||||
.. rest_method:: GET /vnflcm/v2/vnf_instances/{vnfInstanceId}
|
||||
@@ -404,7 +398,7 @@ Response Example
|
||||
.. literalinclude:: samples/vnflcm/show-vnf-instance-response.json
|
||||
:language: javascript
|
||||
|
||||
List VNF Instance (v2)
|
||||
List VNF instance (v2)
|
||||
======================
|
||||
|
||||
.. rest_method:: GET /vnflcm/v2/vnf_instances
|
||||
@@ -599,6 +593,7 @@ Response Parameters
|
||||
- stateEnteredTime: state_entered_time
|
||||
- startTime: start_time
|
||||
- vnfInstanceId: vnf_lcm_vnf_instance_id
|
||||
- grantId: grant_id
|
||||
- operation: operation
|
||||
- isAutomaticInvocation: is_automatic_invocation
|
||||
- operationParams: operation_params
|
||||
@@ -618,6 +613,7 @@ Response Parameters
|
||||
- vimLevelResourceType: resource_handle_vim_level_resource_type
|
||||
- affectedVnfcCpIds: affected_vnfc_cp_ids
|
||||
- addedStorageResourceIds: added_storage_resource_ids
|
||||
- removedStorageResourceIds: removed_storage_resource_ids
|
||||
- affectedVirtualLinks: affected_virtual_links
|
||||
- id: affected_virtual_links_id
|
||||
- vnfVirtualLinkDescId: vnf_virtual_link_resource_info_vnf_virtual_link_desc_id
|
||||
@@ -693,6 +689,7 @@ Response Parameters
|
||||
- stateEnteredTime: state_entered_time
|
||||
- startTime: start_time
|
||||
- vnfInstanceId: vnf_lcm_vnf_instance_id
|
||||
- grantId: grant_id
|
||||
- operation: operation
|
||||
- isAutomaticInvocation: is_automatic_invocation
|
||||
- operationParams: operation_params
|
||||
@@ -712,6 +709,7 @@ Response Parameters
|
||||
- vimLevelResourceType: resource_handle_vim_level_resource_type
|
||||
- affectedVnfcCpIds: affected_vnfc_cp_ids
|
||||
- addedStorageResourceIds: added_storage_resource_ids
|
||||
- removedStorageResourceIds: removed_storage_resource_ids
|
||||
- affectedVirtualLinks: affected_virtual_links
|
||||
- id: affected_virtual_links_id
|
||||
- vnfVirtualLinkDescId: vnf_virtual_link_resource_info_vnf_virtual_link_desc_id
|
||||
@@ -737,6 +735,154 @@ Response Example
|
||||
.. literalinclude:: samples/vnflcm/list-vnflcm-operation-occurrence-response.json
|
||||
:language: javascript
|
||||
|
||||
Retry a VNF LCM operation occurrence (v2)
|
||||
=========================================
|
||||
|
||||
.. rest_method:: POST /vnflcm/v2/vnf_lcm_op_occs/{vnfLcmOpOccId}/retry
|
||||
|
||||
The POST method starts retrying a VNF lifecycle operation if that operation
|
||||
has experienced a temporary failure, i.e. the related
|
||||
"Individual VNF LCM operation occurrence" resource is in "FAILED_TEMP" state.
|
||||
|
||||
Response Codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 202
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 401
|
||||
- 404
|
||||
- 409
|
||||
- 422
|
||||
|
||||
Request Parameters
|
||||
------------------
|
||||
|
||||
.. rest_parameters:: parameters_vnflcm.yaml
|
||||
|
||||
- vnfLcmOpOccId: vnf_lcm_op_occ_id
|
||||
|
||||
Fail a VNF LCM operation occurrence (v2)
|
||||
========================================
|
||||
|
||||
.. rest_method:: POST /vnflcm/v2/vnf_lcm_op_occs/{vnfLcmOpOccId}/fail
|
||||
|
||||
The POST method marks a VNF lifecycle management operation occurrence
|
||||
as "finally failed" if that operation occurrence is in "FAILED_TEMP" state.
|
||||
|
||||
Response Codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 200
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 401
|
||||
- 404
|
||||
- 406
|
||||
- 409
|
||||
|
||||
Request Parameters
|
||||
------------------
|
||||
|
||||
.. rest_parameters:: parameters_vnflcm.yaml
|
||||
|
||||
- vnfLcmOpOccId: vnf_lcm_op_occ_id
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters_vnflcm.yaml
|
||||
|
||||
- id: vnf_lcm_op_occ_id_response
|
||||
- operationState: operation_state
|
||||
- stateEnteredTime: state_entered_time
|
||||
- startTime: start_time
|
||||
- vnfInstanceId: vnf_instance_id
|
||||
- grantId: grant_id
|
||||
- operation: operation
|
||||
- isAutomaticInvocation: is_automatic_invocation
|
||||
- operationParams: operation_params
|
||||
- isCancelPending: is_cancel_pending
|
||||
- error: error
|
||||
- title: error_title
|
||||
- status: error_status
|
||||
- detail: error_detail
|
||||
- resourceChanges: resource_changes
|
||||
- affectedVnfcs: affected_vnfcs
|
||||
- id: affected_vnfcs_id
|
||||
- vduId: affected_vnfcs_vdu_id
|
||||
- changeType: affected_vnfcs_change_type
|
||||
- computeResource: vnfc_resource_info_compute_resource
|
||||
- vimConnectionId: vim_connection_id
|
||||
- resourceId: resource_handle_resource_id
|
||||
- vimLevelResourceType: resource_handle_vim_level_resource_type
|
||||
- affectedVnfcCpIds: affected_vnfc_cp_ids
|
||||
- addedStorageResourceIds: added_storage_resource_ids
|
||||
- removedStorageResourceIds: removed_storage_resource_ids
|
||||
- affectedVirtualLinks: affected_virtual_links
|
||||
- id: affected_virtual_links_id
|
||||
- vnfVirtualLinkDescId: vnf_virtual_link_resource_info_vnf_virtual_link_desc_id
|
||||
- changeType: affected_virtual_links_change_type
|
||||
- networkResource: vnf_virtual_link_resource_info_network_resource
|
||||
- vimConnectionId: vim_connection_id
|
||||
- resourceId: resource_handle_resource_id
|
||||
- vimLevelResourceType: resource_handle_vim_level_resource_type
|
||||
- affectedVirtualStorages: affected_virtual_storages
|
||||
- id: affected_virtual_storages_id
|
||||
- virtualStorageDescId: affected_virtual_storages_virtual_storage_desc_id
|
||||
- changeType: affected_virtual_storages_change_type
|
||||
- storageResource: virtual_storage_resource_info_storage_resource
|
||||
- vimConnectionId: vim_connection_id
|
||||
- resourceId: resource_handle_resource_id
|
||||
- vimLevelResourceType: resource_handle_vim_level_resource_type
|
||||
- _links: vnf_instance_links
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/vnflcm/fail-vnflcm-operation-occurrence-response.json
|
||||
:language: javascript
|
||||
|
||||
Rollback a VNF LCM operation occurrence (v2)
|
||||
============================================
|
||||
|
||||
.. rest_method:: POST /vnflcm/v2/vnf_lcm_op_occs/{vnfLcmOpOccId}/rollback
|
||||
|
||||
The POST method starts rolling back a VNF lifecycle operation if that operation
|
||||
has experienced a temporary failure, i.e. the related
|
||||
"Individual VNF LCM operation occurrence" resource is in "FAILED_TEMP" state.
|
||||
In case of rolling back an occurrence of the "InstantiateVnf" operation,
|
||||
the VNFM shall request to the VIM the release of the virtualised
|
||||
resources that were allocated for the related VNF instance.
|
||||
The "rollback" task shall be supported by the VNFM for any VNF LCM operation occurrence
|
||||
that represents an "InstantiateVnf" operation in FAILED_TEMP state.
|
||||
|
||||
Response Codes
|
||||
--------------
|
||||
|
||||
.. rest_status_code:: success status.yaml
|
||||
|
||||
- 202
|
||||
|
||||
.. rest_status_code:: error status.yaml
|
||||
|
||||
- 401
|
||||
- 404
|
||||
- 409
|
||||
- 422
|
||||
|
||||
Request Parameters
|
||||
------------------
|
||||
|
||||
.. rest_parameters:: parameters_vnflcm.yaml
|
||||
|
||||
- vnfLcmOpOccId: vnf_lcm_op_occ_id
|
||||
|
||||
Create a new subscription (v2)
|
||||
==============================
|
||||
|
||||
@@ -24,13 +24,10 @@ CLI Reference for VNF Lifecycle Management
|
||||
Commands with **\-\-os-tacker-api-version 2** call version 2 vnflcm APIs.
|
||||
|
||||
.. note::
|
||||
Xena release does not support version 2 vnflcm APIs of
|
||||
scale vnf, heal vnf, change external vnf connectivity,
|
||||
rollback, retry and fail.
|
||||
The version 2 of these APIs will be supported in future releases.
|
||||
Also, in Xena release, version 2 vnflcm APIs of instantiate vnf
|
||||
and terminate vnf only support VNF, not CNF.
|
||||
CNF will be supported by version 2 vnflcm APIs in future releases.
|
||||
In Yoga release, version 2 vnflcm APIs of instantiate vnf,
|
||||
terminate vnf, scale vnf, heal vnf, change external vnf connectivity,
|
||||
rollback, retry and fail only support VNF, not CNF. CNF will be supported
|
||||
by version 2 vnflcm APIs in future releases.
|
||||
|
||||
1. Create VNF Identifier
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
@@ -412,6 +409,8 @@ Help:
|
||||
10. Rollback VNF Lifecycle Management Operation
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The `VNF_LCM_OP_OCC_ID` is the ID for the target lifecycle temporary failed.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ openstack vnflcm op rollback VNF_LCM_OP_OCC_ID
|
||||
@@ -441,7 +440,7 @@ Help:
|
||||
11. Retry
|
||||
^^^^^^^^^
|
||||
|
||||
The `VNF_LCM_OP_OCC_ID` is the ID for the target lifecycle temporary failed.
|
||||
The `VNF_LCM_OP_OCC_ID` is the ID for the target lifecycle temporary failed.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
@@ -474,7 +473,7 @@ Help:
|
||||
12. Fail
|
||||
^^^^^^^^
|
||||
|
||||
The `VNF_LCM_OP_OCC_ID` is the ID for the target lifecycle temporary failed.
|
||||
The `VNF_LCM_OP_OCC_ID` is the ID for the target lifecycle temporary failed.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
|
||||
@@ -4,12 +4,6 @@ ETSI NFV-SOL VNF error-handling
|
||||
|
||||
This document describes how to error-handling VNF in Tacker.
|
||||
|
||||
.. note::
|
||||
Rollback and retry are NOT supported in version 2 vnflcm APIs in Xena yet.
|
||||
So, You should recover it by yourself instead if instantiation is failed via v2 API.
|
||||
The recovering process may include deleting a stack via HEAT API.
|
||||
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
@@ -237,12 +231,56 @@ the **callbackUri** set in 'Create a new subscription'.
|
||||
**vnfLcmOpOccId** included in this 'Notification' corresponds
|
||||
to VNF_LCM_OP_OCC_ID.
|
||||
|
||||
See `Tacker API reference`_. for details on the APIs used here.
|
||||
See `VNF LCM v1 API`_ and `VNF LCM v2 API`_
|
||||
for details on the APIs used here.
|
||||
|
||||
|
||||
Rollback VNF LCM Operation
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. note::
|
||||
Rollback of Scale-Out has a difference in operation result between v1 and v2.
|
||||
In v1, the oldest VNFc(VM) is deleted. In v2, the newest VNFc(VM) is deleted.
|
||||
|
||||
.. list-table::
|
||||
:widths: 10 40 15 15 10 10
|
||||
:header-rows: 1
|
||||
|
||||
* - LCM Operation
|
||||
- Description of Rollback
|
||||
- Precondition
|
||||
- Postcondition
|
||||
- Support in v1
|
||||
- Support in v2
|
||||
* - Instantiate
|
||||
- | VNFM removes all VMs and resources.
|
||||
| e.g. Tacker executes Heat stack-delete for deletion of the target VM.
|
||||
- FAILED_TEMP
|
||||
- ROLLED_BACK or FAILED_TEMP
|
||||
- X
|
||||
- X
|
||||
* - Scale-out
|
||||
- | VNFM reverts changes of VMs and resources specified in the middle of scale-out operation.
|
||||
| There are differences in the operation results of v1 and v2. See note.
|
||||
| e.g. Tacker reverts desired_capacity and executes Heat stack-update.
|
||||
- FAILED_TEMP
|
||||
- ROLLED_BACK or FAILED_TEMP
|
||||
- X
|
||||
- X
|
||||
* - Modify
|
||||
- VNFM reverts the update of the VNF instance information.
|
||||
- FAILED_TEMP
|
||||
- ROLLED_BACK or FAILED_TEMP
|
||||
-
|
||||
- X
|
||||
* - Change external connectivity
|
||||
- | VNFM reverts changes of the external connectivity for VNF instances.
|
||||
| e.g. Tacker reverts stack parameters and executes Heat stack-update.
|
||||
- FAILED_TEMP
|
||||
- ROLLED_BACK or FAILED_TEMP
|
||||
-
|
||||
- X
|
||||
|
||||
This manual describes the following operations as use cases for
|
||||
rollback operations.
|
||||
|
||||
@@ -296,7 +334,54 @@ Result:
|
||||
|
||||
|
||||
Fail VNF LCM Operation
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:widths: 10 40 15 15 10 10
|
||||
:header-rows: 1
|
||||
|
||||
* - LCM Operation
|
||||
- Description of Fail
|
||||
- Precondition
|
||||
- Postcondition
|
||||
- Support in v1
|
||||
- Support in v2
|
||||
* - Instantiate
|
||||
- Tacker simply changes LCM operation state to "FAILED" on Tacker-DB.
|
||||
- FAILED_TEMP
|
||||
- FAILED
|
||||
- X
|
||||
- X
|
||||
* - Terminate
|
||||
- Tacker simply changes LCM operation state to "FAILED" on Tacker-DB.
|
||||
- FAILED_TEMP
|
||||
- FAILED
|
||||
- X
|
||||
- X
|
||||
* - Heal
|
||||
- Tacker simply changes LCM operation state to "FAILED" on Tacker-DB.
|
||||
- FAILED_TEMP
|
||||
- FAILED
|
||||
- X
|
||||
- X
|
||||
* - Scale
|
||||
- Tacker simply changes LCM operation state to "FAILED" on Tacker-DB.
|
||||
- FAILED_TEMP
|
||||
- FAILED
|
||||
- X
|
||||
- X
|
||||
* - Modify
|
||||
- Tacker simply changes LCM operation state to "FAILED" on Tacker-DB.
|
||||
- FAILED_TEMP
|
||||
- FAILED
|
||||
- X
|
||||
- X
|
||||
* - Change external connectivity
|
||||
- Tacker simply changes LCM operation state to "FAILED" on Tacker-DB.
|
||||
- FAILED_TEMP
|
||||
- FAILED
|
||||
- X
|
||||
- X
|
||||
|
||||
This manual describes the following operations as use cases for
|
||||
fail operations.
|
||||
@@ -353,6 +438,53 @@ Result:
|
||||
Retry VNF LCM Operation
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:widths: 10 40 15 15 10 10
|
||||
:header-rows: 1
|
||||
|
||||
* - LCM Operation
|
||||
- Description of Fail
|
||||
- Precondition
|
||||
- Postcondition
|
||||
- Support in v1
|
||||
- Support in v2
|
||||
* - Instantiate
|
||||
- VNFM retries a Instantiate operation.
|
||||
- FAILED_TEMP
|
||||
- COMPLETED or FAILED_TEMP
|
||||
- X
|
||||
- X
|
||||
* - Terminate
|
||||
- VNFM retries a Terminate operation.
|
||||
- FAILED_TEMP
|
||||
- COMPLETED or FAILED_TEMP
|
||||
- X
|
||||
- X
|
||||
* - Heal
|
||||
- VNFM retries a Heal operation.
|
||||
- FAILED_TEMP
|
||||
- COMPLETED or FAILED_TEMP
|
||||
- X
|
||||
- X
|
||||
* - Scale
|
||||
- VNFM retries a Scale operation.
|
||||
- FAILED_TEMP
|
||||
- COMPLETED or FAILED_TEMP
|
||||
- X
|
||||
- X
|
||||
* - Modify
|
||||
- VNFM retries a Modify operation.
|
||||
- FAILED_TEMP
|
||||
- COMPLETED or FAILED_TEMP
|
||||
- X
|
||||
- X
|
||||
* - Change external connectivity
|
||||
- VNFM retries a Change external connectivity operation.
|
||||
- FAILED_TEMP
|
||||
- COMPLETED or FAILED_TEMP
|
||||
- X
|
||||
- X
|
||||
|
||||
This manual describes the following operations as use cases for
|
||||
retry operations.
|
||||
|
||||
@@ -380,6 +512,7 @@ Result:
|
||||
If "Retry VNF lifecycle management operation" is successful,
|
||||
then another LCM can be operational.
|
||||
|
||||
.. _Tacker API reference : https://docs.openstack.org/api-ref/nfv-orchestration/v1/index.html
|
||||
.. _VNF LCM v1 API : https://docs.openstack.org/api-ref/nfv-orchestration/v1/vnflcm.html
|
||||
.. _VNF LCM v2 API : https://docs.openstack.org/api-ref/nfv-orchestration/v2/vnflcm.html
|
||||
.. _Keystone API reference : https://docs.openstack.org/api-ref/identity/v3/#password-authentication-with-scoped-authorization
|
||||
|
||||
|
||||
Reference in New Issue
Block a user