diff options
21 files changed, 436 insertions, 770 deletions
diff --git a/controlloop/common/eventmanager/src/main/resources/META-INF/persistence.xml b/controlloop/common/eventmanager/src/main/resources/META-INF/persistence.xml index e3c4ef946..f007c4951 100644 --- a/controlloop/common/eventmanager/src/main/resources/META-INF/persistence.xml +++ b/controlloop/common/eventmanager/src/main/resources/META-INF/persistence.xml @@ -12,11 +12,11 @@ <property name="eclipselink.ddl-generation" value="create-tables"/> <property name="javax.persistence.jdbc.driver" value="org.mariadb.jdbc.Driver" /> <!-- <property name="javax.persistence.jdbc.url" value="jdbc:mariadb://localhost:7779/policy"/>--> - <property name="javax.persistence.jdbc.url" value="jdbc:mariadb://135.207.129.112:3306/policy"/> + <property name="javax.persistence.jdbc.url" value="jdbc:mariadb://localhost:3306/policy"/> <property name="javax.persistence.jdbc.user" value="root"/> - <property name="javax.persistence.jdbc.password" value="lmpg"/> + <property name="javax.persistence.jdbc.password" value="aaaa"/> <property name="eclipselink.logging.level" value="INFO" /> </properties> </persistence-unit> -</persistence>
\ No newline at end of file +</persistence> diff --git a/controlloop/common/eventmanager/src/test/resources/test.yaml b/controlloop/common/eventmanager/src/test/resources/test.yaml index 1295a9924..e15c8f0e1 100644 --- a/controlloop/common/eventmanager/src/test/resources/test.yaml +++ b/controlloop/common/eventmanager/src/test/resources/test.yaml @@ -1,18 +1,18 @@ controlLoop: version: 1.0.0 - controlLoopName: ControlLoop-vUSP-vCTS-cbed919f-2212-4ef7-8051-fe6308da1bda + controlLoopName: ControlLoop-vService-cbed919f-2212-4ef7-8051-fe6308da1bda services: - - serviceName: vUSP + - serviceName: service1 resources: - - resourceName: vCTS + - resourceName: resource1 resourceType: VF - - resourceName: vCOM + - resourceName: resource2 resourceType: VF - - resourceName: vRAR + - resourceName: resource3 resourceType: VF - - resourceName: vLCS + - resourceName: resource4 resourceType: VF - - resourceName: v3CB + - resourceName: resource5 resourceType: VF trigger_policy: unique-policy-id-1-restart timeout: 60 diff --git a/controlloop/common/guard/src/main/resources/META-INF/persistence.xml b/controlloop/common/guard/src/main/resources/META-INF/persistence.xml index babf94b01..74edd566e 100644 --- a/controlloop/common/guard/src/main/resources/META-INF/persistence.xml +++ b/controlloop/common/guard/src/main/resources/META-INF/persistence.xml @@ -12,11 +12,11 @@ <property name="eclipselink.ddl-generation" value="create-tables"/> <property name="javax.persistence.jdbc.driver" value="org.mariadb.jdbc.Driver" /> <!-- <property name="javax.persistence.jdbc.url" value="jdbc:mariadb://localhost:7779/policy"/>--> - <property name="javax.persistence.jdbc.url" value="jdbc:mariadb://135.207.129.112:3306/policy"/> + <property name="javax.persistence.jdbc.url" value="jdbc:mariadb://localhost:3306/policy"/> <property name="javax.persistence.jdbc.user" value="root"/> - <property name="javax.persistence.jdbc.password" value="lmpg"/> + <property name="javax.persistence.jdbc.password" value="aaaa"/> <property name="eclipselink.logging.level" value="INFO" /> </properties> </persistence-unit> -</persistence>
\ No newline at end of file +</persistence> diff --git a/controlloop/common/policy-yaml/README- v1.0.0.md b/controlloop/common/policy-yaml/README- v1.0.0.md index 3ef70dea9..65b11adb2 100644 --- a/controlloop/common/policy-yaml/README- v1.0.0.md +++ b/controlloop/common/policy-yaml/README- v1.0.0.md @@ -1,8 +1,8 @@ -ECOMP Control Loop Policy +ONAP Control Loop Policy v1.0.0 A control loop policy is a YAML specification for creating and chaining policies for ControlLoop. -1610 ECOMP Control Loop Policy Features: +Features of ONAP Control Loop Policy v1.0.0: * A single DCAE Closed Loop Event is the trigger for the overall Control Loop Policy * APPC is the only Actor that Policy will interact with. The operations available are: RESTART, REBUILD, MIGRATE. @@ -11,18 +11,18 @@ A control loop policy is a YAML specification for creating and chaining policies * If there are zero Operational Policies, i.e. no automated action is to be taken, then the policy is an Open Loop policy. * Operational Policies can have retries and timeout's given to control how they are processed. -This SDK helps build the YAML specification for 1610 ECOMP Control Loop Polices. +This SDK helps build the YAML specification for ONAP Control Loop Policy v1.0.0. # Create Builder Object -To begin with, the ControlLoopPolicyBuilder.Factory class has static methods that one should use to begin building a Control Loop Policy. It will return a [ControlLoopPolicyBuilder object](src/main/java/com/att/ecomp/policy/controlloop/policy/builder/ControlLoopPolicyBuilder.java) that can then be used to continue to build and define the Control Loop Policy. +To begin with, the ControlLoopPolicyBuilder.Factory class has static methods that one should use to begin building a Control Loop Policy. It will return a [ControlLoopPolicyBuilder object](src/main/java/org/onap/policy/controlloop/policy/builder/ControlLoopPolicyBuilder.java) that can then be used to continue to build and define the Control Loop Policy. ```java ControlLoopPolicyBuilder builder = ControlLoopPolicyBuilder.Factory.buildControlLoop( UUID.randomUUID().toString(), 2400, - new Resource("vCTS", ResourceType.VF), - new Service("vUSP") + new Resource("sampleResource", ResourceType.VF), + new Service("sampleService") ); ``` @@ -43,7 +43,7 @@ After the name of the Control Loop and the resource and services have been defin # Chain Operational Policies Together Using Operational Results -Operational Policies are chained together using the results of each Operational Policy. The results are defined in [PolicyResult.java](src/main/java/com/att/ecomp/policy/controlloop/policy/PolicyResult.java). To create an Operational Policy that is tied to the result of another, use the +Operational Policies are chained together using the results of each Operational Policy. The results are defined in [PolicyResult.java](src/main/java/org/onap/policy/controlloop/policy/PolicyResult.java). To create an Operational Policy that is tied to the result of another, use the setPolicyForPolicyResult() method. ```java @@ -65,7 +65,7 @@ An Operational Policy MUST have place to go for every one of its results. By def # Build the YAML Specification -When finished defining the Policies, build the specification and analyze the [Results.java](src/main/java/com/att/ecomp/policy/controlloop/policy/builder/Results.java) +When finished defining the Policies, build the specification and analyze the [Results.java](src/main/java/org/onap/policy/controlloop/policy/builder/Results.java) ```java Results results = builder.buildSpecification(); @@ -79,15 +79,10 @@ When finished defining the Policies, build the specification and analyze the [Re } ``` -# Sample Code - -Sample code is available in this project: https://codecloud.web.att.com/projects/ST_POLICY/repos/com.att.ecomp.policy.controlloop.sample/browse - - # Use the YAML Specification to call the Create Policy API -Now that you have a valid YAML specification, call the createPolicy API via the ECOMP Policy Platform API. +Now that you have a valid YAML specification, call the createPolicy API via the ONAP Policy Platform API. # YAML Specification @@ -107,34 +102,34 @@ The YAML specification has 2 sections to it: [controlLoop](#controlloop-object) ### resource Object -This object was derived via ASDC Catalog API and ASDC Data Dictionary (POC) in an attempt to use common naming conventions. +This object was derived via SDC Catalog API and SDC Data Dictionary (POC) in an attempt to use common naming conventions. | Field Name | Type | Required | Description | | ------------- |:-------------:| -----------| ------------:| -| resourceInvariantUUID | string - UUID | optional | via ASDC, the unique ID for the resource version | -| resourceName | string | required if NO resourceUUID available | Name of the resource, ideally from ASDC catalog. But if not available, use well-known name. | -| resourceType | string | optional | Use values defined by ASDC: VF, VFC, VL, CP. | -| resourceUUID | string - UUID | required IF available, else populate resourceName | Unique ID for the resource as assigned via ASDC. -| resourceVersion | string | optional | string version of the resource via ASDC catalog +| resourceInvariantUUID | string - UUID | optional | via SDC, the unique ID for the resource version | +| resourceName | string | required if NO resourceUUID available | Name of the resource, ideally from SDC catalog. But if not available, use well-known name. | +| resourceType | string | optional | Use values defined by SDC: VF, VFC, VL, CP. | +| resourceUUID | string - UUID | required IF available, else populate resourceName | Unique ID for the resource as assigned via SDC. +| resourceVersion | string | optional | string version of the resource via SDC catalog -Given in 1610 the ASDC catalog is not fully available and resources have not been defined yet, use resourceName. Eg. F5FW +SDC catalog is not fully available and resources have not been defined yet, use resourceName. Eg. vFW ### service Object -This object was derived via ASDC Catalog API and ASDC Data Dictionary (POC) in an attempt to use common naming conventions. +This object was derived via SDC Catalog API and SDC Data Dictionary (POC) in an attempt to use common naming conventions. | Field Name | Type | Required | Description | | ------------- |:-------------:| -----------| ------------:| -| serviceInvariantUUID | string - UUID | optional | via ASDC catalog, the unique ID for the service version | -| serviceName | string | required if NO serviceUUID available | Name of the service, ideally from ASDC catalog. But if not available, use well-known name. | -| serviceUUID | string - UUID | required IF available, else populate serviceName | Unique ID fort he service as assigned via ASDC -| serviceVersion | string | optional | string version of the service via ASDC catalog +| serviceInvariantUUID | string - UUID | optional | via SDC catalog, the unique ID for the service version | +| serviceName | string | required if NO serviceUUID available | Name of the service, ideally from SDC catalog. But if not available, use well-known name. | +| serviceUUID | string - UUID | required IF available, else populate serviceName | Unique ID fort he service as assigned via SDC +| serviceVersion | string | optional | string version of the service via SDC catalog -Given in 1610 the ASDC catalog is not fully available and some services have not been defined yet, use resourceName. Eg. vUSP, vSCP, trinity. +SDC catalog is not fully available and some services have not been defined yet, use serviceName. Eg. vLB. ### pnf Object -This object is used for a physical network function. In the case of 1610, eNodeB is the use case supported. Expect this object to change in the future when ECOMP Policy fully integrates with A&AI. +This object is used for a physical network function. Expect this object to change in the future when ONAP Policy fully integrates with A&AI. | Field Name | Type | Required | Description | | ------------- |:-------------:| -----------| ------------:| @@ -148,7 +143,7 @@ The policies section is an array of [Policy objects](#policy-object). ### Policy Object -This is an Operation Policy. It is used to instruct an actor (eg. APPC) to invoke a recipe (eg. "Restart") on a target entity (eg. a "VM"). For 1610, there are 2 actors: APPC and RAN. An operation is simply defined as performing a recipe (or operation) on an actor. +This is an Operation Policy. It is used to instruct an actor (eg. APPC) to invoke a recipe (eg. "Restart") on a target entity (eg. a "VM"). An operation is simply defined as performing a recipe (or operation) on an actor. | Field Name | Type | Required | Description | | ------------- |:-------------:| -----------| ------------:| @@ -168,62 +163,29 @@ This is an Operation Policy. It is used to instruct an actor (eg. APPC) to invok Every Operational Policy MUST have a place to go for every possible result (success, failure, failure_retries, failure_timeout, failure_exception). By default, all the results are final results. -## Examples of YAML Control Loops for 1610 +## Examples of YAML Control Loops v1.0.0 -[1607-F5](src/test/resources/v1.0.0/policy_vSCP_F5_1610.yaml) -[1610-vUSP](src/test/resources/v1.0.0/policy_vUSP_1610.yaml) -[1610-Open-Loop](src/test/resources/v1.0.0/policy_OpenLoop_1610.yaml) -[1610-vProbes](src/test/resources/v1.0.0/policy_vProbes_1610.yaml) -[VNF-with-Multiple-Services](src/test/resources/v1.0.0/policy_Test_MultipleService.yaml) +[vService](src/test/resources/v1.0.0/policy_vService.yaml) +[Open-Loop](src/test/resources/v1.0.0/policy_OpenLoop.yaml) -### 1607 F5 -``` -controlLoop: - version: 1.0.0 - controlLoopName: ClosedLoop-FRWL-SIG-d925ed73-8231-4d02-9545-db4e101f88f8 - services: - - serviceName: vSCP - - serviceName: trinity - resources: - - resourceName: F5FW - resourceType: VF - trigger_policy: unique-policy-id-1-restart - timeout: 1200 - -policies: - - id: unique-policy-id-1-restart - name: Restart Policy - description: - actor: APPC - recipe: Restart - target: VM - retry: 2 - timeout: 300 - success: final_success - failure: final_failure - failure_timeout: final_failure_timeout - failure_retries: final_failure_retries - failure_exception: final_failure_exception -``` - -### 1610 vUSP +### vService ``` controlLoop: version: 1.0.0 - controlLoopName: ControlLoop-vUSP-vCTS-cbed919f-2212-4ef7-8051-fe6308da1bda + controlLoopName: ControlLoop-vService-cbed919f-2212-4ef7-8051-fe6308da1bda services: - - serviceName: vUSP + - serviceName: service1 resources: - - resourceName: vCTS + - resourceName: resource1 resourceType: VF - - resourceName: vCOM + - resourceName: resource2 resourceType: VF - - resourceName: vRAR + - resourceName: resource3 resourceType: VF - - resourceName: vLCS + - resourceName: resource4 resourceType: VF - - resourceName: v3CB + - resourceName: resource5 resourceType: VF trigger_policy: unique-policy-id-1-restart timeout: 1200 @@ -273,84 +235,25 @@ policies: ``` -### 1610 Open Loop +### Open Loop ``` controlLoop: version: 1.0.0 controlLoopName: ControlLoop-Open-fac4ae3d-c3f5-4bab-8e54-0a8581ede132 services: - - serviceName: Service + - serviceName: service1 resources: - resourceType: VF - resourceName: Example + resourceName: resource1 trigger_policy: final_openloop timeout: 0 policies: ``` -### 1610 vProbes -``` -controlLoop: - version: 1.0.0 - controlLoopName: ControlLoop-vProbes-41aba939-9a93-4535-b193-973c68fc8763 - services: - resources: - - resourceName: vProbes - resourceType: VF - trigger_policy: unique-policy-id-1-restart - timeout: 600 - -policies: - - id: unique-policy-id-1-restart - name: Restart Policy - description: - actor: APPC - recipe: Restart - target: VM - retry: 2 - timeout: 300 - success: final_success - failure: final_failure - failure_timeout: final_failure_timeout - failure_retries: final_failure_retries - failure_exception: final_failure_exception - -``` - -### VNF with Multiple Services -``` -controlLoop: - version: 1.0.0 - controlLoopName: ClosedLoop-FRWL-SIG-d925ed73-8231-4d02-9545-db4e101f88f8 - services: - - serviceName: vSCP - - serviceName: vSBG - resources: - - resourceName: F5FW - resourceType: VF - trigger_policy: unique-policy-id-1-restart - timeout: 1200 - -policies: - - id: unique-policy-id-1-restart - name: Restart Policy - description: - actor: APPC - recipe: Restart - target: VM - retry: 2 - timeout: 300 - success: final_success - failure: final_failure - failure_timeout: final_failure_timeout - failure_retries: final_failure_retries - failure_exception: final_failure_exception - -``` # Control Loop Final Results Explained -A Control Loop Policy has the following set of final results, as defined in [FinalResult.java](src/main/java/com/att/ecomp/policy/controlloop/policy/FinalResult.java). A final result indicates when a Control Loop Policy has finished execution and is finished processing a Closed Loop Event. All paths must lead to a Final Result. +A Control Loop Policy has the following set of final results, as defined in [FinalResult.java](src/main/java/org/onap/policy/controlloop/policy/FinalResult.java). A final result indicates when a Control Loop Policy has finished execution and is finished processing a Closed Loop Event. All paths must lead to a Final Result. diff --git a/controlloop/common/policy-yaml/README-guard-v2.0.0.md b/controlloop/common/policy-yaml/README-guard-v2.0.0.md index e0416f486..bda8684e3 100644 --- a/controlloop/common/policy-yaml/README-guard-v2.0.0.md +++ b/controlloop/common/policy-yaml/README-guard-v2.0.0.md @@ -1,21 +1,21 @@ -ECOMP Control Loop Guard +ONAP Control Loop Guard A control loop guard is a YAML specification for creating policy guard for ControlLoop. -1707 ECOMP Control Loop Guard Features: +ONAP Control Loop Guard Features: * The Control Loop Guard can specify the frequency limiter and the blacklist of target entities but not both in the same Guard. * Two parts are incorporated. One is the common guard header including guard version while the other part is a set of guard policies. * The Control Loop Guard should contain at least one guard policies. * Each guard policy is bound to a specific Actor and Recipe. * Each guard policy should have at least one limit constraints which define how the guard policy should be enforced. -* Supported Actors are APPC, MSO, SDNO, SDNR and AOTS. +* Supported Actors are APPC and SO. -This SDK helps build the YAML specification for 1707 ECOMP Control Loop Guard. +This SDK helps build the YAML specification for ONAP Control Loop Guard. # Create Builder Object -To begin with, the ControlLoopGuardBuilder.Factory class has static methods that one should use to begin building a Control Loop Guard. It will return a [ControlLoopGuardBuilder object](src/main/java/com/att/ecomp/policy/controlloop/policy/guard/builder/ControlLoopGuardBuilder.java) that can then be used to continue to build and define the Control Loop Guard. +To begin with, the ControlLoopGuardBuilder.Factory class has static methods that one should use to begin building a Control Loop Guard. It will return a [ControlLoopGuardBuilder object](src/main/java/org/onap/policy/controlloop/policy/guard/builder/ControlLoopGuardBuilder.java) that can then be used to continue to build and define the Control Loop Guard. ```java ControlLoopGuardBuilder builder = ControlLoopGuardBuilder.Factory.buildControlLoopGuard(new Guard()); @@ -53,7 +53,7 @@ The limit constraint defines the details of how to enforce the guard policy. Eac # Build the YAML Specification -When finished defining the Guard Policies, build the specification and analyze the [Results.java](src/main/java/com/att/ecomp/policy/controlloop/policy/builder/Results.java) +When finished defining the Guard Policies, build the specification and analyze the [Results.java](src/main/java/org/onap/policy/controlloop/policy/builder/Results.java) ```java Results results = builder.buildSpecification(); @@ -67,15 +67,11 @@ When finished defining the Guard Policies, build the specification and analyze t } ``` -# Sample Code - -Sample code is available in this project: https://codecloud.web.att.com/projects/ST_POLICY/repos/com.att.ecomp.policy.controlloop.sample/browse - - # Use the YAML Specification to Generate the XACML Guard Policies -Now that you have a valid YAML specification, call the method in [PolicyGuardYamlToXacml.java](guard/src/main/java/com/att/ecomp/policy/guard/PolicyGuardYamlToXacml.java) to generate the XACML Guard Policies. +Now that you have a valid YAML specification, call the method in [PolicyGuardYamlToXacml.java](guard/src/main/java/org/onap/policy/guard/PolicyGuardYamlToXacml.java) to generate the XACML Guard Policies. + # YAML Specification @@ -119,21 +115,20 @@ The first three attributes define the frequency limiter which means that only a The "duration" parameter should have one of the following values: [5min, 10min, 30min, 1h, 12h, 1d, 5d, 1w, 1mon]. -## Examples of YAML Control Loop Guards for 1707 +## Examples of YAML Control Loop Guards -[1707-vUSP-Guard](src/test/resources/v2.0.0-guard/policy_guard_vUSP_1707_appc.yaml) -[1707-eNodeB-Ericsson-Frequency-Limiter-Guard](template.enodeb/src/test/resources/policy_guard_eNodeB_1707_sdnr_reset.yaml) -[1707-eNodeB-Ericsson-Blacklist-Guard](template.enodeb/src/test/resources/policy_guard_vUSP_1707_sdnr_reset_blacklist.yaml) -[OpenECOMP-vDNS-Guard](src/test/resources/v2.0.0-guard/policy_guard_OpenECOMP_demo_vDNS.yaml) +[vService-Frequency-Limiter-Guard](src/test/resources/v2.0.0-guard/policy_guard_appc_restart.yaml) +[vService-Blacklist-Guard](src/test/resources/v2.0.0-guard/policy_guard_blacklist.yaml) +[ONAP-vDNS-Guard](src/test/resources/v2.0.0-guard/policy_guard_ONAP_demo_vDNS.yaml) -### 1707 vUSP Guard +### vService Frequency Limiter Guard ``` guard: version: 2.0.0 guards: - - id: unique_guard_vUSP_1 + - id: unique_guard_vService_frequency_limiter name: APPC 5 Restart description: We only allow 5 restarts over 15 minute window during the day time hours (i.e. avoid midnight to 5am) @@ -147,57 +142,39 @@ guards: arg3: PT24H ``` -### 1707 eNodeB Ericsson Frequency Limiter Guard -``` -guard: - version: 2.0.0 -guards: - - id: unique_guard_eNodeB_Ericsson - name: SDNR 1 Reset - description: | - We only allow 1 reset over 24 hour window - actor: SDNR - recipe: Reset - limit_constraints: - - num: 100 - duration: 1d - time_in_range: - arg2: 00:00:00-05:00 - arg3: 23:59:59-05:00 -``` - -### 1707 eNodeB Ericsson Blacklist Guard +### vService Blacklist Guard ``` guard: version: 2.0.0 guards: - - id: unique_guard_eNodeB_Ericsson_Blacklist - name: SDNR Reset Blacklist + - id: unique_guard_vService_blacklist + name: APPC Restart Blacklist description: | We deny restart of the blacklisted targets (avoid midnight to 5am) actor: APPC - recipe: Reset + recipe: Restart limit_constraints: - blacklist: - - HNVJAL22_DMH1_U_L - - MNYKAQ35_DMH1_U_L + - TargetName1 + - TargetName2 time_in_range: arg2: 00:00:00-05:00 arg3: 23:59:59-05:00 ``` -### OpenECOMP vDNS Guard + +### ONAP vDNS Guard ``` guard: version: 2.0.0 guards: - id: unique_guard_ONAP_vDNS_1 - name: MSO Spinup + name: SO Spinup description: We only spin up 1 instance over a 10 minute window - actor: MSO + actor: SO recipe: VF Module Create limit_constraints: - num: 1 diff --git a/controlloop/common/policy-yaml/README-v2.0.0.md b/controlloop/common/policy-yaml/README-v2.0.0.md index eadaf658a..4450b52fb 100644 --- a/controlloop/common/policy-yaml/README-v2.0.0.md +++ b/controlloop/common/policy-yaml/README-v2.0.0.md @@ -1,10 +1,10 @@ -ECOMP Control Loop Policy v2.0.0 +ONAP Control Loop Policy v2.0.0 A control loop policy is a YAML specification for creating and chaining policies for ControlLoop. -1707 ECOMP Control Loop Policy Features: +Features of ONAP Control Loop Policy v2.0.0: -* Backward compatible with 1610 ECOMP Control Loop Policy +* Backward compatible with ONAP Control Loop Policy v1.0.0 * A single DCAE Closed Loop Event is the trigger for the overall Control Loop Policy. * An overall timeout for the Control Loop Policy must be provided. * An abatement flag indicating whether Policy will receive abatement event for the Control Loop could be provided. @@ -17,36 +17,25 @@ A control loop policy is a YAML specification for creating and chaining policies | Actor | Recipe | Target | Payload | | -------------|:---------------------------:| ---------| ------------:| -| APPC | Restart | VM | AICVServerSelfLink, AICIdentity | -| APPC | Rebuild | VM | AICVServerSelfLink, AICIdentity | -| APPC | Migrate | VM | AICVServerSelfLink, AICIdentity | -| APPC | ModifyConfig | VFC | generic-vnf.vnf-id | -| MSO | VF Module Create | VFC | optional | -| SDNO | health-diagnostic-type | VM | health-diagnostic-code, health-diagnostic-code-parameters | -| SDNO | health-diagnostic | VM | optional | -| SDNO | health-diagnostic-history | VM | optional | -| SDNO | health-diagnostic-commands | VM | optional | -| SDNO | health-diagnostic-aes | VM | optional | -| SDNR | Reset | PNF | optional | -| AOTS | checkMaintenanceWindow | VM | optional | -| AOTS | checkENodeBTicketHours | VM | timeWindow | -| AOTS | checkEquipmentStatus | VM | optional | -| AOTS | checkEimStatus | VM | optional | - - - -This SDK helps build the YAML specification for 1707 ECOMP Control Loop Polices. +| APPC | Restart | VM | CloudVServerSelfLink, CloudIdentity | +| APPC | Rebuild | VM | CloudVServerSelfLink, CloudIdentity | +| APPC | Migrate | VM | CloudVServerSelfLink, CloudIdentity | +| APPC | ModifyConfig | VNF | generic-vnf.vnf-id | +| SO | VF Module Create | VFC | optional | + + +This SDK helps build the YAML specification for ONAP Control Loop Policy v2.0.0. # Create Builder Object -To begin with, the ControlLoopPolicyBuilder.Factory class has static methods that one should use to begin building a Control Loop Policy. It will return a [ControlLoopPolicyBuilder object](src/main/java/com/att/ecomp/policy/controlloop/policy/builder/ControlLoopPolicyBuilder.java) that can then be used to continue to build and define the Control Loop Policy. +To begin with, the ControlLoopPolicyBuilder.Factory class has static methods that one should use to begin building a Control Loop Policy. It will return a [ControlLoopPolicyBuilder object](src/main/java/org/onap/policy/controlloop/policy/builder/ControlLoopPolicyBuilder.java) that can then be used to continue to build and define the Control Loop Policy. ```java ControlLoopPolicyBuilder builder = ControlLoopPolicyBuilder.Factory.buildControlLoop( UUID.randomUUID().toString(), 2400, - new Resource("vCTS", ResourceType.VF), - new Service("vUSP") + new Resource("sampleResource", ResourceType.VF), + new Service("sampleService") ); ``` @@ -76,7 +65,7 @@ After the trigger policy, the name, the resource(s) and services of the Control # Chain Operational Policies Together Using Operational Results -Operational Policies are chained together using the results of each Operational Policy. The results are defined in [PolicyResult.java](src/main/java/com/att/ecomp/policy/controlloop/policy/PolicyResult.java). To create an Operational Policy that is tied to the result of another, use the +Operational Policies are chained together using the results of each Operational Policy. The results are defined in [PolicyResult.java](src/main/java/org/onap/policy/controlloop/policy/PolicyResult.java). To create an Operational Policy that is tied to the result of another, use the setPolicyForPolicyResult() method. ```java @@ -102,7 +91,7 @@ An Operational Policy MUST have place to go for every one of its results. By def # Build the YAML Specification -When finished defining the Policies, build the specification and analyze the [Results.java](src/main/java/com/att/ecomp/policy/controlloop/policy/builder/Results.java) +When finished defining the Policies, build the specification and analyze the [Results.java](src/main/java/org/onap/policy/controlloop/policy/builder/Results.java) ```java Results results = builder.buildSpecification(); @@ -116,15 +105,10 @@ When finished defining the Policies, build the specification and analyze the [Re } ``` -# Sample Code - -Sample code is available in this project: https://codecloud.web.att.com/projects/ST_POLICY/repos/com.att.ecomp.policy.controlloop.sample/browse - - # Use the YAML Specification to call the Create Policy API -Now that you have a valid YAML specification, call the createPolicy API via the ECOMP Policy Platform API. +Now that you have a valid YAML specification, call the createPolicy API via the ONAP Policy Platform API. # YAML Specification @@ -146,32 +130,32 @@ The YAML specification has 2 sections to it: [controlLoop](#controlloop-object) ### resource Object -This object was derived via ASDC Catalog API and ASDC Data Dictionary (POC) in an attempt to use common naming conventions. +This object was derived via SDC Catalog API and SDC Data Dictionary (POC) in an attempt to use common naming conventions. | Field Name | Type | Required | Description | | ------------- |:-------------:| -----------| ------------:| -| resourceInvariantUUID | string - UUID | optional | via ASDC, the unique ID for the resource version | -| resourceName | string | required if NO resourceUUID available | Name of the resource, ideally from ASDC catalog. But if not available, use well-known name. | -| resourceType | string | optional | Use values defined by ASDC: VF, VFC, VL, CP. | -| resourceUUID | string - UUID | required IF available, else populate resourceName | Unique ID for the resource as assigned via ASDC. -| resourceVersion | string | optional | string version of the resource via ASDC catalog +| resourceInvariantUUID | string - UUID | optional | via SDC, the unique ID for the resource version | +| resourceName | string | required if NO resourceUUID available | Name of the resource, ideally from SDC catalog. But if not available, use well-known name. | +| resourceType | string | optional | Use values defined by SDC: VF, VFC, VL, CP. | +| resourceUUID | string - UUID | required IF available, else populate resourceName | Unique ID for the resource as assigned via SDC. +| resourceVersion | string | optional | string version of the resource via SDC catalog ### service Object -This object was derived via ASDC Catalog API and ASDC Data Dictionary (POC) in an attempt to use common naming conventions. +This object was derived via SDC Catalog API and SDC Data Dictionary (POC) in an attempt to use common naming conventions. | Field Name | Type | Required | Description | | ---------------:| -------------:| ----------:| ------------:| -| serviceInvariantUUID | string - UUID | optional | via ASDC catalog, the unique ID for the service version | -| serviceName | string | required if NO serviceUUID available | Name of the service, ideally from ASDC catalog. But if not available, use well-known name. | -| serviceUUID | string - UUID | required IF available, else populate serviceName | Unique ID fort he service as assigned via ASDC -| serviceVersion | string | optional | string version of the service via ASDC catalog +| serviceInvariantUUID | string - UUID | optional | via SDC catalog, the unique ID for the service version | +| serviceName | string | required if NO serviceUUID available | Name of the service, ideally from SDC catalog. But if not available, use well-known name. | +| serviceUUID | string - UUID | required IF available, else populate serviceName | Unique ID fort he service as assigned via SDC +| serviceVersion | string | optional | string version of the service via SDC catalog ### pnf Object -This object is used for a physical network function. In the case of 1707, eNodeB is the use case supported. Expect this object to change in the future when ECOMP Policy fully integrates with A&AI. +This object is used for a physical network function. Expect this object to change in the future when ONAP Policy fully integrates with A&AI. | Field Name | Type | Required | Description | | ------------- |:-------------:| -----------| ------------:| @@ -185,7 +169,7 @@ The policies section is an array of [Policy objects](#policy-object). ### Policy Object -This is an Operation Policy. It is used to instruct an actor (eg. APPC) to invoke a recipe (eg. "Restart") on a target entity (eg. a "VM"). For 1707, there are 5 actors: APPC, MSO, SDNO, SDNR and AOTS. An operation is simply defined as performing a recipe (or operation) on an actor. +This is an Operation Policy. It is used to instruct an actor (eg. APPC) to invoke a recipe (eg. "Restart") on a target entity (eg. a "VM"). An operation is simply defined as performing a recipe (or operation) on an actor. | Field Name | Type | Required | Description | | ------------- |:-------------:| -----------| ------------:| @@ -196,7 +180,7 @@ This is an Operation Policy. It is used to instruct an actor (eg. APPC) to invok | recipe | string | required | Name of recipe to be performed. Example "Restart" | | target | [target](#target-object) object | required | Entity being targeted. Example: VM | | timeout | int | required | Timeout for the actor to perform the recipe. | -| retry | int | optional | Optional number of retries for ECOMP Policy to invoke the recipe on the actor. | +| retry | int | optional | Optional number of retries for ONAP Policy to invoke the recipe on the actor. | | success | string | required | By default, this value should be FINAL_SUCCESS. Otherwise this can be the ID of the operational Policy (included in this specification) to invoke upon successfully completing the recipe on the actor. | failure | string | required | By default, this value should be FINAL_FAILURE. Otherwise this can be the ID of the operational Policy (included in this specification) to invoke upon failure to perform the operation. | | failure_exception | string | required | By default, this value should be FINAL_FAILURE_EXCEPTION. Otherwise this can be the ID of an Operational Policy (included in this specification) to invoke upon an exception occurring while attempting to perform the operation. | @@ -213,34 +197,32 @@ This object is used for defining a target entity of a recipe. | Field Name | Type | Required | Description | | ------------- |:-------------:| -----------| ------------:| | type | enums of VM, PNF and VNC | required | Type of the target. | -| resourceID | string | optional | Resource ID of the target. Should be supplied via ASDC Catalog. | +| resourceID | string | optional | Resource ID of the target. Should be supplied via SDC Catalog. | -## Examples of YAML Control Loops for 1707 +## Examples of YAML Control Loops v2.0.0 -[1707-vUSP](src/test/resources/v2.0.0/policy_vUSP_1707.yaml) -[1707-eNodeB-Ericsson](src/test/resources/v2.0.0/policy_eNodeB_Ericsson_1707.yaml) -[1707-eNodeB-ALU](src/test/resources/v2.0.0/policy_eNodeB_ALU_1707.yaml) -[OpenECOMP-vFirewall](src/test/resources/v2.0.0/policy_OpenECOMP_demo_vFirewall.yaml) -[OpenECOMP-vDNS](src/test/resources/v2.0.0/policy_OpenECOMP_demo_vDNS.yaml) +[vService](src/test/resources/v2.0.0/policy_vService.yaml) +[ONAP-vFirewall](src/test/resources/v2.0.0/policy_ONAP_demo_vFirewall.yaml) +[ONAP-vDNS](src/test/resources/v2.0.0/policy_ONAP_demo_vDNS.yaml) -### 1707 vUSP +### vService ``` controlLoop: version: 2.0.0 - controlLoopName: ControlLoop-vUSP-vCTS-cbed919f-2212-4ef7-8051-fe6308da1bda + controlLoopName: ControlLoop-vService-cbed919f-2212-4ef7-8051-fe6308da1bda services: - - serviceName: vUSP + - serviceName: service1 resources: - - resourceName: vCTS + - resourceName: resource1 resourceType: VFC - - resourceName: vCOM + - resourceName: resource2 resourceType: VFC - - resourceName: vRAR + - resourceName: resource3 resourceType: VFC - - resourceName: vLCS + - resourceName: resource4 resourceType: VFC - - resourceName: v3CB + - resourceName: resource5 resourceType: VFC trigger_policy: unique-policy-id-1-restart timeout: 1200 @@ -256,7 +238,7 @@ policies: type: VM retry: 2 timeout: 300 - success: unique-policy-id-1-healthdiagnostic + success: final_success failure: unique-policy-id-2-rebuild failure_timeout: unique-policy-id-2-rebuild failure_retries: unique-policy-id-2-rebuild @@ -272,7 +254,7 @@ policies: type: VM retry: 0 timeout: 600 - success: unique-policy-id-2-healthdiagnostic + success: final_success failure: unique-policy-id-3-migrate failure_timeout: unique-policy-id-3-migrate failure_retries: unique-policy-id-3-migrate @@ -294,212 +276,11 @@ policies: failure_retries: final_failure_retries failure_exception: final_failure_exception failure_guard: final_failure_guard - - - id: unique-policy-id-1-healthdiagnostic - name: Do SDNO Health Diagnostic - description: - actor: SDNO - recipe: health-diagnostic - payload: - health-diagnostic-code: HC99 - health-diagnostic-code-parameters: "{\"Junk\":\"--version\",\"Junk2\":\"--help\"}" - target: - type: VM - retry: 0 - timeout: 600 - success: final_success - failure: unique-policy-id-2-rebuild - failure_timeout: unique-policy-id-2-rebuild - failure_retries: unique-policy-id-2-rebuild - failure_exception: final_failure_exception - failure_guard: unique-policy-id-2-rebuild - - - id: unique-policy-id-2-healthdiagnostic - name: Do SDNO Health Diagnostic - description: - actor: SDNO - recipe: health-diagnostic - payload: - health-diagnostic-code: HC99 - health-diagnostic-code-parameters: "{\"Junk\":\"--version\",\"Junk2\":\"--help\"}" - target: - type: VM - retry: 0 - timeout: 600 - success: final_success - failure: final_failure - failure_timeout: final_failure_timeout - failure_retries: final_failure_retries - failure_exception: final_failure_exception - failure_guard: final_failure_guard -``` - -### 1707 eNodeB Ericsson -``` -controlLoop: - version: 2.0.0 - controlLoopName: ControlLoop-eNodeB-Ericsson-0732e76a-4228-42d1-8185-972510be388c - services: - resources: - pnf: - PNFName: eNodeB.Ericsson - trigger_policy: unique-policy-id-1-check-aots-ticket - timeout: 2400 - -policies: - - id: unique-policy-id-1-check-aots-ticket - name: Check AOTS CTS - description: Discard sleeping cell based on the new signature if it appears in recent CTS tickets - actor: AOTS - recipe: checkENodeBTicketHours - payload: - timeWindow: 5 - retry: 2 - timeout: 300 - success: unique-policy-id-2-check-aots-cts - failure: final_failure - failure_timeout: final_failure_timeout - failure_retries: final_failure_retries - failure_exception: final_failure_exception - failure_guard: final_failure_guard - - - id: unique-policy-id-2-check-aots-cts - name: Check AOTS CTS Equipment - description: Discard sleeping cell based on the new signature if it is not active in CTS equipment data - actor: AOTS - recipe: checkEquipmentStatus - payload: - retry: 2 - timeout: 300 - success: unique-policy-id-3-check-aots-eim - failure: final_failure - failure_timeout: final_failure_timeout - failure_retries: final_failure_retries - failure_exception: final_failure_exception - failure_guard: final_failure_guard - - - id: unique-policy-id-3-check-aots-eim - name: Check AOTS EIM_RT - description: Discard sleeping cell based on the new signature if it appears in EIM_RT data - actor: AOTS - recipe: checkEimStatus - retry: 2 - timeout: 300 - success: unique-policy-id-3-check-aots-maintenance - failure: final_failure - failure_timeout: final_failure_timeout - failure_retries: final_failure_retries - failure_exception: final_failure_exception - failure_guard: final_failure_guard - - - id: unique-policy-id-4-check-aots-maintenance - name: Check AOTS MAINTENANCE - description: Discard sleeping cell based on the new signature if it appears in Maintenance - actor: AOTS - recipe: checkMaintenanceWindow - retry: 2 - timeout: 300 - success: unique-policy-id-5-sdnr-reset - failure: final_failure - failure_timeout: final_failure_timeout - failure_retries: final_failure_retries - failure_exception: final_failure_exception - failure_guard: final_failure_guard - - - id: unique-policy-id-5-sdnr-reset - name: Have SDNR Reset - description: SDNR should now reset this sleeper - actor: SDNR - recipe: Reset - operationsAccumulateParams: - period: 15m - limit: 5 - retry: 2 - timeout: 300 - success: final_success - failure: final_failure - failure_timeout: final_failure_timeout - failure_retries: final_failure_retries - failure_exception: final_failure_exception - failure_guard: final_failure_guard -``` - -### 1707 eNodeB ALU ``` -controlLoop: - version: 2.0.0 - controlLoopName: ControlLoop-eNodeB-ALU-3ee91181-6f05-4cd3-8437-cad5f58653ca - services: - resources: - pnf: - PNFName: eNodeB.ALU - trigger_policy: unique-policy-id-1-check-aots - timeout: 2400 - -policies: - - id: unique-policy-id-1-check-aots - name: Check AOTS CTS - description: Discard sleeping cell based on the new signature if it appears in recent CTS tickets - actor: AOTS - recipe: checkENodeBTicketHours - payload: - timeWindow: 5 - retry: 2 - timeout: 300 - success: unique-policy-id-2-check-aots-cts - failure: final_failure - failure_timeout: final_failure_timeout - failure_retries: final_failure_retries - failure_exception: final_failure_exception - failure_guard: final_failure_guard - - id: unique-policy-id-2-check-aots-cts - name: Check AOTS CTS Equipment - description: Discard sleeping cell based on the new signature if it is not active in CTS equipment data - actor: AOTS - recipe: checkEquipmentStatus - retry: 2 - timeout: 300 - success: unique-policy-id-3-check-aots-eim - failure: final_failure - failure_timeout: final_failure_timeout - failure_retries: final_failure_retries - failure_exception: final_failure_exception - failure_guard: final_failure_guard - - - id: unique-policy-id-3-check-aots-eim - name: Check AOTS EIM_RT - description: Discard sleeping cell based on the new signature if it appears in EIM_RT data - actor: AOTS - recipe: checkEimStatus - retry: 2 - timeout: 300 - success: unique-policy-id-4-sdnr-reset - failure: final_failure - failure_timeout: final_failure_timeout - failure_retries: final_failure_retries - failure_exception: final_failure_exception - failure_guard: final_failure_guard - - id: unique-policy-id-4-sdnr-reset - name: Have SDNR Reset - description: SDNR should now reset this sleeper - actor: SDNR - recipe: Reset - operationsAccumulateParams: - period: 15m - limit: 5 - retry: 2 - timeout: 300 - success: final_success - failure: final_failure - failure_timeout: final_failure_timeout - failure_retries: final_failure_retries - failure_exception: final_failure_exception - failure_guard: final_failure_guard -``` -### OpenECOMP vFirewall +### ONAP vFirewall ``` controlLoop: version: 2.0.0 @@ -532,7 +313,7 @@ policies: failure_guard: final_failure_guard ``` -### OpenECOMP vDNS +### ONAP vDNS ``` controlLoop: version: 2.0.0 @@ -548,7 +329,7 @@ policies: - id: unique-policy-id-1-scale-up name: Create a new VF Module description: - actor: MSO + actor: SO recipe: VF Module Create target: resourceID: 59a2ee3fB58045feB5a1.nodes.heat.vdns @@ -565,5 +346,5 @@ policies: # Control Loop Final Results Explained -A Control Loop Policy has the following set of final results, as defined in [FinalResult.java](src/main/java/com/att/ecomp/policy/controlloop/policy/FinalResult.java). A final result indicates when a Control Loop Policy has finished execution and is finished processing a Closed Loop Event. All paths must lead to a Final Result. +A Control Loop Policy has the following set of final results, as defined in [FinalResult.java](src/main/java/org/onap/policy/controlloop/policy/FinalResult.java). A final result indicates when a Control Loop Policy has finished execution and is finished processing a Closed Loop Event. All paths must lead to a Final Result. diff --git a/controlloop/common/policy-yaml/src/test/java/org/onap/policy/controlloop/policy/ControlLoopPolicyBuilderTest.java b/controlloop/common/policy-yaml/src/test/java/org/onap/policy/controlloop/policy/ControlLoopPolicyBuilderTest.java index f8ad499f0..90d498a8d 100644 --- a/controlloop/common/policy-yaml/src/test/java/org/onap/policy/controlloop/policy/ControlLoopPolicyBuilderTest.java +++ b/controlloop/common/policy-yaml/src/test/java/org/onap/policy/controlloop/policy/ControlLoopPolicyBuilderTest.java @@ -61,30 +61,30 @@ public class ControlLoopPolicyBuilderTest { // // Test add services // - Service vSCP = new Service("vSCP"); - Service vUSP = new Service("vUSP"); - Service vTrinity = new Service("Trinity"); - builder = builder.addService(vSCP, vUSP, vTrinity); + Service Ser1 = new Service("Ser1"); + Service Ser2 = new Service("Ser2"); + Service Ser3 = new Service("Ser3"); + builder = builder.addService(Ser1, Ser2, Ser3); assertTrue(builder.getControlLoop().services.size() == 3); // // Test remove services // - builder = builder.removeService(vSCP); + builder = builder.removeService(Ser1); assertTrue(builder.getControlLoop().services.size() == 2); builder = builder.removeAllServices(); assertTrue(builder.getControlLoop().services.size() == 0); // // Test add resources // - Resource vCTS = new Resource("vCTS", ResourceType.VF); - Resource vCOM = new Resource("vCTS", ResourceType.VF); - Resource vRAR = new Resource("vCTS", ResourceType.VF); - builder = builder.addResource(vCTS, vCOM, vRAR); + Resource Resrc1 = new Resource("Resrc1", ResourceType.VF); + Resource Resrc2 = new Resource("Resrc1", ResourceType.VF); + Resource Resrc3 = new Resource("Resrc1", ResourceType.VF); + builder = builder.addResource(Resrc1, Resrc2, Resrc3); assertTrue(builder.getControlLoop().resources.size() == 3); // // Test remove resources // - builder = builder.removeResource(vCTS); + builder = builder.removeResource(Resrc1); assertTrue(builder.getControlLoop().resources.size() == 2); builder = builder.removeAllResources(); assertTrue(builder.getControlLoop().resources.size() == 0); @@ -308,7 +308,7 @@ public class ControlLoopPolicyBuilderTest { Policy triggerPolicy = builder.setTriggerPolicy( "Restart the eNodeB", "Upon getting the trigger event, restart the eNodeB", - "SDNR", + "RANController", new Target(TargetType.PNF), "Restart", null, diff --git a/controlloop/common/policy-yaml/src/test/java/org/onap/policy/controlloop/policy/ControlLoopPolicyTest.java b/controlloop/common/policy-yaml/src/test/java/org/onap/policy/controlloop/policy/ControlLoopPolicyTest.java index 9e91dc4d3..555b69282 100644 --- a/controlloop/common/policy-yaml/src/test/java/org/onap/policy/controlloop/policy/ControlLoopPolicyTest.java +++ b/controlloop/common/policy-yaml/src/test/java/org/onap/policy/controlloop/policy/ControlLoopPolicyTest.java @@ -36,54 +36,25 @@ import org.yaml.snakeyaml.constructor.Constructor; public class ControlLoopPolicyTest { - @Test - public void testSDNO() { - this.test("src/test/resources/v1.0.0/policy_SDNO_1702.yaml"); - } @Test public void test() { this.test("src/test/resources/v1.0.0/policy_Test.yaml"); } - - @Test - public void testMultipleService() { - this.test("src/test/resources/v1.0.0/policy_Test_MultipleService.yaml"); - } - - @Test - public void testF5() { - this.test("src/test/resources/v1.0.0/policy_vSCP_F5_1610.yaml"); - } @Test - public void testUSP() { - this.test("src/test/resources/v1.0.0/policy_vUSP_1610.yaml"); + public void testvService1() { + this.test("src/test/resources/v1.0.0/policy_vService.yaml"); } @Test public void testOpenLoop() { - this.test("src/test/resources/v1.0.0/policy_OpenLoop_1610.yaml"); - } - - @Test - public void testvProbes() { - this.test("src/test/resources/v1.0.0/policy_vProbes_1610.yaml"); - } - - @Test - public void test1707() { - this.test("src/test/resources/v2.0.0/policy_vUSP_1707.yaml"); - } - - @Test - public void testeNodeBALU() { - this.test("src/test/resources/v2.0.0/policy_eNodeB_ALU_1707.yaml"); + this.test("src/test/resources/v1.0.0/policy_OpenLoop.yaml"); } @Test - public void testeNodeBEricsson() { - this.test("src/test/resources/v2.0.0/policy_eNodeB_Ericsson_1707.yaml"); + public void testvService2() { + this.test("src/test/resources/v2.0.0/policy_vService.yaml"); } public void test(String testFile) { diff --git a/controlloop/common/policy-yaml/src/test/resources/v1.0.0/policy_OpenLoop_1610.yaml b/controlloop/common/policy-yaml/src/test/resources/v1.0.0/policy_OpenLoop.yaml index 7fd27fa97..7fd27fa97 100644 --- a/controlloop/common/policy-yaml/src/test/resources/v1.0.0/policy_OpenLoop_1610.yaml +++ b/controlloop/common/policy-yaml/src/test/resources/v1.0.0/policy_OpenLoop.yaml diff --git a/controlloop/common/policy-yaml/src/test/resources/v1.0.0/policy_SDNO_1702.yaml b/controlloop/common/policy-yaml/src/test/resources/v1.0.0/policy_SDNO_1702.yaml deleted file mode 100644 index 339950f6f..000000000 --- a/controlloop/common/policy-yaml/src/test/resources/v1.0.0/policy_SDNO_1702.yaml +++ /dev/null @@ -1,26 +0,0 @@ -controlLoop: - version: 1.0.0 - controlLoopName: PoloControlLoop-vPE-248b154b-ff3f-458f-885c-ec290c615714 - services: - - serviceName: vPE - trigger_policy: unique-policy-id-1-healthdianostic - timeout: 600 - -policies: - - id: unique-policy-id-1-healthdiagnostic - name: Do SDNO Health Diagnostic - description: - actor: SDNO - recipe: health-diagnostic - payload: - health-diagnostic-code: HC99 - health-diagnostic-code-parameters: "{\"Junk\":\"--version\",\"Junk2\":\"--help\"}" - target: VM - retry: 0 - timeout: 600 - success: final_success - failure: final_failure - failure_timeout: final_failure_timeout - failure_retries: final_failure_retries - failure_exception: final_failure_exception -
\ No newline at end of file diff --git a/controlloop/common/policy-yaml/src/test/resources/v1.0.0/policy_Test_MultipleService.yaml b/controlloop/common/policy-yaml/src/test/resources/v1.0.0/policy_Test_MultipleService.yaml deleted file mode 100644 index 8ce707729..000000000 --- a/controlloop/common/policy-yaml/src/test/resources/v1.0.0/policy_Test_MultipleService.yaml +++ /dev/null @@ -1,26 +0,0 @@ -controlLoop: - version: 1.0.0 - controlLoopName: ClosedLoop-FRWL-SIG-d925ed73-8231-4d02-9545-db4e101f88f8 - services: - - serviceName: vSCP - - serviceName: vSBG - resources: - - resourceName: F5FW - resourceType: VF - trigger_policy: unique-policy-id-1-restart - timeout: 1200 - -policies: - - id: unique-policy-id-1-restart - name: Restart Policy - description: - actor: APPC - recipe: Restart - target: VM - retry: 2 - timeout: 300 - success: final_success - failure: final_failure - failure_timeout: final_failure_timeout - failure_retries: final_failure_retries - failure_exception: final_failure_exception diff --git a/controlloop/common/policy-yaml/src/test/resources/v1.0.0/policy_vProbes_1610.yaml b/controlloop/common/policy-yaml/src/test/resources/v1.0.0/policy_vProbes_1610.yaml deleted file mode 100644 index 2a5f513ab..000000000 --- a/controlloop/common/policy-yaml/src/test/resources/v1.0.0/policy_vProbes_1610.yaml +++ /dev/null @@ -1,24 +0,0 @@ -controlLoop: - version: 1.0.0 - controlLoopName: ControlLoop-vProbes-41aba939-9a93-4535-b193-973c68fc8763 - services: - resources: - - resourceName: vProbes - resourceType: VF - trigger_policy: unique-policy-id-1-restart - timeout: 600 - -policies: - - id: unique-policy-id-1-restart - name: Restart Policy - description: - actor: APPC - recipe: Restart - target: VM - retry: 2 - timeout: 300 - success: final_success - failure: final_failure - failure_timeout: final_failure_timeout - failure_retries: final_failure_retries - failure_exception: final_failure_exception diff --git a/controlloop/common/policy-yaml/src/test/resources/v1.0.0/policy_vSCP_F5_1610.yaml b/controlloop/common/policy-yaml/src/test/resources/v1.0.0/policy_vSCP_F5_1610.yaml deleted file mode 100644 index 7feaecf7e..000000000 --- a/controlloop/common/policy-yaml/src/test/resources/v1.0.0/policy_vSCP_F5_1610.yaml +++ /dev/null @@ -1,26 +0,0 @@ -controlLoop: - version: 1.0.0 - controlLoopName: ClosedLoop-FRWL-SIG-d925ed73-8231-4d02-9545-db4e101f88f8 - services: - - serviceName: vSCP - - serviceName: trinity - resources: - - resourceName: F5FW - resourceType: VF - trigger_policy: unique-policy-id-1-restart - timeout: 1200 - -policies: - - id: unique-policy-id-1-restart - name: Restart Policy - description: - actor: APPC - recipe: Restart - target: VM - retry: 2 - timeout: 300 - success: final_success - failure: final_failure - failure_timeout: final_failure_timeout - failure_retries: final_failure_retries - failure_exception: final_failure_exception diff --git a/controlloop/common/policy-yaml/src/test/resources/v1.0.0/policy_vUSP_1610.yaml b/controlloop/common/policy-yaml/src/test/resources/v1.0.0/policy_vService.yaml index aebde931e..aebde931e 100644 --- a/controlloop/common/policy-yaml/src/test/resources/v1.0.0/policy_vUSP_1610.yaml +++ b/controlloop/common/policy-yaml/src/test/resources/v1.0.0/policy_vService.yaml diff --git a/controlloop/common/policy-yaml/src/test/resources/v2.0.0-guard/policy_guard_blacklist.yaml b/controlloop/common/policy-yaml/src/test/resources/v2.0.0-guard/policy_guard_blacklist.yaml new file mode 100644 index 000000000..d413313e7 --- /dev/null +++ b/controlloop/common/policy-yaml/src/test/resources/v2.0.0-guard/policy_guard_blacklist.yaml @@ -0,0 +1,17 @@ +guard: + version: 2.0.0 + +guards: + - id: unique_guard_vService_blacklist + name: APPC Restart Blacklist + description: | + We deny restart of the blacklisted targets (avoid midnight to 5am) + actor: APPC + recipe: Restart + limit_constraints: + - blacklist: + - TargetName1 + - TargetName2 + time_in_range: + arg2: 00:00:00-05:00 + arg3: 23:59:59-05:00
\ No newline at end of file diff --git a/controlloop/common/policy-yaml/src/test/resources/v2.0.0/policy_OpenECOMP_demo_vDNS.yaml b/controlloop/common/policy-yaml/src/test/resources/v2.0.0/policy_ONAP_demo_vDNS.yaml index 5deb8f7ff..5deb8f7ff 100644 --- a/controlloop/common/policy-yaml/src/test/resources/v2.0.0/policy_OpenECOMP_demo_vDNS.yaml +++ b/controlloop/common/policy-yaml/src/test/resources/v2.0.0/policy_ONAP_demo_vDNS.yaml diff --git a/controlloop/common/policy-yaml/src/test/resources/v2.0.0/policy_OpenECOMP_demo_vFirewall.yaml b/controlloop/common/policy-yaml/src/test/resources/v2.0.0/policy_ONAP_demo_vFirewall.yaml index 51597714c..51597714c 100644 --- a/controlloop/common/policy-yaml/src/test/resources/v2.0.0/policy_OpenECOMP_demo_vFirewall.yaml +++ b/controlloop/common/policy-yaml/src/test/resources/v2.0.0/policy_ONAP_demo_vFirewall.yaml diff --git a/controlloop/common/policy-yaml/src/test/resources/v2.0.0/policy_eNodeB_ALU_1707.yaml b/controlloop/common/policy-yaml/src/test/resources/v2.0.0/policy_eNodeB_ALU_1707.yaml deleted file mode 100644 index 9f41f46d9..000000000 --- a/controlloop/common/policy-yaml/src/test/resources/v2.0.0/policy_eNodeB_ALU_1707.yaml +++ /dev/null @@ -1,72 +0,0 @@ -controlLoop: - version: 2.0.0 - controlLoopName: ControlLoop-eNodeB-ALU-3ee91181-6f05-4cd3-8437-cad5f58653ca - services: - resources: - pnf: - PNFName: eNodeB.ALU - trigger_policy: unique-policy-id-1-check-aots - timeout: 2400 - -policies: - - id: unique-policy-id-1-check-aots - name: Check AOTS CTS - description: Discard sleeping cell based on the new signature if it appears in recent CTS tickets - actor: AOTS - recipe: checkENodeBTicketHours - payload: - timeWindow: 5 - retry: 2 - timeout: 300 - success: unique-policy-id-2-check-aots-cts - failure: final_failure - failure_timeout: final_failure_timeout - failure_retries: final_failure_retries - failure_exception: final_failure_exception - failure_guard: final_failure_guard - - - id: unique-policy-id-2-check-aots-cts - name: Check AOTS CTS Equipment - description: Discard sleeping cell based on the new signature if it is not active in CTS equipment data - actor: AOTS - recipe: checkEquipmentStatus - retry: 2 - timeout: 300 - success: unique-policy-id-3-check-aots-eim - failure: final_failure - failure_timeout: final_failure_timeout - failure_retries: final_failure_retries - failure_exception: final_failure_exception - failure_guard: final_failure_guard - - - id: unique-policy-id-3-check-aots-eim - name: Check AOTS EIM_RT - description: Discard sleeping cell based on the new signature if it appears in EIM_RT data - actor: AOTS - recipe: checkEimStatus - retry: 2 - timeout: 300 - success: unique-policy-id-4-sdnr-reset - failure: final_failure - failure_timeout: final_failure_timeout - failure_retries: final_failure_retries - failure_exception: final_failure_exception - failure_guard: final_failure_guard - - - id: unique-policy-id-4-sdnr-reset - name: Have SDNR Reset - description: SDNR should now reset this sleeper - actor: SDNR - recipe: Reset - operationsAccumulateParams: - period: 15m - limit: 5 - retry: 2 - timeout: 300 - success: final_success - failure: final_failure - failure_timeout: final_failure_timeout - failure_retries: final_failure_retries - failure_exception: final_failure_exception - failure_guard: final_failure_guard - diff --git a/controlloop/common/policy-yaml/src/test/resources/v2.0.0/policy_eNodeB_Ericsson_1707.yaml b/controlloop/common/policy-yaml/src/test/resources/v2.0.0/policy_eNodeB_Ericsson_1707.yaml deleted file mode 100644 index 9eff3439d..000000000 --- a/controlloop/common/policy-yaml/src/test/resources/v2.0.0/policy_eNodeB_Ericsson_1707.yaml +++ /dev/null @@ -1,86 +0,0 @@ -controlLoop: - version: 2.0.0 - controlLoopName: ControlLoop-eNodeB-Ericsson-0732e76a-4228-42d1-8185-972510be388c - services: - resources: - pnf: - PNFName: eNodeB.Ericsson - trigger_policy: unique-policy-id-1-check-aots-ticket - timeout: 2400 - -policies: - - id: unique-policy-id-1-check-aots-ticket - name: Check AOTS CTS - description: Discard sleeping cell based on the new signature if it appears in recent CTS tickets - actor: AOTS - recipe: checkENodeBTicketHours - payload: - timeWindow: 5 - retry: 2 - timeout: 300 - success: unique-policy-id-2-check-aots-cts - failure: final_failure - failure_timeout: final_failure_timeout - failure_retries: final_failure_retries - failure_exception: final_failure_exception - failure_guard: final_failure_guard - - - id: unique-policy-id-2-check-aots-cts - name: Check AOTS CTS Equipment - description: Discard sleeping cell based on the new signature if it is not active in CTS equipment data - actor: AOTS - recipe: checkEquipmentStatus - payload: - retry: 2 - timeout: 300 - success: unique-policy-id-3-check-aots-eim - failure: final_failure - failure_timeout: final_failure_timeout - failure_retries: final_failure_retries - failure_exception: final_failure_exception - failure_guard: final_failure_guard - - - id: unique-policy-id-3-check-aots-eim - name: Check AOTS EIM_RT - description: Discard sleeping cell based on the new signature if it appears in EIM_RT data - actor: AOTS - recipe: checkEimStatus - retry: 2 - timeout: 300 - success: unique-policy-id-3-check-aots-maintenance - failure: final_failure - failure_timeout: final_failure_timeout - failure_retries: final_failure_retries - failure_exception: final_failure_exception - failure_guard: final_failure_guard - - - id: unique-policy-id-4-check-aots-maintenance - name: Check AOTS MAINTENANCE - description: Discard sleeping cell based on the new signature if it appears in Maintenance - actor: AOTS - recipe: checkMaintenanceWindow - retry: 2 - timeout: 300 - success: unique-policy-id-5-sdnr-reset - failure: final_failure - failure_timeout: final_failure_timeout - failure_retries: final_failure_retries - failure_exception: final_failure_exception - failure_guard: final_failure_guard - - - id: unique-policy-id-5-sdnr-reset - name: Have SDNR Reset - description: SDNR should now reset this sleeper - actor: SDNR - recipe: Reset - operationsAccumulateParams: - period: 15m - limit: 5 - retry: 2 - timeout: 300 - success: final_success - failure: final_failure - failure_timeout: final_failure_timeout - failure_retries: final_failure_retries - failure_exception: final_failure_exception - failure_guard: final_failure_guard diff --git a/controlloop/common/policy-yaml/src/test/resources/v2.0.0/policy_vUSP_1707.yaml b/controlloop/common/policy-yaml/src/test/resources/v2.0.0/policy_vService.yaml index b1b03f4ee..b1b03f4ee 100644 --- a/controlloop/common/policy-yaml/src/test/resources/v2.0.0/policy_vUSP_1707.yaml +++ b/controlloop/common/policy-yaml/src/test/resources/v2.0.0/policy_vService.yaml diff --git a/controlloop/templates/template.demo/src/test/resources/xacml/xacml_guard_old.properties b/controlloop/templates/template.demo/src/test/resources/xacml/xacml_guard_old.properties new file mode 100644 index 000000000..82ae09f85 --- /dev/null +++ b/controlloop/templates/template.demo/src/test/resources/xacml/xacml_guard_old.properties @@ -0,0 +1,277 @@ +# +# +# This files defines PIPs that will be used by XACML Guard Policies. One PIP per time window (5 min, 10min,...,1 month). +# +# +# + +# +# Default XACML Properties File +# Standard API Factories +# +xacml.dataTypeFactory=com.att.research.xacml.std.StdDataTypeFactory +xacml.pdpEngineFactory=com.att.research.xacmlatt.pdp.ATTPDPEngineFactory +xacml.pepEngineFactory=com.att.research.xacml.std.pep.StdEngineFactory +xacml.pipFinderFactory=com.att.research.xacml.std.pip.StdPIPFinderFactory +xacml.traceEngineFactory=com.att.research.xacml.std.trace.LoggingTraceEngineFactory +# +# AT&T PDP Implementation Factories +# +xacml.att.evaluationContextFactory=com.att.research.xacmlatt.pdp.std.StdEvaluationContextFactory +xacml.att.combiningAlgorithmFactory=com.att.research.xacmlatt.pdp.std.StdCombiningAlgorithmFactory +xacml.att.functionDefinitionFactory=com.att.research.xacmlatt.pdp.std.StdFunctionDefinitionFactory +xacml.att.policyFinderFactory=com.att.research.xacmlatt.pdp.std.StdPolicyFinderFactory + + +# +# NOTE: If you are testing against a RESTful PDP, then the PDP must be configured with the +# policies and PIP configuration as defined below. Otherwise, this is the configuration that +# the embedded PDP uses. +# + +# In case we have multiple applicable Guard policies, we will deny if any of them denies. +#xacml.att.policyFinderFactory.combineRootPolicies=urn:com:att:xacml:3.0:policy-combining-algorithm:combined-deny-overrides +xacml.att.policyFinderFactory.combineRootPolicies=urn:oasis:names:tc:xacml:3.0:policy-combining-algorithm:permit-unless-deny + + +# Policies to load +# +xacml.rootPolicies=p1,p2,p3,p4 +p1.file=src/test/resources/xacml/autogenerated_frequency_limiter_restart.xml +p2.file=src/test/resources/xacml/autogenerated_frequency_limiter_rebuild.xml +p3.file=src/test/resources/xacml/autogenerated_frequency_limiter_migrate.xml +p4.file=src/test/resources/xacml/autogenerated_frequency_limiter_rebuild_1.xml +#p5.file=src/test/resources/xacml/autogenerated_blacklist.xml +#p6.file=src/test/resources/xacml/new_restart1.xml +#p7.file=src/test/resources/xacml/new_restart2.xml +#p8.file=src/test/resources/xacml/new_rebuild1.xml +#p9.file=src/test/resources/xacml/new_rebuild2.xml +#p10.file=src/test/resources/xacml/new_migrate1.xml +#p11.file=src/test/resources/xacml/new_migrate2.xml + +# PIP Engine Definition +# +xacml.pip.engines=sql1,test1 +test1.classname=com.att.ecomp.policy.guard.PIPEngineGetHistory +test1.issuer=com:att:research:xacml:guard:historydb + + +sql1.classname=com.att.research.xacml.std.pip.engines.jdbc.JDBCEngine +sql1.name=OperationsHistory +sql1.description=Database of operations performed via closed loop. +sql1.issuer=com:att:research:xacml:test:sql123 +sql1.type=jdbc +sql1.jdbc.driver=org.mariadb.jdbc.Driver +#sql1.jdbc.url=jdbc:mariadb://localhost:7779/policy +sql1.jdbc.url=jdbc:mariadb://localhost:3306/policy +sql1.jdbc.conn.user=root +sql1.jdbc.conn.password=lmpg + +#Each of the following resolvers corresponds to a specific time window. The only difference between them is the "interval" in the "select" SQL query and the "issuer". +sql1.resolvers=tw5min,tw10min,tw30min,tw1h,tw12h,tw1d,tw5d,tw1w,tw1mon + + + +############################################## +sql1.resolver.tw5min.select=select count(*) as count from operationshistory10 where outcome<>'Failure_Guard' and actor=? and operation=? and target=? and endtime between date_sub(now(),interval 5 minute) and now() +sql1.resolver.tw5min.field.count.issuer=com:att:research:xacml:test:sql:tw5min + +sql1.resolver.tw5min.classname=com.att.research.xacml.std.pip.engines.jdbc.ConfigurableJDBCResolver +sql1.resolver.tw5min.name=OperationsCount +sql1.resolver.tw5min.description=This returns the number of previous operations within the given time window +sql1.resolver.tw5min.fields=count +sql1.resolver.tw5min.field.count.id=com:att:research:xacml:test:sql:resource:operations:count +sql1.resolver.tw5min.field.count.datatype=http://www.w3.org/2001/XMLSchema#integer +sql1.resolver.tw5min.field.count.category=urn:oasis:names:tc:xacml:3.0:attribute-category:resource +sql1.resolver.tw5min.parameters=actor,operation,target +sql1.resolver.tw5min.parameter.actor.id=urn:oasis:names:tc:xacml:1.0:actor:actor-id +sql1.resolver.tw5min.parameter.actor.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw5min.parameter.actor.category=urn:oasis:names:tc:xacml:1.0:subject-category:access-subject +sql1.resolver.tw5min.parameter.operation.id=urn:oasis:names:tc:xacml:1.0:operation:operation-id +sql1.resolver.tw5min.parameter.operation.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw5min.parameter.operation.category=urn:oasis:names:tc:xacml:3.0:attribute-category:action +sql1.resolver.tw5min.parameter.target.id=urn:oasis:names:tc:xacml:1.0:target:target-id +sql1.resolver.tw5min.parameter.target.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw5min.parameter.target.category=urn:oasis:names:tc:xacml:3.0:attribute-category:resource + +############################################## +sql1.resolver.tw10min.select=select count(*) as count from operationshistory10 where outcome<>'Failure_Guard' and actor=? and operation=? and target=? and endtime between date_sub(now(),interval 10 minute) and now() +sql1.resolver.tw10min.field.count.issuer=com:att:research:xacml:test:sql:tw10min + +sql1.resolver.tw10min.classname=com.att.research.xacml.std.pip.engines.jdbc.ConfigurableJDBCResolver +sql1.resolver.tw10min.name=OperationsCount +sql1.resolver.tw10min.description=This returns the number of previous operations within the given time window +sql1.resolver.tw10min.fields=count +sql1.resolver.tw10min.field.count.id=com:att:research:xacml:test:sql:resource:operations:count +sql1.resolver.tw10min.field.count.datatype=http://www.w3.org/2001/XMLSchema#integer +sql1.resolver.tw10min.field.count.category=urn:oasis:names:tc:xacml:3.0:attribute-category:resource +sql1.resolver.tw10min.parameters=actor,operation,target +sql1.resolver.tw10min.parameter.actor.id=urn:oasis:names:tc:xacml:1.0:actor:actor-id +sql1.resolver.tw10min.parameter.actor.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw10min.parameter.actor.category=urn:oasis:names:tc:xacml:1.0:subject-category:access-subject +sql1.resolver.tw10min.parameter.operation.id=urn:oasis:names:tc:xacml:1.0:operation:operation-id +sql1.resolver.tw10min.parameter.operation.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw10min.parameter.operation.category=urn:oasis:names:tc:xacml:3.0:attribute-category:action +sql1.resolver.tw10min.parameter.target.id=urn:oasis:names:tc:xacml:1.0:target:target-id +sql1.resolver.tw10min.parameter.target.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw10min.parameter.target.category=urn:oasis:names:tc:xacml:3.0:attribute-category:resource + +############################################## +sql1.resolver.tw30min.select=select count(*) as count from operationshistory10 where outcome<>'Failure_Guard' and actor=? and operation=? and target=? and endtime between date_sub(now(),interval 30 minute) and now() +sql1.resolver.tw30min.field.count.issuer=com:att:research:xacml:test:sql:tw30min + +sql1.resolver.tw30min.classname=com.att.research.xacml.std.pip.engines.jdbc.ConfigurableJDBCResolver +sql1.resolver.tw30min.name=OperationsCount +sql1.resolver.tw30min.description=This returns the number of previous operations within the given time window +sql1.resolver.tw30min.fields=count +sql1.resolver.tw30min.field.count.id=com:att:research:xacml:test:sql:resource:operations:count +sql1.resolver.tw30min.field.count.datatype=http://www.w3.org/2001/XMLSchema#integer +sql1.resolver.tw30min.field.count.category=urn:oasis:names:tc:xacml:3.0:attribute-category:resource +sql1.resolver.tw30min.parameters=actor,operation,target +sql1.resolver.tw30min.parameter.actor.id=urn:oasis:names:tc:xacml:1.0:actor:actor-id +sql1.resolver.tw30min.parameter.actor.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw30min.parameter.actor.category=urn:oasis:names:tc:xacml:1.0:subject-category:access-subject +sql1.resolver.tw30min.parameter.operation.id=urn:oasis:names:tc:xacml:1.0:operation:operation-id +sql1.resolver.tw30min.parameter.operation.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw30min.parameter.operation.category=urn:oasis:names:tc:xacml:3.0:attribute-category:action +sql1.resolver.tw30min.parameter.target.id=urn:oasis:names:tc:xacml:1.0:target:target-id +sql1.resolver.tw30min.parameter.target.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw30min.parameter.target.category=urn:oasis:names:tc:xacml:3.0:attribute-category:resource + +############################################## +sql1.resolver.tw1h.select=select count(*) as count from operationshistory10 where outcome<>'Failure_Guard' and actor=? and operation=? and target=? and endtime between date_sub(now(),interval 1 hour) and now() +sql1.resolver.tw1h.field.count.issuer=com:att:research:xacml:test:sql:tw1h + +sql1.resolver.tw1h.classname=com.att.research.xacml.std.pip.engines.jdbc.ConfigurableJDBCResolver +sql1.resolver.tw1h.name=OperationsCount +sql1.resolver.tw1h.description=This returns the number of previous operations within the given time window +sql1.resolver.tw1h.fields=count +sql1.resolver.tw1h.field.count.id=com:att:research:xacml:test:sql:resource:operations:count +sql1.resolver.tw1h.field.count.datatype=http://www.w3.org/2001/XMLSchema#integer +sql1.resolver.tw1h.field.count.category=urn:oasis:names:tc:xacml:3.0:attribute-category:resource +sql1.resolver.tw1h.parameters=actor,operation,target +sql1.resolver.tw1h.parameter.actor.id=urn:oasis:names:tc:xacml:1.0:actor:actor-id +sql1.resolver.tw1h.parameter.actor.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw1h.parameter.actor.category=urn:oasis:names:tc:xacml:1.0:subject-category:access-subject +sql1.resolver.tw1h.parameter.operation.id=urn:oasis:names:tc:xacml:1.0:operation:operation-id +sql1.resolver.tw1h.parameter.operation.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw1h.parameter.operation.category=urn:oasis:names:tc:xacml:3.0:attribute-category:action +sql1.resolver.tw1h.parameter.target.id=urn:oasis:names:tc:xacml:1.0:target:target-id +sql1.resolver.tw1h.parameter.target.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw1h.parameter.target.category=urn:oasis:names:tc:xacml:3.0:attribute-category:resource + + +############################################## +sql1.resolver.tw12h.select=select count(*) as count from operationshistory10 where outcome<>'Failure_Guard' and actor=? and operation=? and target=? and endtime between date_sub(now(),interval 12 hour) and now() +sql1.resolver.tw12h.field.count.issuer=com:att:research:xacml:test:sql:tw12h + +sql1.resolver.tw12h.classname=com.att.research.xacml.std.pip.engines.jdbc.ConfigurableJDBCResolver +sql1.resolver.tw12h.name=OperationsCount +sql1.resolver.tw12h.description=This returns the number of previous operations within the given time window +sql1.resolver.tw12h.fields=count +sql1.resolver.tw12h.field.count.id=com:att:research:xacml:test:sql:resource:operations:count +sql1.resolver.tw12h.field.count.datatype=http://www.w3.org/2001/XMLSchema#integer +sql1.resolver.tw12h.field.count.category=urn:oasis:names:tc:xacml:3.0:attribute-category:resource +sql1.resolver.tw12h.parameters=actor,operation,target +sql1.resolver.tw12h.parameter.actor.id=urn:oasis:names:tc:xacml:1.0:actor:actor-id +sql1.resolver.tw12h.parameter.actor.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw12h.parameter.actor.category=urn:oasis:names:tc:xacml:1.0:subject-category:access-subject +sql1.resolver.tw12h.parameter.operation.id=urn:oasis:names:tc:xacml:1.0:operation:operation-id +sql1.resolver.tw12h.parameter.operation.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw12h.parameter.operation.category=urn:oasis:names:tc:xacml:3.0:attribute-category:action +sql1.resolver.tw12h.parameter.target.id=urn:oasis:names:tc:xacml:1.0:target:target-id +sql1.resolver.tw12h.parameter.target.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw12h.parameter.target.category=urn:oasis:names:tc:xacml:3.0:attribute-category:resource + + +############################# +sql1.resolver.tw1d.select=select count(*) as count from operationshistory10 where outcome<>'Failure_Guard' and actor=? and operation=? and target=? and endtime between date_sub(now(),interval 1 day) and now() +sql1.resolver.tw1d.field.count.issuer=com:att:research:xacml:test:sql:tw1d + +sql1.resolver.tw1d.classname=com.att.research.xacml.std.pip.engines.jdbc.ConfigurableJDBCResolver +sql1.resolver.tw1d.name=OperationsCount +sql1.resolver.tw1d.description=This returns the number of previous operations within the given time window +sql1.resolver.tw1d.fields=count +sql1.resolver.tw1d.field.count.id=com:att:research:xacml:test:sql:resource:operations:count +sql1.resolver.tw1d.field.count.datatype=http://www.w3.org/2001/XMLSchema#integer +sql1.resolver.tw1d.field.count.category=urn:oasis:names:tc:xacml:3.0:attribute-category:resource +sql1.resolver.tw1d.parameters=actor,operation,target +sql1.resolver.tw1d.parameter.actor.id=urn:oasis:names:tc:xacml:1.0:actor:actor-id +sql1.resolver.tw1d.parameter.actor.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw1d.parameter.actor.category=urn:oasis:names:tc:xacml:1.0:subject-category:access-subject +sql1.resolver.tw1d.parameter.operation.id=urn:oasis:names:tc:xacml:1.0:operation:operation-id +sql1.resolver.tw1d.parameter.operation.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw1d.parameter.operation.category=urn:oasis:names:tc:xacml:3.0:attribute-category:action +sql1.resolver.tw1d.parameter.target.id=urn:oasis:names:tc:xacml:1.0:target:target-id +sql1.resolver.tw1d.parameter.target.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw1d.parameter.target.category=urn:oasis:names:tc:xacml:3.0:attribute-category:resource + + +############################# +sql1.resolver.tw5d.select=select count(*) as count from operationshistory10 where outcome<>'Failure_Guard' and actor=? and operation=? and target=? and endtime between date_sub(now(),interval 5 day) and now() +sql1.resolver.tw5d.field.count.issuer=com:att:research:xacml:test:sql:tw5d + +sql1.resolver.tw5d.classname=com.att.research.xacml.std.pip.engines.jdbc.ConfigurableJDBCResolver +sql1.resolver.tw5d.name=OperationsCount +sql1.resolver.tw5d.description=This returns the number of previous operations within the given time window +sql1.resolver.tw5d.fields=count +sql1.resolver.tw5d.field.count.id=com:att:research:xacml:test:sql:resource:operations:count +sql1.resolver.tw5d.field.count.datatype=http://www.w3.org/2001/XMLSchema#integer +sql1.resolver.tw5d.field.count.category=urn:oasis:names:tc:xacml:3.0:attribute-category:resource +sql1.resolver.tw5d.parameters=actor,operation,target +sql1.resolver.tw5d.parameter.actor.id=urn:oasis:names:tc:xacml:1.0:actor:actor-id +sql1.resolver.tw5d.parameter.actor.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw5d.parameter.actor.category=urn:oasis:names:tc:xacml:1.0:subject-category:access-subject +sql1.resolver.tw5d.parameter.operation.id=urn:oasis:names:tc:xacml:1.0:operation:operation-id +sql1.resolver.tw5d.parameter.operation.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw5d.parameter.operation.category=urn:oasis:names:tc:xacml:3.0:attribute-category:action +sql1.resolver.tw5d.parameter.target.id=urn:oasis:names:tc:xacml:1.0:target:target-id +sql1.resolver.tw5d.parameter.target.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw5d.parameter.target.category=urn:oasis:names:tc:xacml:3.0:attribute-category:resource + + +############################# +sql1.resolver.tw1w.select=select count(*) as count from operationshistory10 where outcome<>'Failure_Guard' and actor=? and operation=? and target=? and endtime between date_sub(now(),interval 1 week) and now() +sql1.resolver.tw1w.field.count.issuer=com:att:research:xacml:test:sql:tw1w + +sql1.resolver.tw1w.classname=com.att.research.xacml.std.pip.engines.jdbc.ConfigurableJDBCResolver +sql1.resolver.tw1w.name=OperationsCount +sql1.resolver.tw1w.description=This returns the number of previous operations within the given time window +sql1.resolver.tw1w.fields=count +sql1.resolver.tw1w.field.count.id=com:att:research:xacml:test:sql:resource:operations:count +sql1.resolver.tw1w.field.count.datatype=http://www.w3.org/2001/XMLSchema#integer +sql1.resolver.tw1w.field.count.category=urn:oasis:names:tc:xacml:3.0:attribute-category:resource +sql1.resolver.tw1w.parameters=actor,operation,target +sql1.resolver.tw1w.parameter.actor.id=urn:oasis:names:tc:xacml:1.0:actor:actor-id +sql1.resolver.tw1w.parameter.actor.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw1w.parameter.actor.category=urn:oasis:names:tc:xacml:1.0:subject-category:access-subject +sql1.resolver.tw1w.parameter.operation.id=urn:oasis:names:tc:xacml:1.0:operation:operation-id +sql1.resolver.tw1w.parameter.operation.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw1w.parameter.operation.category=urn:oasis:names:tc:xacml:3.0:attribute-category:action +sql1.resolver.tw1w.parameter.target.id=urn:oasis:names:tc:xacml:1.0:target:target-id +sql1.resolver.tw1w.parameter.target.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw1w.parameter.target.category=urn:oasis:names:tc:xacml:3.0:attribute-category:resource + +############################# +sql1.resolver.tw1mon.select=select count(*) as count from operationshistory10 where outcome<>'Failure_Guard' and actor=? and operation=? and target=? and endtime between date_sub(now(),interval 1 month) and now() +sql1.resolver.tw1mon.field.count.issuer=com:att:research:xacml:test:sql:tw1mon + +sql1.resolver.tw1mon.classname=com.att.research.xacml.std.pip.engines.jdbc.ConfigurableJDBCResolver +sql1.resolver.tw1mon.name=OperationsCount +sql1.resolver.tw1mon.description=This returns the number of previous operations within the given time window +sql1.resolver.tw1mon.fields=count +sql1.resolver.tw1mon.field.count.id=com:att:research:xacml:test:sql:resource:operations:count +sql1.resolver.tw1mon.field.count.datatype=http://www.w3.org/2001/XMLSchema#integer +sql1.resolver.tw1mon.field.count.category=urn:oasis:names:tc:xacml:3.0:attribute-category:resource +sql1.resolver.tw1mon.parameters=actor,operation,target +sql1.resolver.tw1mon.parameter.actor.id=urn:oasis:names:tc:xacml:1.0:actor:actor-id +sql1.resolver.tw1mon.parameter.actor.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw1mon.parameter.actor.category=urn:oasis:names:tc:xacml:1.0:subject-category:access-subject +sql1.resolver.tw1mon.parameter.operation.id=urn:oasis:names:tc:xacml:1.0:operation:operation-id +sql1.resolver.tw1mon.parameter.operation.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw1mon.parameter.operation.category=urn:oasis:names:tc:xacml:3.0:attribute-category:action +sql1.resolver.tw1mon.parameter.target.id=urn:oasis:names:tc:xacml:1.0:target:target-id +sql1.resolver.tw1mon.parameter.target.datatype=http://www.w3.org/2001/XMLSchema#string +sql1.resolver.tw1mon.parameter.target.category=urn:oasis:names:tc:xacml:3.0:attribute-category:resource + + |