def test_definition_get_all_profiles(mock_send_message_json): mock_send_message_json.return_value = [] deff = Definition(rb_name="test_rb_name", rb_version="test_rb_version", chart_name="test_chart_name", description="test_description", labels={}) assert len(list(deff.get_all_profiles())) == 0 mock_send_message_json.return_value = PROFILES profiles = list(deff.get_all_profiles()) assert len(profiles) == 2 prof_0, prof_1 = profiles assert prof_0.rb_name == "test_rb_name" assert prof_0.rb_version == "test_rb_version" assert prof_0.profile_name == "test_profile_name" assert prof_0.namespace == "test_namespace" assert prof_0.kubernetes_version is None assert prof_0.labels == {} assert prof_0.release_name == "test_profile_name" assert prof_1.rb_name == "test_rb_name_1" assert prof_1.rb_version == "test_rb_version_1" assert prof_1.profile_name == "test_profile_name_1" assert prof_1.namespace == "test_namespace_1" assert prof_1.kubernetes_version is None assert prof_1.labels == {} assert prof_1.release_name == "test_profile_name_1"
def test_definition_get_configuration_template_by_name(mock_send_message_json): mock_send_message_json.return_value = CONFIGURATION_TEMPLATE deff = Definition(rb_name="test_rb_name", rb_version="test_rb_version", chart_name="test_chart_name", description="test_description", labels={}) configuration_tmpl = deff.get_configuration_template_by_name( template_name="test_configuration_template_name") assert configuration_tmpl.rb_name == deff.rb_name assert configuration_tmpl.rb_version == deff.rb_version assert configuration_tmpl.template_name == "test_configuration_template_name" assert configuration_tmpl.description == "test_configuration_template_description"
def test_definition_get_profile_by_name(mock_send_message_json): mock_send_message_json.return_value = PROFILE deff = Definition(rb_name="test_rb_name", rb_version="test_rb_version", chart_name="test_chart_name", description="test_description", labels={}) profile = deff.get_profile_by_name("test_profile_name") assert profile.rb_name == "test_rb_name" assert profile.rb_version == "test_rb_version" assert profile.profile_name == "test_profile_name" assert profile.namespace == "test_namespace" assert profile.kubernetes_version is None assert profile.labels == {} assert profile.release_name == "test_profile_name"
def test_definition_create_configuration_template(mock_send_message, mock_send_message_json): mock_send_message_json.return_value = CONFIGURATION_TEMPLATE deff = Definition(rb_name="test_rb_name", rb_version="test_rb_version", chart_name="test_chart_name", description="test_description", labels={}) configuration_tmpl = deff.create_configuration_template( template_name="test_configuration_template_name", description="test_configuration_template_description") assert configuration_tmpl.rb_name == deff.rb_name assert configuration_tmpl.rb_version == deff.rb_version assert configuration_tmpl.template_name == "test_configuration_template_name" assert configuration_tmpl.description == "test_configuration_template_description" assert configuration_tmpl.url == f"{deff.base_url}/{deff.rb_name}/{deff.rb_version}/config-template/test_configuration_template_name"
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 definition.""" super().execute() with open(settings.PNF_DEFINITION_ATRIFACT_FILE_PATH, "rb") as definition_file: self.definition = Definition.create( rb_name=settings.PNF_RB_NAME, rb_version=settings.PNF_RB_VERSION) self.definition.upload_artifact(definition_file.read())
def test_create_definition(mock_send_message, mock_send_message_json): mock_send_message_json.return_value = DEFINITION def_0 = Definition.create(rb_name="test_rb_name_0", rb_version="test_rb_version_0") 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 test_definition_get_all(mock_send_message_json): mock_send_message_json.return_value = [] assert len(list(Definition.get_all())) == 0 mock_send_message_json.return_value = DEFINITIONS definitions = list(Definition.get_all()) assert len(definitions) == 2 def_0, def_1 = definitions 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 assert def_1.rb_name == "test_rb_name_1" assert def_1.rb_version == "test_rb_version_1" assert def_1.chart_name == "test_chart_name_1" assert def_1.description == "test_description_1" assert def_1.labels == {}
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())
def test_definition_get_all_configuration_templates(mock_send_message_json): mock_send_message_json.return_value = [] deff = Definition(rb_name="test_rb_name", rb_version="test_rb_version", chart_name="test_chart_name", description="test_description", labels={}) assert len(list(deff.get_all_configuration_templates())) == 0 mock_send_message_json.return_value = CONFIGURATION_TEMPLATES configuration_tmplts = list(deff.get_all_configuration_templates()) assert len(configuration_tmplts) == 2 tmpl_0, tmpl_1 = configuration_tmplts assert tmpl_0.rb_name == deff.rb_name assert tmpl_0.rb_version == deff.rb_version assert tmpl_0.template_name == "test_configuration_template_name" assert tmpl_0.description == "test_configuration_template_description" assert tmpl_1.rb_name == deff.rb_name assert tmpl_1.rb_version == deff.rb_version assert tmpl_1.template_name == "test_configuration_template_name_0" assert tmpl_1.description is None
def test_definition_get_all(): definitions = list(Definition.get_all())
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
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_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()
def test_definition_create_upload_artifact(): definition = Definition.create(RB_NAME, RB_VERSION) definition.upload_artifact(b'definition_artifact_file')