Cloud configuration¶
Create a complex¶
from onapsdk.aai.cloud_infrastructure import Complex
cmplx = Complex.create(
physical_location_id=COMPLEX_PHYSICAL_LOCATION_ID,
data_center_code=COMPLEX_DATA_CENTER_CODE,
name=COMPLEX_PHYSICAL_LOCATION_ID
)
Create cloud region¶
from onapsdk.aai.cloud_infrastructure import CloudRegion
cloud_region = CloudRegion.create(
cloud_owner=CLOUD_OWNER,
cloud_region_id=CLOUD_REGION,
orchestration_disabled=False,
in_maint=False,
cloud_type=CLOUD_TYPE,
cloud_region_version=CLOUD_REGION_VERSION
)
Link cloud region to complex¶
from onapsdk.aai.cloud_infrastructure import CloudRegion, Complex
# We assume that complex has been already created
cmplx = Complex(
physical_location_id=COMPLEX_PHYSICAL_LOCATION_ID,
name=COMPLEX_PHYSICAL_LOCATION_ID
)
cloud_region = CloudRegion.create(
cloud_owner=CLOUD_OWNER,
cloud_region_id=CLOUD_REGION,
orchestration_disabled=False,
in_maint=False,
cloud_type=CLOUD_TYPE,
cloud_region_version=CLOUD_REGION_VERSION
)
cloud_region.link_to_complex(cmplx)
Add ESR Info to cloud region¶
from uuid import uuid4
from onapsdk.aai.cloud_infrastructure import CloudRegion
# We assume that cloud region has been already created
cloud_region = CloudRegion.get_by_id(
cloud_owner=CLOUD_OWNER,
cloud_region_id=CLOUD_REGION
)
cloud_region.add_esr_system_info(
esr_system_info_id=str(uuid4()),
user_name=VIM_USERNAME,
password=VIM_PASSWORD,
system_type=CLOUD_TYPE,
service_url=VIM_SERVICE_URL,
cloud_domain=CLOUD_DOMAIN
)
Register cloud to MultiCloud¶
from uuid import uuid4
from onapsdk.aai.cloud_infrastructure import CloudRegion
# We assume that cloud region has been already created
cloud_region = CloudRegion.get_by_id(
cloud_owner=CLOUD_OWNER,
cloud_region_id=CLOUD_REGION
)
cloud_region.add_esr_system_info(
esr_system_info_id=str(uuid4()),
user_name=VIM_USERNAME,
password=VIM_PASSWORD,
system_type=CLOUD_TYPE,
service_url=VIM_SERVICE_URL,
cloud_domain=CLOUD_DOMAIN
)
cloud_region.register_to_multicloud()
Get cloud region tenant¶
# We assume that cloud region has been already created
# and connected to multicloud
from onapsdk.aai.cloud_infrastructure import CloudRegion
cloud_region = CloudRegion.get_by_id(
cloud_owner=CLOUD_OWNER,
cloud_region_id=CLOUD_REGION
)
try:
tenant = next(cloud_region.tenant)
except StopIteration
# No Tenant found in cloud region
Create customer¶
from onapsdk.aai.business import Customer
customer = Customer.create(GLOBAL_CUSTOMER_ID, GLOBAL_CUSTOMER_ID, "INFRA")
Create customer service subscription¶
# We assume here that the service has been already onboarded
# and customer created
from onapsdk.aai.business import Customer
customer = Customer.get_by_global_customer_id(GLOBAL_CUSTOMER_ID)
customer.subscribe_service("service_type")
# Service subscriptions can be also created during Customer
# creation
from onapsdk.aai.business import Customer
customer = Customer.create(GLOBAL_CUSTOMER_ID, GLOBAL_CUSTOMER_ID, "INFRA", service_subscriptions=["service_type"])
Connect service subscription to cloud region and tenant¶
# We assume here that the service subscription has been already created
# and cloud region has a tenant
from onapsdk.aai.business import Customer
from onapsdk.aai.cloud_infrastructure import CloudRegion, Tenant
customer = Customer.get_by_global_customer_id(GLOBAL_CUSTOMER_ID)
service_subscription = next(customer.service_subscriptions)
cloud_region = CloudRegion.get_by_id(
cloud_owner=CLOUD_OWNER,
cloud_region_id=CLOUD_REGION
)
tenant = next(cloud_region.tenants)
service_subscription.link_to_cloud_region_and_tenant(cloud_region, tenant)
Add Cloud SIte entry to SO Catalog DB¶
from onapsdk.so.so_db_adapter import IdentityService, SoDbAdapter
identity_service = IdentityService(identity_id="mc_test_identity_1_KEYSTONE",
url="http://test:5000/v3",
mso_id="test_user",
mso_pass="test_password_encrypted",
roject_domain_name="Default",
user_domain_name="Default",
identity_server_type="KEYSTONE_V3")
response = SoDbAdapter.add_cloud_site(cloud_region_id="test_region_1",
complex_id="test_clli_1",
identity_service=identity_service,
orchestrator="NULL")
Use A&AI bulk API (experimental)¶
from onapsdk.aai.bulk import AaiBulk, AaiBulkRequest
from onapsdk.aai.cloud_infrastructure.cloud_region import CloudRegion
from onapsdk.utils.jinja import jinja_env
for resp in AaiBulk.single_transaction(
[
AaiBulkRequest(
action="put",
uri=f"/cloud-infrastructure/cloud-regions/cloud-region/aai_bulk_test_cloud_owner_1/aai_bulk_test_cloud_region_id_1",
body=jinja_env().get_template("cloud_region_create.json.j2").render(cloud_region=CloudRegion(
cloud_owner="aai_bulk_test_cloud_owner_1",
cloud_region_id="aai_bulk_test_cloud_region_id_1",
orchestration_disabled=False,
in_maint=False
))
),
AaiBulkRequest(
action="put",
uri=f"/cloud-infrastructure/cloud-regions/cloud-region/aai_bulk_test_cloud_owner_2/aai_bulk_test_cloud_region_id_2",
body=jinja_env().get_template("cloud_region_create.json.j2").render(cloud_region=CloudRegion(
cloud_owner="aai_bulk_test_cloud_owner_2",
cloud_region_id="aai_bulk_test_cloud_region_id_2",
orchestration_disabled=False,
in_maint=False
))
)
]
):
print(resp)