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"
Esempio n. 5
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()
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
Esempio n. 7
0
 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 == {}
Esempio n. 10
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())
Esempio n. 11
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())
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
Esempio n. 15
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"]
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')