diff options
author | Pamela Dragosh <pdragosh@research.att.com> | 2019-08-30 15:21:05 -0400 |
---|---|---|
committer | Pamela Dragosh <pdragosh@research.att.com> | 2019-09-09 15:27:30 -0400 |
commit | 85b5178017e89c815af7792826f52a90814f5dba (patch) | |
tree | 1cc49f6763f1af2cab372bb75ae6b9e5391c3ad7 /applications/optimization/src/test/resources | |
parent | dc68da3c00c0a814110e0f7529365d695bff571b (diff) |
Integrate using Policy Type to find Matchable
Utilize's Jim's helper class to pull from API policy types
definitions so that Xacml PDP can determine which properties
are "matchable".
Override initialize to set translator parameters.
Utilize the metadata section of ToscaProperties to store
the matchable field.
Updated Matchable Request to be dynamic with respect to the
incoming resource attributes.
Stored the policy types as JSON.
Issue-ID: POLICY-1899
Change-Id: Icff3605495b0a34ebfcdfa54346095ce2d8468a4
Signed-off-by: Pamela Dragosh <pdragosh@research.att.com>
Diffstat (limited to 'applications/optimization/src/test/resources')
5 files changed, 392 insertions, 45 deletions
diff --git a/applications/optimization/src/test/resources/onap.policies.Optimization-1.0.0.json b/applications/optimization/src/test/resources/onap.policies.Optimization-1.0.0.json new file mode 100644 index 00000000..8ee418e2 --- /dev/null +++ b/applications/optimization/src/test/resources/onap.policies.Optimization-1.0.0.json @@ -0,0 +1,66 @@ +{ + "tosca_definitions_version": "tosca_simple_yaml_1_0_0", + "policy_types": { + "onap.policies.Optimization": { + "derived_from": "tosca.policies.Root", + "version": "1.0.0", + "description": "The base policy type for all policies that govern optimization", + "properties": { + "scope": { + "description": "Scope for the policy - could be for a specific release.", + "type": "list", + "metadata": { + "matchable": true + }, + "required": true + }, + "services": { + "description": "One or more services that the policy applies to.", + "type": "list", + "metadata": { + "matchable": true + }, + "required": true, + "entry_schema": { + "type": "string" + } + }, + "resources": { + "description": "One or more VNF resources that the policy applies to.", + "type": "list", + "metadata": { + "matchable": true + }, + "required": true, + "entry_schema": { + "type": "string" + } + }, + "geography": { + "description": "One or more geographic regions", + "type": "list", + "metadata": { + "matchable": true + }, + "required": true, + "entry_schema": { + "type": "string", + "constraints": [ + { + "valid_values": [ + "US", + "International" + ] + } + ] + } + }, + "identity": { + "description": "Used internally for identification", + "type": "string", + "required": true + } + } + } + } +}
\ No newline at end of file diff --git a/applications/optimization/src/test/resources/onap.policies.optimization.AffinityPolicy-1.0.0.json b/applications/optimization/src/test/resources/onap.policies.optimization.AffinityPolicy-1.0.0.json new file mode 100644 index 00000000..d2b1b4b7 --- /dev/null +++ b/applications/optimization/src/test/resources/onap.policies.optimization.AffinityPolicy-1.0.0.json @@ -0,0 +1,54 @@ +{ + "tosca_definitions_version": "tosca_simple_yaml_1_0_0", + "policy_types": { + "onap.policies.optimization.AffinityPolicy": { + "derived_from": "onap.policies.Optimization", + "version": "1.0.0", + "type_version": "1.0.0", + "properties": { + "applicableResources": { + "type": "list", + "required": true, + "entry_schema": { + "type": "string", + "constraints": [ + { + "valid_values": [ + "any", + "all" + ] + } + ] + } + }, + "affinityProperties": { + "type": "policy.data.affinityProperties_properties", + "required": true + } + } + } + }, + "data_types": { + "policy.data.affinityProperties_properties": { + "derived_from": "tosca.nodes.Root", + "version": "1.0.0", + "properties": { + "qualifier": { + "type": "string", + "constraints": [ + { + "valid_values": [ + "same", + "different" + ] + } + ] + }, + "category": { + "type": "string", + "required": true + } + } + } + } +}
\ No newline at end of file diff --git a/applications/optimization/src/test/resources/onap.policies.optimization.DistancePolicy-1.0.0.json b/applications/optimization/src/test/resources/onap.policies.optimization.DistancePolicy-1.0.0.json new file mode 100644 index 00000000..1b74c356 --- /dev/null +++ b/applications/optimization/src/test/resources/onap.policies.optimization.DistancePolicy-1.0.0.json @@ -0,0 +1,89 @@ +{ + "tosca_definitions_version": "tosca_simple_yaml_1_0_0", + "policy_types": { + "onap.policies.optimization.DistancePolicy": { + "derived_from": "onap.policies.Optimization", + "version": "1.0.0", + "properties": { + "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, + "entry_schema": { + "type": "policy.data.distance_properties" + } + } + } + }, + "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": [ + "<", + "<=", + "\n", + ">=", + "=" + ] + } + ] + } + }, + "unit": { + "type": "list", + "required": true, + "entry_schema": { + "type": "string", + "constraints": [ + { + "valid_values": [ + "km" + ] + } + ] + } + } + } + } + } +}
\ No newline at end of file diff --git a/applications/optimization/src/test/resources/onap.policies.optimization.SubscriberPolicy-1.0.0.json b/applications/optimization/src/test/resources/onap.policies.optimization.SubscriberPolicy-1.0.0.json new file mode 100644 index 00000000..a239d829 --- /dev/null +++ b/applications/optimization/src/test/resources/onap.policies.optimization.SubscriberPolicy-1.0.0.json @@ -0,0 +1,43 @@ +{ + "tosca_definitions_version": "tosca_simple_yaml_1_0_0", + "policy_types": { + "onap.policies.optimization.SubscriberPolicy": { + "derived_from": "onap.policies.Optimization", + "version": "1.0.0", + "properties": { + "subscriberProperties": { + "type": "policy.data.subscriberProperties_properties", + "required": true + } + } + } + }, + "data_types": { + "policy.data.subscriberProperties_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" + } + } + } + } + } +}
\ No newline at end of file diff --git a/applications/optimization/src/test/resources/vCPE.policies.optimization.input.tosca.yaml b/applications/optimization/src/test/resources/vCPE.policies.optimization.input.tosca.yaml index 2d21a571..80888149 100644 --- a/applications/optimization/src/test/resources/vCPE.policies.optimization.input.tosca.yaml +++ b/applications/optimization/src/test/resources/vCPE.policies.optimization.input.tosca.yaml @@ -1,91 +1,175 @@ tosca_definitions_version: tosca_simple_yaml_1_0_0 topology_template: policies: - - - OSDF_CASABLANCA.Affinity_vCPE_1: + - + OSDF_CASABLANCA.Affinity_Default: type: onap.policies.optimization.AffinityPolicy version: 1.0.0 + type_version: 1.0.0 metadata: - policy-id: OSDF_CASABLANCA.Affinity_vCPE_1 + policy-id: OSDF_CASABLANCA.Affinity_Default policy-version: 1 properties: + scope: [] + services: [] + resources: [] + geography: [US] identity: affinity_vCPE - policyScope: [vCPE, US, INTERNATIONAL, ip, vGMuxInfra, vG] - affinityProperties: + applicableResources: any + affinityProperties: qualifier: same category: complex - policyType: zone + - + OSDF_CASABLANCA.Affinity_vCPE_0: + type: onap.policies.optimization.AffinityPolicy + version: 1.0.0 + type_version: 1.0.0 + metadata: + policy-id: OSDF_CASABLANCA.Affinity_vCPE_0 + policy-version: 1 + properties: + scope: [] + services: [vCPE] + resources: [] + geography: [US] + identity: affinity_vCPE + applicableResources: any + affinityProperties: + qualifier: different + category: complex + - + OSDF_CASABLANCA.Affinity_vCPE_1: + type: onap.policies.optimization.AffinityPolicy + version: 1.0.0 + type_version: 1.0.0 + metadata: + policy-id: OSDF_CASABLANCA.Affinity_vCPE_1 + policy-version: 1 + properties: + scope: [gold, platinum] + services: [vCPE] resources: [vGMuxInfra, vG] + geography: [US, INTERNATIONAL] + identity: affinity_vCPE + applicableResources: any + affinityProperties: + qualifier: same + category: availabilityZone - OSDF_CASABLANCA.Capacity_vG_1: type: onap.policies.optimization.Vim_fit version: 1.0.0 + type_version: 1.0.0 metadata: policy-id: OSDF_CASABLANCA.Capacity_vG_1 policy-version: 1 properties: - identity: capacity_vG - policyScope: [VCPE, US, INTERNATIONAL, ip, vG] + scope: [] + services: [vCPE] resources: [vG] - capacityProperty: + geography: [US, INTERNATIONAL] + identity: capacity_vG + applicableResources: any + capacityProperty: controller: multicloud request: "{\"vCPU\": 10, \"Memory\": {\"quantity\": {\"get_param\": \"REQUIRED_MEM\"}, \"unit\": \"GB\"}, \"Storage\": {\"quantity\": {\"get_param\": \"REQUIRED_DISK\"}, \"unit\": \"GB\"}}" - policyType: vim_fit - applicableResources: any - OSDF_CASABLANCA.Distance_vG_1: type: onap.policies.optimization.DistancePolicy version: 1.0.0 + type_version: 1.0.0 metadata: policy-id: OSDF_CASABLANCA.Distance_vG_1 policy-version: 1 properties: - distanceProperties: + scope: [platinum] + services: [vCPE] + resources: [vG] + geography: [US, INTERNATIONAL] + identity: distance-vG + applicableResources: any + distanceProperties: locationInfo: customer_loc - distance: + distance: value: 1500 operator: "<" unit: km - identity: "distance-vG" - resources: [vG] - policyScope: [vCPE, US, INTERNATIONAL, ip, vG] - policyType: distance_to_location - applicableResources: any - OSDF_CASABLANCA.hpa_policy_vG_1: type: onap.policies.optimization.HpaPolicy version: 1.0.0 + type_version: 1.0.0 metadata: policy-id: OSDF_CASABLANCA.hpa_policy_vG_1 policy-version: 1 properties: + scope: [] + services: [vCPE] resources: [vG] - identity: "hpa-vG" - policyScope: [vCPE, US, INTERNATIONAL, ip, vG] - policyType: hpa - # NONE OF THE FLAVORFEATURES CAME OUT RIGHT + geography: [] + identity: hpa-vG + flavorFeatures: + - + id: vg_1 + type: vnfc + directives: + - type: flavor_directives + attributes: + - attribute_name: flavor_label_vm_01 + attribute_value: "" + flavorProperties: + - + hpa-feature: basicCapabilities + mandatory: True + architecture: generic + directives: [] + hpa-feature-attributes: + - hpa-attribute-key: numVirtualCpu + hpa-attribute-value: 6 + operator: ['>='] + unit: "" + - hpa-attribute-key: virtualMemSize + hpa-attribute-value: 4 + operator: ['<='] + unit: "" + - + hpa-feature: ovsDpdk + mandatory: False + architecture: generic + directives: [] + hpa-feature-attributes: + - hpa-attribute-key: dataProcessingAccelerationLibrary + hpa-attribute-value: ovsDpdk_version + operator: [=] + unit: "" - OSDF_CASABLANCA.queryPolicy_vCPE: type: onap.policies.optimization.QueryPolicy version: 1.0.0 + type_version: 1.0.0 metadata: policy-id: OSDF_CASABLANCA.queryPolicy_vCPE policy-version: 1 properties: - queryProperties: - - + scope: [] + services: [vCPE] + resources: [vGMuxInfra, vG] + geography: [US, INTERNATIONAL] + identity: vCPE_Query_Policy + queryProperties: + - attribute: locationId attribute_location: customerLocation value: "" - - + - attribute: id attribute_location: "vpnInfo.vpnId" value: "" - - + - attribute: upstreamBW attribute_location: "vpnInfo.upstreamBW" value: "" - - + - attribute: customerLatitude attribute_location: customerLatitude value: 1.1 @@ -93,45 +177,56 @@ topology_template: attribute: customerLongitude attribute_location: customerLongitude value: 2.2 - serviceName: vCPE - policyScope: [vCPE, US, INTERNATIONAL, ip, vGMuxInfra, vG] - policyType: request_param_query - identity: vCPE_Query_Policy - - OSDF_CASABLANCA.SubscriberPolicy_v1: type: onap.policies.optimization.SubscriberPolicy version: 1.0.0 + type_version: 1.0.0 metadata: policy-id: OSDF_CASABLANCA.SubscriberPolicy_v1 policy-version: 1 properties: + scope: [] + services: [vCPE] identity: subscriber_vCPE - policyScope: [vCPE, subscriber_x, subscriber_y, subscriberPolicy] - properties: + properties: subscriberName: [subscriber_x, subscriber_y] - subscriberRole: ["PVT Homing"] + subscriberRole: [platinum] + provStatus: [CAPPED] + - + OSDF_CASABLANCA.SubscriberPolicy_v2: + type: onap.policies.optimization.SubscriberPolicy + version: 1.0.0 + type_version: 1.0.0 + metadata: + policy-id: OSDF_CASABLANCA.SubscriberPolicy_v2 + policy-version: 1 + properties: + scope: [] + services: [vCPE] + identity: subscriber_vCPE + properties: + subscriberName: [subscriber_a, subscriber_b] + subscriberRole: [gold] provStatus: [CAPPED] - policyType: subscriberPolicy - serviceName: vCPE - OSDF_CASABLANCA.vnfPolicy_vG: type: onap.policies.optimization.VnfPolicy version: 1.0.0 + type_version: 1.0.0 metadata: policy-id: OSDF_CASABLANCA.vnfPolicy_vG policy-version: 1 properties: - identity: vnf_vG - policyScope: [vCPE, US, INTERNATIONAL, ip, vG] - policyType: vnfPolicy + scope: [] + services: [vCPE] resources: [vG] + geography: [US, INTERNATIONAL] + identity: vnf_vG applicableResources: any - vnfProperties: - - + vnfProperties: + - inventoryProvider: aai serviceType: "" - inventoryType: cloud + inventoryType: cloudRegionId customerId: "" - orchestrationStatus: "" - equipmentRole: ""
\ No newline at end of file |