def cleanup(self) -> None: """Cleanup K8S profiles. """ self._logger.info("Clean the k8s profile") for vnf_instance in self._service_instance.vnf_instances: # possible to have several modules for 1 VNF for vf_module in vnf_instance.vnf.vf_modules: # Retrieve resource bundle definition (rbdef) corresponding to vf module rbdef_name = vf_module.metadata["vfModuleModelInvariantUUID"] rbdef_version = vf_module.metadata["vfModuleModelUUID"] rbdef = Definition.get_definition_by_name_version( rbdef_name, rbdef_version) # Get k8s profile name from yaml service template vnf_parameters = self.get_vnf_parameters(vnf_instance.vnf.name) k8s_profile_name = "" for param in vnf_parameters: if param.name == "k8s-rb-profile-name": k8s_profile_name = param.value if k8s_profile_name == "": self._logger.error( "K8s profile deletion failed, missing rb profile name") raise onap_test_exceptions.ProfileInformationException ######## Delete profile for Definition ################################### try: profile = rbdef.get_profile_by_name(k8s_profile_name) profile.delete() except APIError: self._logger.error("K8s profile deletion %s failed", k8s_profile_name) raise onap_test_exceptions.ProfileCleanupException super().cleanup()
def test_get_definition_by_name_version(mock_send_message_json): mock_send_message_json.return_value = DEFINITION def_0 = Definition.get_definition_by_name_version("rb_name", "rb_version") assert def_0.rb_name == "test_rb_name_0" assert def_0.rb_version == "test_rb_version_0" assert def_0.chart_name is None assert def_0.description is None assert def_0.labels is None
def execute(self) -> None: """Create profile.""" super().execute() definition: Definition = Definition.get_definition_by_name_version(\ rb_name=settings.PNF_RB_NAME, rb_version=settings.PNF_RB_VERSION) with open(settings.PNF_PROFILE_ARTIFACT_FILE_PATH, "rb") as profile_file: self.profile = definition.create_profile( profile_name=settings.PNF_PROFILE_NAME, namespace=settings.K8S_NAMESPACE, kubernetes_version=settings.K8S_VERSION) self.profile.upload_artifact(profile_file.read())
def execute(self): """Creation of k8s profile for resource bundle definition Use settings values: - GLOBAL_CUSTOMER_ID - K8S_PROFILE_K8S_VERSION - K8S_PROFILE_ARTIFACT_PATH. """ self._logger.info("Create the k8s profile if it doesn't exist") super().execute() customer: Customer = Customer.get_by_global_customer_id( settings.GLOBAL_CUSTOMER_ID) service_subscription: ServiceSubscription = customer.get_service_subscription_by_service_type( self.service_name) self._service_instance: ServiceInstance = service_subscription.get_service_instance_by_name( self.service_instance_name) for vnf_instance in self._service_instance.vnf_instances: # possible to have several modules for 1 VNF for vf_module in vnf_instance.vnf.vf_modules: # Define profile (rb_profile) for resource bundle definition # Retrieve resource bundle definition (rbdef) corresponding to vf module rbdef_name = vf_module.metadata["vfModuleModelInvariantUUID"] rbdef_version = vf_module.metadata["vfModuleModelUUID"] rbdef = Definition.get_definition_by_name_version( rbdef_name, rbdef_version) # Get k8s profile name from yaml service template vnf_parameters = self.get_vnf_parameters(vnf_instance.vnf.name) k8s_profile_name = "" k8s_profile_namespace = "" for param in vnf_parameters: if param.name == "k8s-rb-profile-name": k8s_profile_name = param.value if param.name == "k8s-rb-profile-namespace": k8s_profile_namespace = param.value if k8s_profile_name == "" or k8s_profile_namespace == "": self._logger.error("Missing rb profile information") raise onap_test_exceptions.ProfileInformationException ######## Check profile for Definition ################################### try: rbdef.get_profile_by_name(k8s_profile_name) except ResourceNotFound: ######## Create profile for Definition ################################### profile = rbdef.create_profile( k8s_profile_name, k8s_profile_namespace, settings.K8S_PROFILE_K8S_VERSION) ####### Upload artifact for created profile ############################## profile.upload_artifact( open(settings.K8S_PROFILE_ARTIFACT_PATH, 'rb').read())
logger.info("******** Add Owning Entity in AAI *******") owning_entity = None for oe in AaiOwningEntity.get_all(): if oe.name == vid_owning_entity.name: owning_entity = oe break if not owning_entity: logger.info("******** Owning Entity not existing: create *******") owning_entity = AaiOwningEntity.create(vid_owning_entity.name, str(uuid4())) logger.info("******** Delete old profiles ********") for vnf in service.vnfs: for vf_module in vnf.vf_modules: definition = Definition.get_definition_by_name_version( vf_module.metadata["vfModuleModelInvariantUUID"], vf_module.metadata["vfModuleModelUUID"]) vf_module_label = vf_module.properties["vf_module_label"] if vf_module_label == "base_template_dummy_ignore": continue profile_name = Config.VF_MODULE_PARAM_LIST[vf_module_label][ "k8s-rb-profile-name"] try: profile = definition.get_profile_by_name(profile_name) namespace = None if "k8s-rb-profile-namespace" in Config.VNF_PARAM_LIST: namespace = Config.VNF_PARAM_LIST["k8s-rb-profile-namespace"] if "k8s-rb-profile-namespace" in Config.VF_MODULE_PARAM_LIST[ vf_module_label]: namespace = Config.VF_MODULE_PARAM_LIST[vf_module_label][ "k8s-rb-profile-namespace"]
def test_instance_create(): definition = Definition.get_definition_by_name_version(RB_NAME, RB_VERSION) profile = definition.get_profile_by_name(PROFILE_NAME) instance = Instance.create(CLOUD_REGION_ID, profile.profile_name, definition.rb_name, definition.rb_version) pytest.INSTANCE_ID = instance.instance_id
def test_profile_get_all(): definition = Definition.get_definition_by_name_version(RB_NAME, RB_VERSION) profiles = list(definition.get_all_profiles())
def test_profile_create_upload_artifact(): definition = Definition.get_definition_by_name_version(RB_NAME, RB_VERSION) profile = definition.create_profile(PROFILE_NAME, PROFILE_NAMESPACE, PROFILE_K8S_VERSION) profile.upload_artifact(b'profile_artifact_file')
def test_configuration_template(): definition = Definition.get_definition_by_name_version(RB_NAME, RB_VERSION) definition.create_configuration_template(TEMPLATE_NAME, TEMPLATE_DESCRIPTION) definition.get_all_configuration_templates() definition.get_configuration_template_by_name(TEMPLATE_NAME)
def test_definition_profile_get_delete(): definition = Definition.get_definition_by_name_version(RB_NAME, RB_VERSION) profile = definition.get_profile_by_name(PROFILE_NAME) profile.delete() definition.delete()