aboutsummaryrefslogtreecommitdiffstats
path: root/docs/usage/usage/instantiation.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/usage/usage/instantiation.rst')
-rw-r--r--docs/usage/usage/instantiation.rst485
1 files changed, 0 insertions, 485 deletions
diff --git a/docs/usage/usage/instantiation.rst b/docs/usage/usage/instantiation.rst
deleted file mode 100644
index dac0500..0000000
--- a/docs/usage/usage/instantiation.rst
+++ /dev/null
@@ -1,485 +0,0 @@
-Instantiation
-#############
-
-Create business objects
------------------------
-
-.. code:: Python
-
- from onapsdk.vid import LineOfBusiness, OwningEntity, Platform, Project
-
- vid_owning_entity = OwningEntity.create(OWNING_ENTITY)
- vid_project = Project.create(PROJECT)
- vid_platform = Platform.create(PLATFORM)
- vid_line_of_business = LineOfBusiness.create(LINE_OF_BUSINESS)
-
-Instantiate a service (ALaCarte)
---------------------------------
-
-.. code:: Python
-
- import time
- from onapsdk.aai.cloud_infrastructure import CloudRegion, Tenant
- from onapsdk.aai.business import Customer
- from onapsdk.service import Service
- from onapsdk.vid import LineOfBusiness, OwningEntity, Platform, Project
- from onapsdk.so.instantiation import ServiceInstantiation
-
- # We assume that:
- # - service is onboarded,
- # - cloud region, customer, owning_entity and project have been already created,
- # - cloud region has at least one tenant
- # - customer has service subscription
- # - service subscription is connected with cloud region and tenant
- SERVICE_INSTANCE_NAME = "vFW-AlaCarte-1"
-
- service = Service(name="myService")
- customer = Customer.get_by_global_customer_id(GLOBAL_CUSTOMER_ID)
- cloud_region = CloudRegion.get_by_id(
- cloud_owner=CLOUD_OWNER,
- cloud_region_id=CLOUD_REGION
- )
- tenant = next(cloud_region.tenants)
- vid_owning_entity = OwningEntity(OWNING_ENTITY)
- owning_entity = AaiOwningEntity.get_by_owning_entity_name(OWNING_ENTITY)
- vid_project = Project(PROJECT)
-
- service_instantiation = ServiceInstantiation.instantiate_so_ala_carte(
- service,
- cloud_region,
- tenant,
- customer,
- owning_entity,
- vid_project,
- service_instance_name=SERVICE_INSTANCE_NAME
- )
- service_instantiation.wait_for_finish():
- print("Success")
- else:
- print("Instantiation failed, check logs")
-
-Instantiate a service (Macro)
------------------------------
-
-.. code:: Python
-
- import time
- from onapsdk.aai.cloud_infrastructure import CloudRegion, Tenant
- from onapsdk.aai.business import Customer
- from onapsdk.service import Service
- from onapsdk.vid import LineOfBusiness, OwningEntity, Platform, Project
- from onapsdk.so.instantiation import (
- ServiceInstantiation,
- VnfInstantiation,
- InstantiationParameter,
- VnfParameters,
- VfmoduleParameters
- )
-
- ...
- VSPNAME = "vfwcds_VS"
- VFNAME = "vfwcds_VF"
- ...
- vf = Vf(name=VFNAME)
- ...
-
- # We assume that:
- # - service is onboarded,
- # - cloud region, customer, owning_entity and project have been already created,
- # - cloud region has at least one tenant
- # - customer has service subscription
- # - service subscription is connected with cloud region and tenant
- SERVICE_INSTANCE_NAME = "vFW-Macro-1"
-
- service = Service(name="myMacroService")
- customer = Customer.get_by_global_customer_id(GLOBAL_CUSTOMER_ID)
- cloud_region = CloudRegion.get_by_id(
- cloud_owner=CLOUD_OWNER,
- cloud_region_id=CLOUD_REGION
- )
- tenant = next(cloud_region.tenants)
- vid_owning_entity = OwningEntity(OWNING_ENTITY)
- owning_entity = AaiOwningEntity.get_by_owning_entity_name(OWNING_ENTITY)
- vid_project = Project(PROJECT)
-
- ###########################################################################
- ######## VFModule parameters ##############################################
- ###########################################################################
- vfm_base=[
- InstantiationParameter(name="sec_group", value=TENANT_SEC_GROUP),
- InstantiationParameter(name="public_net_id", value=PUBLIC_NET)
- ]
-
- vfm_vsn=[
- InstantiationParameter(name="sec_group", value=TENANT_SEC_GROUP),
- InstantiationParameter(name="public_net_id", value=PUBLIC_NET)
- ]
-
- vfm_vfw=[
- InstantiationParameter(name="sec_group", value=TENANT_SEC_GROUP),
- InstantiationParameter(name="public_net_id", value=PUBLIC_NET)
- ]
-
- vfm_vpkg=[
- InstantiationParameter(name="sec_group", value=TENANT_SEC_GROUP),
- InstantiationParameter(name="public_net_id", value=PUBLIC_NET)
- ]
-
- base_paras=VfmoduleParameters("base_template",vfm_base)
- vpkg_paras=VfmoduleParameters("vpkg",vfm_vpkg)
- vsn_paras=VfmoduleParameters("vsn",vfm_vsn)
- vfw_paras=VfmoduleParameters("vfw",vfm_vfw)
-
- ###########################################################################
- ######## VNF parameters ###################################################
- ###########################################################################
-
- vnf_vfw=[
- InstantiationParameter(name="onap_private_net_id", value=ONAP_PRIVATE_NET),
- InstantiationParameter(name="onap_private_subnet_id", value=ONAP_PRIVATE_SUBNET),
- InstantiationParameter(name="pub_key", value="ssh-rsa AAAAB3NzaC1yc2EAA\
- AADAQABAAABAQDFBOB1Ea2yej68aqIQw10kEsVf+rNoxT39qrV8JvvTK2yhkniQka1t2oD9h6DlXOL\
- M3HJ6nBegWjOasJmIbminKZ6wvmxZrDVFJXp9Sn1gni0vtEnlDgH14shRUrFDYO0PYjXRHoj7QXZMY\
- xtAdFSbzGuCsaTLcV/xchLBQmqZ4AGhMIiYMfJJF+Ygy0lbgcVmT+8DH7kUUt8SAdh2rRsYFwpKANn\
- QJyPV1dBNuTcD0OW1hEOhXnwqH28tjfb7uHJzTyGZlTmwTs544teTNz5B9L4yT3XiCAlMcaLOBMfBT\
- KRIse+NkiTb+tc60JNnEYR6MqZoqTea/w+YBQaIMcil"),
- InstantiationParameter(name="image_name", value=IMAGE_NAME),
- InstantiationParameter(name="flavor_name", value=FLAVOR_NAME),
- InstantiationParameter(name="sec_group", value=TENANT_SEC_GROUP),
- InstantiationParameter(name="install_script_version", value="1.4.0-SNAPSHOT"),
- InstantiationParameter(name="demo_artifacts_version", value="1.4.0-SNAPSHOT"),
- InstantiationParameter(name="cloud_env", value=CLOUD_TYPE),
- InstantiationParameter(name="public_net_id", value=PUBLIC_NET),
- InstantiationParameter(name="aic-cloud-region", value=CLOUD_REGION)
- ]
-
- vnf_paras=VnfParameters("vfwcds_VF", vnf_vfw,
- [base_paras, vpkg_paras, vsn_paras, vfw_paras])
-
- # You must define for each VNF and its vFModule the parameters,
- # otherwise they stay empty.
- # The matching critera are:
- # - VnfParameters.name must match VNF ModelInstanceName
- # (see above "vfwcds_VF")
- # - VfmoduleParameters.name must match substring in vfModule "instanceName"
- # (e.g. "vfwcds_vf0..VfwcdsVf..vsn..module-1")
-
- service_instantiation = ServiceInstantiation.instantiate_macro(
- service,
- cloud_region,
- tenant,
- customer,
- owning_entity,
- vid_project,
- vid_line_of_business,
- vid_platform,
- service_instance_name=SERVICE_INSTANCE_NAME,
- vnf_parameters=[vnf_paras]
- )
-
- service_instantiation.wait_for_finish():
- print("Success")
- else:
- print("Instantiation failed, check logs")
-
-Instantiate a service using SO service template (Macro)
--------------------------------------------------------
-
-To provide more control on the SO macro instantiation, you can define your service as follows:
-
-.. code:: Yaml
-
- myservice:
- subscription_service_type: myservice
- vnfs:
- - model_name: myvfmodel
- instance_name: myfirstvnf
- parameters:
- param1: value1
- processing_priority: 1
- vf_modules:
- - instance_name: mysecondvfm
- model_name: base
- processing_priority: 2
- parameters:
- param-vfm1: value-vfm1
- - instance_name: myfirstvfm
- model_name: base
- processing_priority: 1
- parameters:
- param-vfm1: value-vfm1
- - model_name: myvfmodel
- instance_name: mysecondvnf
- parameters:
- param1: value1
- processing_priority: 2
- vf_modules:
- - instance_name: myfirstvfm
- model_name: base
- processing_priority: 1
- parameters:
- param-vfm1: value-vfm1
- - instance_name: mysecondvfm
- model_name: base
- processing_priority: 2
- parameters:
- param-vfm1: value-vfm1
-
-.. code:: Python
-
- from onapsdk.aai.business import Customer, OwningEntity, Project, LineOfBusiness, Platform
- from onapsdk.aai.cloud_infrastructure import CloudRegion
- from onapsdk.sdc.service import Service
- from onapsdk.so.instantiation import ServiceInstantiation
- from yaml import load
-
- so_yaml_service = "/path/to/yaml/service"
- with open(so_yaml_service, "r") as yaml_template:
- so_service_data = load(yaml_template)
-
- # We assume that:
- # - service is onboarded,
- # - cloud region, customer, owning_entity and project have been already created,
- # - cloud region has at least one tenant
- # - customer has service subscription
- # - service subscription is connected with cloud region and tenant
-
- service = Service(next(iter(so_service_data.keys())))
- so_service = SoService.load(so_service_data[service.name])
- SERVICE_INSTANCE_NAME = "my_svc_instance_name"
-
- customer = Customer.get_by_global_customer_id(GLOBAL_CUSTOMER_ID)
- cloud_region = CloudRegion.get_by_id(
- cloud_owner=CLOUD_OWNER,
- cloud_region_id=CLOUD_REGION
- )
- tenant = next(cloud_region.tenants)
- owning_entity = OwningEntity(OWNING_ENTITY)
- project = Project(PROJECT)
- line_of_business = LineOfBusiness(LINE_OF_BUSINESS)
- platform = Platform(PLATFORM)
-
- service_instantiation = ServiceInstantiation.instantiate_macro(
- sdc_service=service,
- customer=customer,
- owning_entity=owning_entity,
- project=project,
- line_of_business=line_of_business,
- platform=platform,
- cloud_region=cloud_region,
- tenant=tenant,
- service_instance_name=SERVICE_INSTANCE_NAME,
- so_service=so_service
- )
-
-
-Instantiate VNF (Macro)
------------------------
-
-Since ONAP Istanbul the creation or deletion of VNFs in macro mode is supported. Examples below:
-
-.. code:: Python
-
- import time
- from onapsdk.aai.business import Customer
- from onapsdk.vid import LineOfBusiness, Platform
-
- # We assume that
- # - service has been already instantiated,
- # - line of business and platform are created
-
- SERVICE_INSTANCE_NAME = "service_instance_demo"
- VNF_INSTANCE_NAME = "new_vnf_instance"
-
- customer = Customer.get_by_global_customer_id(GLOBAL_CUSTOMER_ID)
- service_subscription = next(customer.service_subscriptions)
- service_instance = service_subscription.get_service_instance_by_name(SERVICE_INSTANCE_NAME)
- vnf = service_subscription.sdc_service.vnfs[0]
- vid_line_of_business = LineOfBusiness.create(LINE_OF_BUSINESS)
- vid_platform = Platform.create(PLATFORM)
-
- ###########################################################################
- ######## VFModule parameters ##############################################
- ###########################################################################
-
- myfirstvfm_params = [
- InstantiationParameter(name="param-vfm1", value="value-vfm1")
- ]
-
- vf1_params = VfmoduleParameters("myfirstvfm", myfirstvfm_params)
-
- ###########################################################################
- ######## VNF parameters ###################################################
- ###########################################################################
-
- vnf_param_list = [
- InstantiationParameter(name="param1", value="value1")
- ]
-
- vnf_paras = VnfParameters("myvfmodel", vnf_param_list, [vf1_params])
-
- vnf_instantiation = service_instance.add_vnf(
- vnf=vnf,
- line_of_business=vid_line_of_business,
- platform=vid_platform,
- vnf_instance_name=VNF_INSTANCE_NAME,
- vnf_parameters=[vnf_paras],
- a_la_carte=False
- )
-
- vnf_instantiation.wait_for_finish():
- print("Success")
- else:
- print("Instantiation failed, check logs")
-
-
-Instantiate VNF using SO service template (Macro)
--------------------------------------------------
-
-To provide more control on the SO macro instantiation for new vnf, you can define your vnf as follows:
-
-.. code:: Yaml
-
- model_name: myvfmodel
- instance_name: mynewvnf
- parameters:
- param1: value1
- vf_modules:
- - instance_name: mysecondvfm
- model_name: base
- processing_priority: 2
- parameters:
- param-vfm1: value-vfm1
- - instance_name: myfirstvfm
- model_name: base
- processing_priority: 1
- parameters:
- param-vfm1: value-vfm1
-
-.. code:: Python
-
- import time
- from onapsdk.aai.business import Customer
- from onapsdk.vid import LineOfBusiness, Platform
-
- SERVICE_INSTANCE_NAME = "service_instance_demo"
- VNF_INSTANCE_NAME = "new_vnf_instance"
-
- # We assume that
- # - service has been already instantiated,
- # - line of business and platform are created
-
- customer = Customer.get_by_global_customer_id(GLOBAL_CUSTOMER_ID)
- service_subscription = next(customer.service_subscriptions)
- service_instance = service_subscription.get_service_instance_by_name(SERVICE_INSTANCE_NAME)
- vnf = service_subscription.sdc_service.vnfs[0]
- vid_line_of_business = LineOfBusiness.create(LINE_OF_BUSINESS)
- vid_platform = Platform.create(PLATFORM)
-
- so_yaml_vnf = "/path/to/yaml/vnf"
- with open(so_yaml_vnf, "r") as yaml_template:
- so_vnf_data = load(yaml_template)
-
- so_vnf = SoServiceVnf.load(so_vnf_data)
-
- vnf_instantiation = service_instance.add_vnf(
- vnf=vnf,
- line_of_business=vid_line_of_business,
- platform=vid_platform,
- vnf_instance_name=VNF_INSTANCE_NAME,
- so_vnfs=so_vnfs,
- a_la_carte=False
- )
-
- vnf_instantiation.wait_for_finish():
- print("Success")
- else:
- print("Instantiation failed, check logs")
-
-
-Instantiate VNF (ALaCarte)
---------------------------
-
-.. code:: Python
-
- import time
- from onapsdk.aai.business import Customer
- from onapsdk.vid import LineOfBusiness, Platform
-
- # We assume that
- # - service has been already instantiated,
- # - line of business and platform are created
-
- customer = Customer.get_by_global_customer_id(GLOBAL_CUSTOMER_ID)
- service_subscription = next(customer.service_subscriptions)
- service_instance = service_subscription.get_service_instance_by_name(SERVICE_INSTANCE_NAME)
- vnf = service_subscription.sdc_service.vnfs[0]
- vid_line_of_business = LineOfBusiness.create(LINE_OF_BUSINESS)
- vid_platform = Platform.create(PLATFORM)
- vnf_instantiation = service_instance.add_vnf(vnf, vid_line_of_business, vid_platform)
- vnf_instantiation.wait_for_finish():
- print("Success")
- else:
- print("Instantiation failed, check logs")
-
-Instantiate Vf module (ALaCarte)
---------------------------------
-
-.. code:: Python
-
- import time
- from onapsdk.aai.business import Customer
-
- customer = Customer.get_by_global_customer_id(GLOBAL_CUSTOMER_ID)
- service_subscription = next(customer.service_subscriptions)
- service_instance = service_subscription.get_service_instance_by_name(SERVICE_INSTANCE_NAME)
- vnf_instance = next(service_instance.vnf_instances)
- vf_module = vnf_instance.vnf.vf_module
- vf_module_instantiation = vnf_instance.add_vf_module(
- vf_module,
- vnf_parameters=[
- VnfParameter(name="parameter1", value="parameter1_value"),
- VnfParameter(name="parameter2", value="parameter2_value
- ]
- )
- vf_module_instantiation.wait_for_finish():
- print("Success")
- else:
- print("Instantiation failed, check logs")
-
-Instantiate Vl module (ALaCarte)
---------------------------------
-
-.. code:: Python
-
- import time
- from onapsdk.aai.business import Customer
- from onapsdk.vid import LineOfBusiness, Platform
-
- # We assume that
- # - service has been already instantiated,
- # - line of business and platform are created
-
- customer = Customer.get_by_global_customer_id(GLOBAL_CUSTOMER_ID)
- service_subscription = next(customer.service_subscriptions)
- service_instance = service_subscription.get_service_instance_by_name(SERVICE_INSTANCE_NAME)
-
- logger.info("******** Get 1st Network in Service Model *******")
- network = service_subscription.sdc_service.networks[0]
-
- logger.info("******** Create Network *******")
- sn=Subnet(name="my_subnet",
- start_address="10.0.0.1",
- cidr_mask="24",
- gateway_address="10.0.0.1)
-
- vid_line_of_business = LineOfBusiness.create(LINE_OF_BUSINESS)
- vid_platform = Platform.create(PLATFORM)
-
- network_instantiation = service_instance.add_network(network, vid_line_of_business,
- vid_platform, network_instance_name="my_net", subnets=[sn])
-
- if network_instantiation.wait_for_finish():
- print("Success")
- else:
- print("Instantiation failed, check logs")