コード例 #1
0
 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()
コード例 #2
0
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
コード例 #3
0
 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())
コード例 #4
0
    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())
コード例 #5
0
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"]
コード例 #6
0
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
コード例 #7
0
def test_profile_get_all():
    definition = Definition.get_definition_by_name_version(RB_NAME, RB_VERSION)
    profiles = list(definition.get_all_profiles())
コード例 #8
0
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')
コード例 #9
0
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)
コード例 #10
0
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()