aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRuoyu Ying <ruoyu.ying@intel.com>2019-04-16 18:09:51 +0800
committerRuoyu Ying <ruoyu.ying@intel.com>2019-04-21 23:39:36 +0800
commit3a0866a29f8eb8910e950e699ce71ffacfcf06f7 (patch)
treed7f3dc6b6a70b18b9333aeb68a7cee68893fe4bc
parente1f6d80752920a7ef990134f02abb3db9b5a6232 (diff)
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 <ruoyu.ying@intel.com>
-rwxr-xr-xconfig/osdf_config.yaml3
-rw-r--r--osdf/adapters/policy/interface.py6
-rw-r--r--osdf/models/policy/placement/tosca_upload/onap.policies.optimization.AffinityPolicy.yaml62
-rw-r--r--osdf/models/policy/placement/tosca_upload/onap.policies.optimization.DistancePolicy.yaml82
-rw-r--r--osdf/models/policy/placement/tosca_upload/onap.policies.optimization.HpaPolicy.yaml131
-rw-r--r--osdf/models/policy/placement/tosca_upload/onap.policies.optimization.OptimizationPolicy.yaml89
-rw-r--r--osdf/models/policy/placement/tosca_upload/onap.policies.optimization.PciPolicy.yaml58
-rw-r--r--osdf/models/policy/placement/tosca_upload/onap.policies.optimization.QueryPolicy.yaml47
-rw-r--r--osdf/models/policy/placement/tosca_upload/onap.policies.optimization.SubscriberPolicy.yaml51
-rw-r--r--osdf/models/policy/placement/tosca_upload/onap.policies.optimization.Vim_fit.yaml56
-rw-r--r--osdf/models/policy/placement/tosca_upload/onap.policies.optimization.VnfPolicy.yaml73
11 files changed, 654 insertions, 4 deletions
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
+