Insert tosca models for policy model uploading 92/85392/3
authorRuoyu Ying <ruoyu.ying@intel.com>
Tue, 16 Apr 2019 10:09:51 +0000 (18:09 +0800)
committerRuoyu Ying <ruoyu.ying@intel.com>
Sun, 21 Apr 2019 15:39:36 +0000 (23:39 +0800)
- 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>
config/osdf_config.yaml
osdf/adapters/policy/interface.py
osdf/models/policy/placement/tosca_upload/onap.policies.optimization.AffinityPolicy.yaml [new file with mode: 0644]
osdf/models/policy/placement/tosca_upload/onap.policies.optimization.DistancePolicy.yaml [new file with mode: 0644]
osdf/models/policy/placement/tosca_upload/onap.policies.optimization.HpaPolicy.yaml [new file with mode: 0644]
osdf/models/policy/placement/tosca_upload/onap.policies.optimization.OptimizationPolicy.yaml [new file with mode: 0644]
osdf/models/policy/placement/tosca_upload/onap.policies.optimization.PciPolicy.yaml [new file with mode: 0644]
osdf/models/policy/placement/tosca_upload/onap.policies.optimization.QueryPolicy.yaml [new file with mode: 0644]
osdf/models/policy/placement/tosca_upload/onap.policies.optimization.SubscriberPolicy.yaml [new file with mode: 0644]
osdf/models/policy/placement/tosca_upload/onap.policies.optimization.Vim_fit.yaml [new file with mode: 0644]
osdf/models/policy/placement/tosca_upload/onap.policies.optimization.VnfPolicy.yaml [new file with mode: 0644]

index 2abc651..cf5426b 100755 (executable)
@@ -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
index 7de5858..74126a4 100644 (file)
@@ -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 (file)
index 0000000..c2fd504
--- /dev/null
@@ -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 (file)
index 0000000..93ddd63
--- /dev/null
@@ -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 (file)
index 0000000..63f0d8a
--- /dev/null
@@ -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 (file)
index 0000000..edfac14
--- /dev/null
@@ -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 (file)
index 0000000..1355eb0
--- /dev/null
@@ -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 (file)
index 0000000..f7036dc
--- /dev/null
@@ -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 (file)
index 0000000..3c2c2b2
--- /dev/null
@@ -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 (file)
index 0000000..860c37f
--- /dev/null
@@ -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 (file)
index 0000000..13d4f13
--- /dev/null
@@ -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
+