Add change vnf flavour biz
[vfc/gvnfm/vnflcm.git] / lcm / lcm / nf / const.py
index 47097d5..e61c5a2 100644 (file)
 # limitations under the License.
 import json
 
+from lcm.pub.config import config
 from lcm.pub.utils.jobutil import enum
 
-VNF_STATUS = enum(NULL='null', INSTANTIATING="instantiating", INACTIVE='inactive', ACTIVE="active",
-                  FAILED="failed", TERMINATING="terminating", SCALING="scaling", OPERATING="operating",
-                  UPDATING="updating", HEALING="healing")
+HEAL_ACTION_TYPE = enum(
+    START="vmCreate",
+    RESTART="vmReset"
+)
+
+ACTION_TYPE = enum(
+    START=1,
+    STOP=2,
+    REBOOT=3
+)
+
+GRANT_TYPE = enum(
+    INSTANTIATE="INSTANTIATE",
+    TERMINATE="TERMINATE",
+    HEAL_CREATE="Heal Create",
+    HEAL_RESTART="Heal Restart",
+    SCALE_IN="SCALE_IN",
+    SCALE_OUT="SCALE_OUT",
+    CHANGE_FLAVOUR="CHANGE_FLAVOUR",
+    OPERATE="OPERATE",
+    CHANGE_CONNECTIVITY="CHANGE_CONNECTIVITY",
+)
+
+VNF_STATUS = enum(
+    NULL='null',
+    INSTANTIATING="instantiating",
+    INACTIVE='inactive',
+    ACTIVE="active",
+    FAILED="failed",
+    TERMINATING="terminating",
+    SCALING="scaling",
+    OPERATING="operating",
+    UPDATING="updating",
+    HEALING="healing"
+)
+
+OPERATION_TYPE = enum(
+    INSTANTIATE="INSTANTIATE",
+    SCALE="SCALE",
+    SCALE_TO_LEVEL="SCALE_TO_LEVEL",
+    CHANGE_FLAVOUR="CHANGE_FLAVOUR",
+    TERMINATE="TERMINATE",
+    HEAL="HEAL",
+    OPERATE="OPERATE",
+    CHANGE_EXT_CONN="CHANGE_EXT_CONN",
+    MODIFY_INFO="MODIFY_INFO"
+)
+
+INSTANTIATION_STATE = enum(
+    NOT_INSTANTIATED="NOT_INSTANTIATED",
+    INSTANTIATED="INSTANTIATED"
+)
+
+LCM_NOTIFICATION_STATUS = enum(START="START", RESULT="RESULT")
+
+OPERATION_STATE_TYPE = enum(
+    STARTING="STARTING",
+    PROCESSING="PROCESSING",
+    COMPLETED="COMPLETED",
+    FAILED_TEMP="FAILED_TEMP",
+    FAILED="FAILED",
+    ROLLING_BACK="ROLLING_BACK",
+    ROLLED_BACK="ROLLED_BACK"
+)
+
+RESULT_RANGE = (
+    OPERATION_STATE_TYPE.COMPLETED,
+    OPERATION_STATE_TYPE.FAILED_TEMP,
+    OPERATION_STATE_TYPE.FAILED,
+    OPERATION_STATE_TYPE.ROLLED_BACK
+)
+
+RUNNING_RANGE = (
+    OPERATION_STATE_TYPE.STARTING,
+    OPERATION_STATE_TYPE.PROCESSING,
+    OPERATION_STATE_TYPE.ROLLING_BACK
+)
+
+FINAL_STATE_RANGE = (
+    OPERATION_STATE_TYPE.COMPLETED,
+    OPERATION_STATE_TYPE.FAILED,
+    OPERATION_STATE_TYPE.ROLLED_BACK
+)
+
+CHANGE_TYPE = enum(
+    ADDED='ADDED',
+    REMOVED='REMOVED',
+    MODIFIED='MODIFIED',
+    TEMPORARY='TEMPORARY',
+    LINK_PORT_ADDED='LINK_PORT_ADDED',
+    LINK_PORT_REMOVED='LINK_PORT_REMOVED'
+)
 
 RESOURCE_MAP = {'Storage': 'volumn', 'Network': 'network', 'SubNetwork': 'subnet', 'Port': 'port',
                 'Flavour': 'flavor', 'Vm': 'vm'}
 
