X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ice_validator%2Fpreload%2Fmodel.py;h=db604386c174df643fd025587491413566bb3681;hb=842888dc28ebccab45e627669f7ee23f04920dc7;hp=e37c9142b5ab33079c9cf3b347a832cfbd3d5fd7;hpb=84db7f8f65cd0ec77f09cfde365599df9890ce6c;p=vvp%2Fvalidation-scripts.git diff --git a/ice_validator/preload/model.py b/ice_validator/preload/model.py index e37c914..db60438 100644 --- a/ice_validator/preload/model.py +++ b/ice_validator/preload/model.py @@ -37,6 +37,7 @@ import os import shutil from abc import ABC, abstractmethod +from collections import OrderedDict from preload.generator import yield_by_count from preload.environment import PreloadEnvironment @@ -55,6 +56,8 @@ from tests.utils import nested_dict from tests.utils.vm_types import get_vm_type_for_nova_server from config import Config, get_generator_plugins +from tests.test_environment_file_parameters import ENV_PARAMETER_SPEC + CHANGE = "CHANGEME" @@ -233,7 +236,7 @@ class Vnf: @property def base_output_params(self): - return self.base_module.heat.outputs + return self.base_module.heat.outputs if self.base_module else {} def filter_base_outputs(self): non_base_modules = (m for m in self.modules if not m.is_base_module) @@ -259,7 +262,8 @@ class VnfModule(FilterBaseOutputs): self.heat = Heat(filepath=template_file, envpath=env_path(template_file)) env_pair = get_environment_pair(self.template_file) env_yaml = env_pair.get("eyml") if env_pair else {} - self.parameters = env_yaml.get("parameters") or {} + self.parameters = {key: "" for key in self.heat.parameters} + self.parameters.update(env_yaml.get("parameters") or {}) self.networks = [] self.virtual_machine_types = self._create_vm_types() self._add_networks() @@ -324,7 +328,18 @@ class VnfModule(FilterBaseOutputs): @property def env_specs(self): """Return available Environment Spec definitions""" - return Config().env_specs + try: + return Config().env_specs + except FileNotFoundError: + return [ENV_PARAMETER_SPEC] + + @property + def platform_provided_params(self): + result = set() + for spec in self.env_specs: + for props in spec["PLATFORM PROVIDED"]: + result.add(props["property"][-1]) + return result @property def env_template(self): @@ -332,11 +347,12 @@ class VnfModule(FilterBaseOutputs): Returns a a template .env file that can be completed to enable preload generation. """ - params = {} - params["vnf-name"] = CHANGE + params = OrderedDict() params["vnf-type"] = CHANGE params["vf-module-model-name"] = CHANGE params["vf_module_name"] = CHANGE + for az in self.availability_zones: + params[az] = CHANGE for network in self.networks: params[network.name_param] = CHANGE for param in set(network.subnet_params): @@ -351,10 +367,11 @@ class VnfModule(FilterBaseOutputs): excluded = get_preload_excluded_parameters( self.template_file, persistent_only=True ) + excluded.update(self.platform_provided_params) for name, value in self.parameters.items(): if name in excluded: continue - params[name] = value + params[name] = value if value else CHANGE return {"parameters": params} @property @@ -367,7 +384,8 @@ class VnfModule(FilterBaseOutputs): :return: dict of parameters suitable for the preload """ excluded = get_preload_excluded_parameters(self.template_file) - return {k: v for k, v in self.parameters.items() if k not in excluded} + params = {k: v for k, v in self.parameters.items() if k not in excluded} + return params def _get_vm_type(self, vm_type): for vm in self.virtual_machine_types: