From 3a0866a29f8eb8910e950e699ce71ffacfcf06f7 Mon Sep 17 00:00:00 2001 From: Ruoyu Ying Date: Tue, 16 Apr 2019 18:09:51 +0800 Subject: Insert tosca models for policy model uploading - Insert the tosca models that can be recognized by Policy Framework inside another new folder. - Add the path for models inside the osdf config in order to avoid changes in future in case there's a change of path. Change-Id: Ifff83a630bc48b7a3fff4aa17323910e6adedb0d Issue-ID: OPTFRA-415 Signed-off-by: Ruoyu Ying --- config/osdf_config.yaml | 3 +- osdf/adapters/policy/interface.py | 6 +- .../onap.policies.optimization.AffinityPolicy.yaml | 62 ++++++++++ .../onap.policies.optimization.DistancePolicy.yaml | 82 +++++++++++++ .../onap.policies.optimization.HpaPolicy.yaml | 131 +++++++++++++++++++++ ...p.policies.optimization.OptimizationPolicy.yaml | 89 ++++++++++++++ .../onap.policies.optimization.PciPolicy.yaml | 58 +++++++++ .../onap.policies.optimization.QueryPolicy.yaml | 47 ++++++++ ...nap.policies.optimization.SubscriberPolicy.yaml | 51 ++++++++ .../onap.policies.optimization.Vim_fit.yaml | 56 +++++++++ .../onap.policies.optimization.VnfPolicy.yaml | 73 ++++++++++++ 11 files changed, 654 insertions(+), 4 deletions(-) create mode 100644 osdf/models/policy/placement/tosca_upload/onap.policies.optimization.AffinityPolicy.yaml create mode 100644 osdf/models/policy/placement/tosca_upload/onap.policies.optimization.DistancePolicy.yaml create mode 100644 osdf/models/policy/placement/tosca_upload/onap.policies.optimization.HpaPolicy.yaml create mode 100644 osdf/models/policy/placement/tosca_upload/onap.policies.optimization.OptimizationPolicy.yaml create mode 100644 osdf/models/policy/placement/tosca_upload/onap.policies.optimization.PciPolicy.yaml create mode 100644 osdf/models/policy/placement/tosca_upload/onap.policies.optimization.QueryPolicy.yaml create mode 100644 osdf/models/policy/placement/tosca_upload/onap.policies.optimization.SubscriberPolicy.yaml create mode 100644 osdf/models/policy/placement/tosca_upload/onap.policies.optimization.Vim_fit.yaml create mode 100644 osdf/models/policy/placement/tosca_upload/onap.policies.optimization.VnfPolicy.yaml diff --git a/config/osdf_config.yaml b/config/osdf_config.yaml index 2abc651..cf5426b 100755 --- a/config/osdf_config.yaml +++ b/config/osdf_config.yaml @@ -21,7 +21,8 @@ conductorMinorVersion: 0 policyPlatformUrl: http://policy.api.simpledemo.onap.org:8081/pdp/api/getConfig # Policy Dev platform URL policyPlatformEnv: TEST # Environment for policy platform # URL for policy model uploading -policyPlatformUrlForModelUploading: http://policy.api.simpledemo.onap.org:8081/policy/api/v1/policytypes +policyPlatformUrlModelUpload: https://policy.api.simpledemo.onap.org:8081/policy/api/v1/policytypes +pathPolicyModelUpload: ../../models/policy/placement/tosca_upload/ # Config for DMaaP messageReaderHosts: NA diff --git a/osdf/adapters/policy/interface.py b/osdf/adapters/policy/interface.py index 7de5858..74126a4 100644 --- a/osdf/adapters/policy/interface.py +++ b/osdf/adapters/policy/interface.py @@ -192,19 +192,19 @@ def get_policies(request_json, service_type): def upload_policy_models(): """Upload all the policy models reside in the folder""" - model_path = "../../models/policy/placement/tosca" requestId = uuid.uuid4() config = osdf_config.deployment + model_path = config['pathPolicyModelUpload'] uid, passwd = config['policyPlatformUsername'], config['policyPlatformPassword'] pcuid, pcpasswd = config['policyClientUsername'], config['policyClientPassword'] headers = {"ClientAuth": base64.b64encode(bytes("{}:{}".format(pcuid, pcpasswd), "ascii"))} headers.update({'Environment': config['policyPlatformEnv']}) headers.update({'X-ONAP-RequestID': requestId}) - url = config['policyPlatformUrlForModelUploading'] + url = config['policyPlatformUrlModelUpload'] rc = RestClient(userid=uid, passwd=passwd, headers=headers, url=url, log_func=debug_log.debug) for file in os.listdir(model_path): - if not file.endswith(".yml"): + if not file.endswith(".yaml"): continue with open(file) as f: file_converted = json.dumps(yaml.load(f)) diff --git a/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.AffinityPolicy.yaml b/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.AffinityPolicy.yaml new file mode 100644 index 0000000..c2fd504 --- /dev/null +++ b/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.AffinityPolicy.yaml @@ -0,0 +1,62 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +policy_types: + - onap.policies.Optimization: + derived_from: tosca.policies.Root + version: 1.0.0 + description: a base policy type for all policies that govern optimization + - onap.policies.optimization.AffinityPolicy: + derived_from: onap.policies.Optimization + properties: + policyScope: + type: list + description: scope where the policy is applicable + required: true + matchable: true + entry_schema: + type: string + policyType: + type: list + description: type of a policy + required: true + matchable: true + entry_schema: + type: string + consraints: + - valid_values: + - zone + identity: + type: string + required: true + applicableResources: + type: list + required: true + entry_schema: + type: string + constraints: + - valid_values: + - any + - all + affinityProperties: + type: policy.data.affinityProperties_properties + required: true + resources: + type: list + required: true + entry_schema: + type: string +data_types: + policy.data.affinityProperties_properties: + derived_from: tosca.nodes.Root + properties: + qualifier: + type: list + required: true + entry_schema: + type: string + constraints: + - valid_values: + - same + - different + category: + type: string + required: true diff --git a/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.DistancePolicy.yaml b/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.DistancePolicy.yaml new file mode 100644 index 0000000..93ddd63 --- /dev/null +++ b/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.DistancePolicy.yaml @@ -0,0 +1,82 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +policy_types: + - onap.policies.Optimization: + derived_from: tosca.policies.Root + version: 1.0.0 + description: a base policy type for all policies that govern optimization + - onap.policies.optimization.DistancePolicy: + derived_from: onap.policies.Optimization + properties: + policyScope: + type: list + description: scope where the policy is applicable + required: true + matchable: true + entry_schema: + type: string + policyType: + type: list + description: type of a policy + required: true + matchable: true + entry_schema: + type: string + consraints: + - valid_values: + - distance_to_location + identity: + type: string + required: true + resources: + type: list + required: true + entry_schema: + type: string + applicableResources: + type: list + required: true + entry_schema: + type: string + constraints: + - valid_values: + - any + - all + distanceProperties: + type: policy.data.distanceProperties_properties + required: true +data_types: + policy.data.distanceProperties_properties: + derived_from: tosca.nodes.Root + properties: + locationInfo: + type: string + required: true + distance: + type: policy.data.distance_properties + required: true + policy.data.distance_properties: + derived_from: tosca.nodes.Root + properties: + value: + type: string + required: true + operator: + type: list + required: true + entry_schema: + type: string + constraints: + - valid_values: + - < + - <= + - '>' + - '>=' + - '=' + unit: + type: list + required: true + entry_schema: + type: string + constraints: + - valid_values: + - km diff --git a/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.HpaPolicy.yaml b/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.HpaPolicy.yaml new file mode 100644 index 0000000..63f0d8a --- /dev/null +++ b/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.HpaPolicy.yaml @@ -0,0 +1,131 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +policy_types: + - onap.policies.Optimization: + derived_from: tosca.policies.Root + version: 1.0.0 + description: a base policy type for all policies that govern optimization + - onap.policies.optimization.HpaPolicy: + derived_from: onap.policies.Optimization + properties: + policyScope: + type: list + description: scope where the policy is applicable + required: true + matchable: true + entry_schema: + type: string + policyType: + type: list + description: type of a policy + required: true + matchable: true + entry_schema: + type: string + consraints: + - valid_values: + - hpa + resources: + type: list + required: true + entry_schema: + type: string + identity: + type: string + required: true + flavorFeatures: + type: list + required: true + entry_schema: + type:policy.data.flavorFeatures_properties +data_types: + policy.data.flavorFeatures_properties: + derived_from: tosca.nodes.Root + properties: + id: + type: string + required: true + type: + type: string + required: true + directives: + type: list + required: true + entry_schema: + type: policy.data.directives_properties + flavorProperties: + type: list + required: true + entry_schema: + type: policy.data.flavorProperties_properties + policy.data.directives_properties: + derived_from: tosca.nodes.Root + properties: + type: + type: string + attributes: + type: list + entry_schema: + type: policy.data.directives_attributes_properties + policy.data.directives_attributes_properties: + derived_from: tosca.nodes.Root + properties: + attribute_name: + type: string + attribute_value: + type: string + policy.data.flavorProperties_properties: + derived_from: tosca.nodes.Root + properties: + hpa-feature: + type: string + required: true + mandatory: + type: string + required: true + score: + type: string + required: false + architecture: + type: string + required: true + hpa-version: + type: string + required: true + directives: + type: list + required: true + entry_schema: + type: policy.data.directives_properties + hpa-feature-attributes: + type: list + required: true + entry_schema: + type: policy.data.hpa-feature-attributes_properties + policy.data.hpa-feature-attributes_properties: + derived_from: tosca.nodes.Root + properties: + hpa-attribute-key: + type: string + required: true + hpa-attribute-value: + type: string + required: true + operator: + type: list + required: true + entry_schema: + type: string + constraints: + - valid_values: + - < + - <= + - '>' + - '>=' + - '=' + - '!=' + - any + - all + - subset + unit: + type: string + required: false diff --git a/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.OptimizationPolicy.yaml b/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.OptimizationPolicy.yaml new file mode 100644 index 0000000..edfac14 --- /dev/null +++ b/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.OptimizationPolicy.yaml @@ -0,0 +1,89 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +policy_types: + - onap.policies.Optimization: + derived_from: tosca.policies.Root + version: 1.0.0 + description: a base policy type for all policies that govern optimization + - onap.policies.optimization.OptimizationPolicy: + derived_from: onap.policies.Optimization + properties: + policyScope: + type: list + description: scope where the policy is applicable + required: true + matchable: true + entry_schema: + type: string + policyType: + type: list + description: type of a policy + required: true + matchable: true + entry_schema: + type: string + consraints: + - valid_values: + - placement_optimization + identity: + type: string + required: true + objective: + type: list + required: true + entry_schema: + type: string + constraints: + - valid_values: + - minimize + - maximize + objectiveParameter: + type: policy.data.objectiveParameter_properties + required: true +data_types: + policy.data.objectiveParameter_properties: + derived_from: tosca.nodes.Root + properties: + parameterAttributes: + type: list + required: true + entry_schema: + type: policy.data.parameterAttributes_properties + operator: + type: list + required: true + entry_schema: + type: string + constraints: + - valid_values: + - '*' + - + + - '-' + - / + - '%' + policy.data.parameterAttributes_properties: + derived_from: tosca.nodes.Root + properties: + resources: + type: string + required: true + customerLocationInfo: + type: string + required: true + parameter: + type: string + required: true + weight: + type: string + required: true + operator: + type: list + required: true + entry_schema: + type: string + constraints: + - valid_values: + - '*' + - + + - '-' + - / + - '%' diff --git a/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.PciPolicy.yaml b/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.PciPolicy.yaml new file mode 100644 index 0000000..1355eb0 --- /dev/null +++ b/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.PciPolicy.yaml @@ -0,0 +1,58 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +policy_types: + - onap.policies.Optimization: + derived_from: tosca.policies.Root + version: 1.0.0 + description: a base policy type for all policies that govern optimization + - onap.policies.optimization.PciPolicy: + derived_from: onap.policies.Optimization + properties: + policyScope: + type: list + description: scope where the policy is applicable + required: true + matchable: true + entry_schema: + type: string + policyType: + type: list + description: type of a policy + required: true + matchable: true + entry_schema: + type: string + consraints: + - valid_values: + - pciPolicy + identity: + type: string + required: true + resources: + type: list + required: true + entry_schema: + type: string + pciProperties: + type: list + required: false + entry_schema: + - type:policy.data.pciProperties_properties +data_types: + policy.data.pciProperties_properties: + derived_from: tosca.nodes.Root + properties: + algoCategory: + type: string + required: false + pciOptmizationAlgoName: + type: string + required: false + pciOptimizationNwConstraint: + type: string + required: false + pciOptimizationPriority: + type: string + required: false + pciOptimizationTimeConstraint: + type: string + required: false diff --git a/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.QueryPolicy.yaml b/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.QueryPolicy.yaml new file mode 100644 index 0000000..f7036dc --- /dev/null +++ b/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.QueryPolicy.yaml @@ -0,0 +1,47 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +policy_types: + - onap.policies.Optimization: + derived_from: tosca.policies.Root + version: 1.0.0 + description: a base policy type for all policies that govern optimization + - onap.policies.optimization.QueryPolicy: + derived_from: onap.policies.Optimization + properties: + policyScope: + type: list + description: scope where the policy is applicable + required: true + matchable: true + entry_schema: + type: string + policyType: + type: list + description: type of a policy + required: true + matchable: true + entry_schema: + type: string + consraints: + - valid_values: + - request_param_query + identity: + type: string + required: true + queryProperties: + type: list + required: true + entry_schema: + type:policy.data.queryProperties_properties +data_types: + policy.data.queryProperties_properties: + derived_from: tosca.nodes.Root + properties: + attribute: + type: string + required: true + value: + type: string + required: true + attribute_location: + type: string + required: true diff --git a/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.SubscriberPolicy.yaml b/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.SubscriberPolicy.yaml new file mode 100644 index 0000000..3c2c2b2 --- /dev/null +++ b/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.SubscriberPolicy.yaml @@ -0,0 +1,51 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +policy_types: + - onap.policies.Optimization: + derived_from: tosca.policies.Root + version: 1.0.0 + description: a base policy type for all policies that govern optimization + - onap.policies.optimization.SubscriberPolicy: + derived_from: onap.policies.Optimization + properties: + policyScope: + type: list + description: scope where the policy is applicable + required: true + matchable: true + entry_schema: + type: string + policyType: + type: list + description: type of a policy + required: true + matchable: true + entry_schema: + type: string + consraints: + - valid_values: + - subscriberPolicy + identity: + type: string + required: true + properties: + type: policy.data.properties_properties + required: true +data_types: + policy.data.properties_properties: + derived_from: tosca.nodes.Root + properties: + subscriberName: + type: list + required: true + entry_schema: + type: string + subscriberRole: + type: list + required: true + entry_schema: + type: string + provStatus: + type: list + required: true + entry_schema: + type: string diff --git a/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.Vim_fit.yaml b/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.Vim_fit.yaml new file mode 100644 index 0000000..860c37f --- /dev/null +++ b/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.Vim_fit.yaml @@ -0,0 +1,56 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +policy_types: + - onap.policies.Optimization: + derived_from: tosca.policies.Root + version: 1.0.0 + description: a base policy type for all policies that govern optimization + - onap.policies.optimization.Vim_fit: + derived_from: onap.policies.Optimization + properties: + policyScope: + type: list + description: scope where the policy is applicable + required: true + matchable: true + entry_schema: + type: string + policyType: + type: list + description: type of a policy + required: true + matchable: true + entry_schema: + type: string + consraints: + - valid_values: + - vim_fit + identity: + type: string + required: true + applicableResources: + type: list + required: true + entry_schema: + type: string + constraints: + - valid_values: + - any + - all + resources: + type: list + required: true + entry_schema: + type: string + capacityProperties: + type: policy.data.capacityProperties_properties + required: true +data_types: + policy.data.capacityProperties_properties: + derived_from: tosca.nodes.Root + properties: + controller: + type: string + required: true + request: + type: string + required: true diff --git a/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.VnfPolicy.yaml b/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.VnfPolicy.yaml new file mode 100644 index 0000000..13d4f13 --- /dev/null +++ b/osdf/models/policy/placement/tosca_upload/onap.policies.optimization.VnfPolicy.yaml @@ -0,0 +1,73 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +policy_types: + - onap.policies.Optimization: + derived_from: tosca.policies.Root + version: 1.0.0 + description: a base policy type for all policies that govern optimization + - onap.policies.optimization.VnfPolicy: + derived_from: onap.policies.Optimization + properties: + policyScope: + type: list + description: scope where the policy is applicable + required: true + matchable: true + entry_schema: + type: string + policyType: + type: list + description: type of a policy + required: true + matchable: true + entry_schema: + type: string + consraints: + - valid_values: + - vnfPolicy + identity: + type: string + required: true + resources: + type: list + required: true + entry_schema: + type: string + applicableResources: + type: list + required: true + entry_schema: + type: string + constraints: + - valid_values: + - any + - all + vnfProperties: + type: list + required: true + entry_schema: + type:policy.data.vnfProperties_properties +data_types: + policy.data.vnfProperties_properties: + derived_from: tosca.nodes.Root + properties: + inventoryProvider: + type: string + required: true + serviceType: + type: string + required: true + inventoryType: + type: list + required: true + entry_schema: + type: string + constraints: + - valid_values: + - serviceInstanceId + - vnfName + - cloudRegionId + - vimId + customerId: + type: string + required: true + -- cgit 1.2.3-korg