+URL_PREFIX = "http://%s:%s/api/vnflcm/v1" % (config.MSB_SERVICE_IP, config.MSB_SERVICE_PORT)
+
+ROOT_URI = "api/vnflcm/v1/subscriptions/"
+
+AUTH_TYPES = ["BASIC", "OAUTH2_CLIENT_CREDENTIALS", "TLS_CERT"]
+
+BASIC = "BASIC"
+
+OAUTH2_CLIENT_CREDENTIALS = "OAUTH2_CLIENT_CREDENTIALS"
+
+LCCNNOTIFICATION = "VnfLcmOperationOccurrenceNotification"
+
+NOTIFICATION_TYPES = [
+    "VnfLcmOperationOccurrenceNotification",
+    "VnfIdentifierCreationNotification",
+    "VnfIdentifierDeletionNotification"
+]
+
+LCM_OPERATION_TYPES = [
+    OPERATION_TYPE.INSTANTIATE,
+    OPERATION_TYPE.SCALE,
+    OPERATION_TYPE.SCALE_TO_LEVEL,
+    OPERATION_TYPE.CHANGE_FLAVOUR,
+    OPERATION_TYPE.TERMINATE,
+    OPERATION_TYPE.HEAL,
+    OPERATION_TYPE.OPERATE,
+    OPERATION_TYPE.CHANGE_EXT_CONN,
+    OPERATION_TYPE.MODIFY_INFO
+]
+
+LCM_OPERATION_STATE_TYPES = [
+    OPERATION_STATE_TYPE.STARTING,
+    OPERATION_STATE_TYPE.PROCESSING,
+    OPERATION_STATE_TYPE.COMPLETED,
+    OPERATION_STATE_TYPE.FAILED_TEMP,
+    OPERATION_STATE_TYPE.FAILED,
+    OPERATION_STATE_TYPE.ROLLING_BACK,
+    OPERATION_STATE_TYPE.ROLLED_BACK
+]
+
+
 inst_req_data = {
     "flavourId": "flavour_1",
     "instantiationLevelId": "instantiationLevel_1",
@@ -172,9 +303,9 @@ vnfd_model_dict = {
                 "local_storage_id1",
                 "local_storage_id2"
             ],
-            "volume_storages": [
+            "virtual_storages": [
                 {
-                    "volume_storage_id": "volume_storage1",
+                    "virtual_storage_id": "volume_storage1",
                     "location": "/usr/data",
                     "device": "/dev/hda1"
                 }
@@ -257,13 +388,6 @@ vnfd_model_dict = {
                 }
             },
             "artifacts": [
-                {
-                    "artifact_name": "software_version_file",
-                    "type": "tosca.artifacts.Deployment",
-                    "file": "AppSoftwares/zte-cn-xgw-V5.16.11_NFV-version.zip",
-                    "repository": "",
-                    "deploy_path": ""
-                }
             ]
         }
     ],
@@ -272,7 +396,7 @@ vnfd_model_dict = {
             "volume_storage_id": "volume_storage1",
             "description": "",
             "properties": {
-                "size": "100 GB",
+                "size": "\"100 GB\"",
                 "volume_id": "",
                 "volume_name": "volumeStorage1",
                 "custom_volume_type": "type1",
@@ -422,11 +546,20 @@ c1_data_get_tenant_id = {
     "tenants": [
         {
             "id": "1",
-            "name": "tenantname_1"
+            "name": "chinamobile"
+        }
+    ]
+}
+c1_data_get_tenant_id_1 = {
+    "tenants": [
+        {
+            "id": "1",
+            "name": "tenantname"
         }
     ]
 }
 
+
 # create_volume
 c2_data_create_volume = {
     "id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31",
@@ -476,7 +609,7 @@ c4_data_create_network = {
     "vlanTransparent": True,
     "networkType": "vlan",
     "segmentationId": 202,
-    "physicalNetwork": "ctrl",
+    "physicalNetwork": "physnet1",
     "routerExternal": False
 }
 
@@ -520,7 +653,7 @@ c6_data_create_port = {
     "subnetName": "subnet1",
     "macAddress": "212.12.61.23",
     "ip": "10.43.38.11",
-    "vnicType": "normal",
+    "vnicType": "direct",
     "securityGroups": ""
 }
 
@@ -586,7 +719,149 @@ c10_data_get_vm = {
 }
 
 vnfdModel = {
-    "volume_storages": [],
+    "volume_storages": [
+        {
+            "volume_storage_id": "test",
+            "properties": {
+                "location_info": {
+                    "vimid": "vim_1",
+                    "tenant": "chinamobile",
+                    "availability_zone": "test",
+                },
+                "volume_name": "test",
+                "custom_volume_type": "test",
+                "size_of_storage": "\"10 GB\"",
+            },
+            "image_file": "test",
+        },
+    ],
+    "vls": [
+        {
+            "vl_id": "test",
+            "properties": {
+                "location_info": {
+                    "vimid": "test",
+                    "tenant": "chinamobile",
+                },
+                "vl_profile": {
+                    "networkName": "test",
+                    "networkType": "test",
+                    "physicalNetwork": "test",
+                    "vlanTransparent": "test",
+                    "segmentationId": "1",
+                    "cidr": "test",
+                    "dhcpEnabled": "test",
+                    "gatewayIp": "test",
+                    "startIp": "test",
+                    "endIp": "test",
+                },
+                "connectivity_type": {
+                    "layer_protocol": "ipv4",
+                },
+                "dns_nameservers": "test",
+                "host_routes": "test",
+            },
+            "route_external": "test",
+        }
+    ],
+    "cps": [
+        {
+            "vdu_id": "test",
+            "cp_id": "cp1",
+            "networkId": "",  # TODO
+            "subnetId": "",  # TODO
+            "vl_id": "test",
+            "properties": {
+                "name": "test",
+                "mac_address": "test",
+                "protocol_data": [
+                    {
+                        "address_data": {
+                            "l3_address_data": {
+                                "fixed_ip_address": "test"
+                            },
+                        },
+                    },
+                ],
+                "vnic_type": "direct",
+                "role": "root",
+                "virtual_network_interface_requirements": [
+                    {
+                        "network_interface_requirements": {
+                            "interfaceType": '{"schemaVersion": "0", "schemaLocation":"", "platformId": "generic", "mandatory": false, "configurationValue": "SR-IOV"}'
+                        },
+                        "support_mandatory": False,
+                        "name": "SRIOV_Port",
+                        "description": "sriov"
+                    }
+                ]
+            }
+        }
+    ],
+    "vdus": [
+        {
+            "vdu_id": "test",
+            "properties": {
+                "location_info": {
+                    "vimid": "test",
+                    "tenant": "chinamobile",
+                    "availability_zone": "test",
+                    "vnfId": "",
+                    "vnfName": "",
+                    "cloudOwner": "",
+                    "cloudRegionId": "",
+                    "vduInfo": [
+                        {
+                            "vduName": "VDU_vbng_0",
+                            "flavorId": "12345",
+                            "directive": ""
+                        }
+                    ]
+                },
+                "name": "test",
+                "inject_files": [],
+                "user_data": "test",
+                "meta_data": {},
+            },
+            "cps": [],
+            "type": "tosca.nodes.nfv.Vdu.Compute",
+            "virtual_compute": {
+                "virtual_cpu": {
+                    "num_virtual_cpu": "16",
+                },
+                "virtual_memory": {
+                    "virtual_mem_size": "8000 MB",
+                    "vdu_memory_requirements": {
+                        "memoryPageSize": "8 MB",
+                    },
+                },
+            },
+            "virtual_storages": [{
+                "virtual_storage_id": "test",
+                "type_of_storage": "ephemeral",
+                "size_of_storage": "10 GB",
+            }],
+            "type": "tosca.nodes.nfv.Vdu.Compute",
+            "artifacts": [
+                {
+                    "artifact_name": "sw_image",
+                    "file": "sss.vmdk",
+                },
+            ],
+            "volume_storages": [
+                {
+                    "volume_storage_id": "test",
+                }
+            ],
+        },
+    ],
+    "image_files": [],
+    "routers": [],
+    "local_storages": [],
+    "vnf_exposed": {
+        "external_cps": [],
+        "forward_cps": []
+    },
     "inputs": {
         "pe1_id": {
             "type": "string",
@@ -649,16 +924,6 @@ vnfdModel = {
             "description": "Nameofunderlayervpn"
         }
     },
-    "vdus": [],
-    "image_files": [],
-    "routers": [],
-    "local_storages": [],
-    "vnf_exposed": {
-        "external_cps": [],
-        "forward_cps": []
-    },
-    "vls": [],
-    "cps": [],
     "metadata": {
         "designer": "sdno",
         "name": "underlayervpn",