summaryrefslogtreecommitdiffstats
path: root/models-interactions
AgeCommit message (Collapse)AuthorFilesLines
2020-02-24Add "finalOutcome" flag to OperationOutcomeJim Hahn3-29/+76
The Actor clients receive notifications of operation failures, but no indication if it's the final failure, thus they do not know if they should progress on to the "failure" policies. Issue-ID: POLICY-2385 Signed-off-by: Jim Hahn <jrh3@att.com> Change-Id: If053ed459e1d790e58eca950a8feeabaf4d67a41
2020-02-21Change payload to Map<String,Object> so it's more versatileJim Hahn63-184/+1267
This was supposed to be two separate commits, but I goofed something. Added guard query to Operation superclass. Modified VfModuleCreate to store the VF count, pass it to the guard, and bump it once the create completes successfully. Added code to check Actors for proper plug-in to ActorService. Renamed "operation" property to "operations", to be more consistent with other parameters (e.g., TopicParameterGroup). The META-INF/services files for the actors had mixed case, which did not match the package name of the Actor class, preventing the ServiceLoader from recognizing them. Also modified the ActorService to skip any that cannot actually be loaded, for whatever reason (e.g., not in the classpath). Issue-ID: POLICY-1625 Signed-off-by: Jim Hahn <jrh3@att.com> Change-Id: Ifa97744543f2866cc553138ec5ec644b033de780
2020-02-20More actor clean-upJim Hahn68-644/+1646
Currently, Operator classes refer to Operation classes, and vice versa, creating a dependency cycle. In addition, there is a slight problem in that if an operator is reconfigured, any running operation may get inconsistent configuration data. Modified the code to create Config objects that are passed to the operation, instead of passing the Operator to the operations. This solved both issues. Replaceed makeOperator() with constructors. Added parameter type to HttpActors. Modified guard to get "ONAP" properties from its configuration, as a default. Changed setUp() to setUpBasic(), so "throws Exception" could be removed, thus resolving a sonar issue. Issue-ID: POLICY-1625 Signed-off-by: Jim Hahn <jrh3@att.com> Change-Id: I21eb8798acfbc636ff1bd8741b21c7278365b6e4
2020-02-20Merge "Add Guard Actor"Jorge Hernandez11-2/+534
2020-02-19Add Guard ActorJim Hahn11-2/+534
Issue-ID: POLICY-2350 Signed-off-by: Jim Hahn <jrh3@att.com> Change-Id: Ib68c22a1154607563cb8a657b8101757a29b47ef
2020-02-19Add SO actorJim Hahn21-57/+1933
Issue-ID: POLICY-2371 Signed-off-by: Jim Hahn <jrh3@att.com> Change-Id: I3faf0276e8039dc43a976d18ff8e704fdbec3d49
2020-02-18Validate request content of various actorsJim Hahn17-237/+379
Created common junit superclass, BasicOperation, containing verifyRequest() method, among others. Issue-ID: POLICY-2363 Signed-off-by: Jim Hahn <jrh3@att.com> Change-Id: I7ff4428e94bfd301ff4194e1766ef61906714dcf
2020-02-18Merge "Actor updates to support SO"Jim Hahn9-21/+34
2020-02-18APPC ActorJim Hahn7-1/+749
Issue-ID: POLICY-2363 Signed-off-by: Jim Hahn <jrh3@att.com> Change-Id: I21908c9875aa1d2ad3678cb7613b5a3e1fada340
2020-02-18Actor updates to support SOJim Hahn9-21/+34
Used SuperBuilder in operation Params classes. Added rawResponse to http setOutcome(). Made HttpOperation.operator private. Issue-ID: POLICY-2371 Signed-off-by: Jim Hahn <jrh3@att.com> Change-Id: Ie894f2e6ae4a31b69a700e425f9e94c5e8a15daa
2020-02-17More changes to actor codeJim Hahn22-57/+451
Use Coder.convert() from policy-common. Passed response to setOutcome(). Changed class names from XxxOperator to XxxOperation. Modified SDNC junits to invoke start() instead of startOperationAsync(). Changed context obtain() to re-run if the future was canceled. Added junit support class, BasicBidirectionalTopicOperation. Modified HttpOperation to allow subsequent requests to be issued. Some actors, like SO, send an initial HTTP request and then follow it with HTTP "are you done?" requests. Issue-ID: POLICY-2363-prop Change-Id: I12b5c2d4f07254e0cb79fabfe1ccf844b70a0654 Signed-off-by: Jim Hahn <jrh3@att.com>
2020-02-17Use BidirectionalTopicClient from policy-commonJim Hahn47-1765/+1887
Also modified "target" to sink in various places, and renamed various uses of "pair" to "bidirectional" (e.g., TopicPairParams => BidirectionalTopicParams). Also replaced MyExec with PseudoExecutor, from policy-common. As part of this, extracted the logRequest and logResponse methods from the Http and Topic classes, moving them into the common OperationPartial class. Modified A&AI, SDNC junit tests to use PseudoExecutor. Added support for incomplete responses on Topics, where multiple responses may be received for one request Fixed a duplicate entry in actor.aai pom. As the changes were already big enough, went ahead and also did the following to support the APPC Actor: - Reorganized parameter classes and content. - Modified anyOf, allOf to take functions instead of futures and handle exceptions thrown by any of the functions. Also added sequence() method. - Deleted doTask. - Modified ActorService.config to take a map of maps, not just a map. - Decided NOT to move anyOf, allOf, and sequence from OperationPartial to a utility class, because they depend on "params". Issue-ID: POLICY-2363 Signed-off-by: Jim Hahn <jrh3@att.com> Change-Id: I5a8bae05dfef22fe71c57c58f265b9dac20df5c5
2020-02-13Add Topic Actor superclassesJim Hahn23-56/+2617
Issue-ID: POLICY-2363 Change-Id: I5d29d85f6c5f40fb6c8f1bf678d9c718760a7558 Signed-off-by: Jim Hahn <jrh3@att.com>
2020-02-12Add A&AI actor and some operatorsJim Hahn16-3/+947
Added A&AI Actor, as well as operators for the "custom query" and the "tenant" query (on which the custom query depends). Issue-ID: POLICY-1625 Signed-off-by: Jim Hahn <jrh3@att.com> Change-Id: Ic9dadc07a6057cb1abb9698da86eb9431fc9ed3e
2020-02-11Add more code to facilitate actor implementationJim Hahn49-3092/+4334
Added obtain() to Context Added startGuardAsync(), in anticipation of adding guards. Moved logRestXxx() from Util to HttpOperation. Added actor.test to facilitate testing of actors. Changed timeoutSec from long to int in various places. Made a couple of methods public to support junit testing. Most of the methods required Params to be passed, which indicated a design issue. Split Operator and Operation so that the Params could be kept in a field and thus need not be passed to every method. Basically, renamed OperatorPartial.java to OperationPartial.java and created a new OperatorPartial.java. Of course, this makes it look to gerrit like it's all new code, when in fact, most of it is unchanged, other than removing the Params argument to the method calls. That accounts for about half of the "lines changed" count. Issue-ID: POLICY-1625 Change-Id: I9e98c9dadcbed145bf84deb06c9db1c864a3c24a Signed-off-by: Jim Hahn <jrh3@att.com>
2020-02-07Clean up and enhancement of Actor re-designJim Hahn39-829/+3457
Added junits for the remaining code. Enhancements to facilitate implementation of Operators: - Added allOf(), anyOf() facilities - Added AsyncResponseHandler for handling asynchronous I/O via the HttpClient - Added logRestRequest() and logRestResponse() for logging REST requests and responses - Added HttpActor and HttpOperator, which can be used as superclasses - Added doTask() - Lifted data from the event into ControlLoopEventContext Updates per previous review comments: - Changed logException() to runFunction(). - Removed the aaiCqResponse field. - Lifted fields from Policy into ControlLoopOperationParams, eliminating the need to include Policy in the class. OperatorPartial depends on the string values in the ControlLoopOperation being set to one of the string values of PolicyResult. Instead of passing ControlLoopOperation around, the operators should pass around an object that uses PolicyResult directly, rather than depending on the string values being set correctly. Created OperationOutcome for this purpose. Stop pipeline when the controller completes. Use whenComplete() where appropriate. startOperationAsync() should not block. Modified it to launch the task in the background via its own thread. Extracted CallbackManager into its own file. Replaced actor setOperators() with addOperator() Renamed add() to wrap(), and modified it to remove the future when it completes. Fixed the signature on delayedRemove() and delayedComplete(). Replaced xxxAsync() calls with just xxx() calls, where appropriate to avoid the extra overhead of submitting it to a work queue. Renamed handleFailure() to handlePreprocessorFailure(). Updates per WIP review comments Issue-ID: POLICY-1625 Signed-off-by: Jim Hahn <jrh3@att.com> Change-Id: Id4c4c7ade979bdb76cc54266837609cc69a22c58
2020-02-03Actor redesign.Jim Hahn48-84/+6518
Left original code intact so that it can continue to be used until everything has been converted to use the new approach. Simply added new methods and classes. (A few minor edits were required to the old code, e.g., added constructors to the Actor implementations). Code to be removed is annotated with "TODO". This only contains one revised actor, SDNC. This actor combines code from actor.sdnc, sdnc, and drools-applications. Coverage tests are incomplete, but I anticipate some simplification to this design in a couple of days; coverage will be added at that time. Issue-ID: POLICY-1625 Signed-off-by: Jim Hahn <jrh3@att.com> Change-Id: I4b75730e3621a9ee026ad10e557abe92df10dcf4
2020-01-16Merge "Ensure one jacoco output file"Jorge Hernandez3-0/+13
2020-01-16Ensure one jacoco output filePamela Dragosh3-0/+13
Sub-modules under sub-modules need to set the path to ensure a single jacoco-ut.exec file is produced and appended to. I think this only gives us .1% - but that's ok. Its a step towards consolidation. Issue-ID: POLICY-2321 Change-Id: I31023843f55200096a905482ee55ad19bf681494 Signed-off-by: Pamela Dragosh <pdragosh@research.att.com>
2020-01-16Added Time agnostic Onset and Abated classesjhh10-18/+493
These classes can be used for comparison of alarm skeletons independently of the time at which they were produced. Issue-ID: POLICY-2323 Signed-off-by: jhh <jorge.hernandez-herrero@att.com> Change-Id: I85b9d6a429de56f056eb0a6caa9e4f90fbd68918 Signed-off-by: jhh <jorge.hernandez-herrero@att.com>
2020-01-10Remove deprecated methods from modelsJim Hahn3-2/+12
Addressed the following issues related to the java 11 upgrade: - forClass().newInstance() - java.xml.bind no longer included in jdk - new mockito doesn't clear captured lists Issue-ID: POLICY-1406 Signed-off-by: Jim Hahn <jrh3@att.com> Change-Id: Ia254c1ed21f847d1824e7abc22528975372ee2b6
2020-01-10policy/models jdk 11 upgradesHOCKLA9-11/+9
Issue-ID: POLICY-1592 Change-Id: Iaa6b61c5f1c76f3e7c2043691f4d29dbc43d144e Signed-off-by: HOCKLA <ah999m@att.com>
2020-01-10Bumped patch version for policy/modelsHOCKLA24-44/+49
Issue-ID: POLICY-1592 Change-Id: Iafc35fe53e28c815a79041f289cb17b6354ceccd Signed-off-by: HOCKLA <ah999m@att.com>
2020-01-09Remove ControlLoopParams.jhh2-105/+0
This class is only useful in drools-applications repo. Issue-ID: POLICY-2146 Signed-off-by: jhh <jorge.hernandez-herrero@att.com> Change-Id: Ifbf281a3742950c3cad2c5b56689122dd766b41a
2019-12-10Fix minor checksyle issues in modelsliamfallon16-96/+93
New checkstyle profile flagged some minor issues in policy models. Issue-ID: POLICY-2165 Change-Id: I17ed070a3d55601ad31e48fdfd29fff01d29fa42 Signed-off-by: liamfallon <liam.fallon@est.tech>
2019-11-28Merge "Reduce volume of log information on A&AI calls"Ram Krishna Verma2-15/+61
2019-11-27Reduce volume of log information on A&AI callsliamfallon2-15/+61
The AaiManager class is logging all the http requests and responses to and from A&AI to logger.info, creating a large volume of logging text, the logging of these messages is now set logger.debug, so they are off by default but can be enabled for debugging. Issue-ID: POLICY-2125 Change-Id: I5f9674db0f9e5b271606e7af34d5218f5c629b09 Signed-off-by: liamfallon <liam.fallon@est.tech>
2019-11-26CDS actor payload to be JSON object when applicableRashmi Pujar3-12/+71
When the policy-payload supplied by CLAMP is a valid JSON string the CDS Blueprint payload must be a JSON object, else retain the CDS Blueprint payload to be a string. Issue-ID: POLICY-2253 Signed-off-by: Rashmi Pujar <rashmi.pujar@bell.ca> Change-Id: I6380ab0424339603ecf52d298e4f6f0cd8df754b
2019-11-25Use dependency management for cds proto-definition artifactRashmi Pujar1-2/+0
Refer to: https://gerrit.onap.org/r/#/c/policy/parent/+/98733/ Issue-ID: POLICY-2254 Signed-off-by: Rashmi Pujar <rashmi.pujar@bell.ca> Change-Id: Ie1053ee05f68e8b06bae20c4ce8514dd3aa21d33
2019-11-21Fix minor checkstyle issuse in models A&AIliamfallon1-13/+11
Some minor checkstyle issues in the policy models Custom Query support in A&AI fixed. Issue-ID: POLICY-2125 Change-Id: I520caa044966acbe28d3cd864b53fb398df2f385 Signed-off-by: liamfallon <liam.fallon@est.tech>
2019-11-13Removing Named Query.pramod.jamkhedkar71-4737/+112
Removing all the related files and necessary modifications for removing named query. The code now only supports Custom Query Issue-ID: POLICY-2125 Change-Id: Ifa5ccb74142aa424359c0dea85b90bbcf70147cb Signed-off-by: pramod.jamkhedkar <pramod@research.att.com>
2019-11-08Fix sonar issue affecting in drools-applicationsJim Hahn1-13/+14
Drools-applications has a serializable class that contains AaiCqResponse. Sonar complained that the latter class must also be serializable, so made the change in policy-models to fix that. In addition, the latter class contained a list of Object. To ensure that those are also serializable, the list was changed to a list of Serializable instead. The latter change can be reverted, if it causes compilation issues elsewhere. However, it seems safer to enforce serializability in the list rather than risk having a later change inject a non-serializable object into the list. Change-Id: Ia741a1a96ec4efcc63451e9af31c19b4fe99dd7d Issue-ID: POLICY-2225 Signed-off-by: Jim Hahn <jrh3@att.com>
2019-11-07Use lombok annotations for objects in models-interaction/models-impl moduleRashmi Pujar90-3219/+466
Issue-ID: POLICY-1896 Signed-off-by: Rashmi Pujar <rashmi.pujar@bell.ca> Change-Id: I425afe25876cea91908391418582ef584e6fe6fc
2019-11-05Cleanup up unused actor.test maven moduleRashmi Pujar2-84/+0
Issue-ID: POLICY-1894 Signed-off-by: Rashmi Pujar <rashmi.pujar@bell.ca> Change-Id: Ib662aa6a28beb40c2a1e6814b103e95ebf4ee2e1
2019-11-04PNF support changes in policy/modelsRashmi Pujar8-53/+102
AAI Enrichment method for PNF target-type and unit tests. Addition of a hashmap field to ControlLoopEvent class to hold event specific parameters. Update CDS actor to include additional event parameters Issue-ID: POLICY-1187 Signed-off-by: Rashmi Pujar <rashmi.pujar@bell.ca> Change-Id: Ie0ceb320943531de6e6bc8675844b29a358dfb7e
2019-11-01Add common Jersey versionliamfallon1-1/+0
Add a common version of Jersey for all Policy Framework components. Issue-ID: POLICY-2209 Change-Id: Ic1d2ea808bb41156f776d18b875e44de22fbf06b Signed-off-by: liamfallon <liam.fallon@est.tech>
2019-11-01Fix Checkstyle issues in policy-modelsliamfallon6-19/+11
Some minor checkstyle issues were introduced into policy-models by recent reviews. Issue-ID: POLICY-2088 Change-Id: I84af19926432081d72e2054af788cdc35850a99c Signed-off-by: liamfallon <liam.fallon@est.tech>
2019-10-30Merge "Changes in preparation for the m2 model (part 2)"Jorge Hernandez3-100/+18
2019-10-30Changes in preparation for the m2 model (part 2)Straubs, Ralph (rs8887)3-100/+18
This change was missed earlier: convert 'ResourceType' to a 'String', so application-specific types can be added. Issue-ID: POLICY-1948 Change-Id: Ie8a35e7fb0746d8c8e3a6db11c09ca31dc4763cc Signed-off-by: Straubs, Ralph (rs8887) <rs8887@att.com>
2019-10-29Merge "Refactor Appc LCM Model"Jorge Hernandez32-2235/+630
2019-10-25Refactor Appc LCM ModelDaniel Cruz32-2235/+630
Added model classes for APPC LCM Input and APPC LCM Output and removed adding the input/output tag to the JSON via the APPC LCM custom serializer. Issue-ID: POLICY-2043 Signed-off-by: Daniel Cruz <dc443y@att.com> Change-Id: I54e1b5f589a4b29357cf1a45dbdf2173610870ce
2019-10-25Merge "Changes in preparation for the m2 model"Jim Hahn10-323/+171
2019-10-24Changes in preparation for the m2 modelStraubs, Ralph (rs8887)10-323/+171
1) Replace enum 'ControlLoopTargetType' with 'String' -- symbols such as 'ControlLoopTargetType.VM' still work, but now expand into a String. This gives the ability to add new application-specific types. 2) Move 'ControlLoopEvent.payload' to 'VirtualControlLoopEvent'. This symbol isn't common to all 'ControlLoopEvent' types, and this definition collides with a 'payload' defined in our application. 3) Add 'RestManager.patch(...)', which performs a REST patch. 4) Add lombok getters and setters 5) Remove trailing spaces 6) Fix order of arguments in 'assertEquals' in 'ControlLoopTargetTypeTest' 7) Update Junit tests in 'RestTest' to include 'RestManager.patch(...)' Issue-ID: POLICY-1948 Signed-off-by: Straubs, Ralph (rs8887) <rs8887@att.com> Change-Id: I08e04ea3cbcf368c760b630bcfe23a4370cf94dc
2019-10-23Flatten the CDS grpc request payloadRashmi Pujar5-66/+146
Before: { "vfw-modify-config-request":{ "resolution-key":"1234567890", "aai-properties":{ "service-instance.service-instance-id":"1234", "generic-vnf.vnf-id":"5678" }, "policy-payload":{ "data":"{\"active-streams\":\"5\"}" } } } After: { "vfw-modify-config-request":{ "resolution-key":"1234567890", "vfw-modify-config-properties":{ "service-instance.service-instance-id":"1234", "generic-vnf.vnf-id":"5678", "data":"{\"active-streams\":\"5\"}" } } } Issue-ID: POLICY-2089 Signed-off-by: Rashmi Pujar <rashmi.pujar@bell.ca> Change-Id: I139a7ca3e1e2d0cd50bbd86d0cdf499f215be74f
2019-10-17Remove the CDS blueprint name and version from its payload.Rashmi Pujar2-3/+8
This information is redundant since it is included in the request header. Found during integration testing Issue-ID: POLICY-2089 Signed-off-by: Rashmi Pujar <rashmi.pujar@bell.ca> Change-Id: Icdb4753ccae687f85318f5efeed09d5e13a6853b
2019-10-15Merge "Remove actor and recipe checks from ControlLoopCompiler.java"Jorge Hernandez3-62/+20
2019-10-15Remove actor and recipe checks from ControlLoopCompiler.javadg57623-62/+20
Remove actor and recipe checks from ControlLoopCompiler.java and adjusted associated JUNIT tests for the changes that were implented. Removed some redundant variables, replaced null check in actor/recipe with blank string, which checks for null as well as empty/blank strings. drools-applications still builds correctly. Issue-ID: POLICY-2128 Change-Id: I83d9e3b1152d87c9c8d2c90586300aebdd53b8e2 Signed-off-by: dg5762 <dg5762@att.com>
2019-10-15Fix remaining fixable Sonar issues on policy modelsliamfallon3-26/+27
This patch fixes the remaining easy to fix Sonar issues on policy models. The remaining issues are - methods that do not follow Java naming conventions and fixing those will probably break policies that use those methods - TODO statements to do with functionality we didn't get done in Dublin and will address in Frankfurt Issue-ID: POLICY-2165 Change-Id: I7f604bc2335388bdc0dd9286ae17a5ab76517665 Signed-off-by: liamfallon <liam.fallon@est.tech>
2019-10-14Clean up minor things in policy-modelsliamfallon8-112/+127
Cleam up of some minor eclipse, checkstyle, and Sonar issues in policy-models Issue-ID: POLICY-2165 Change-Id: Id5682fd60e1a6cebbf716d9c258453aa53ca2482 Signed-off-by: liamfallon <liam.fallon@est.tech>
2019-10-11Clean up SONAR issues in CDS actorliamfallon1-1/+4
Issue-ID: POLICY-2165 Change-Id: I2ccfb32193c85958d525af19a7744a74c97a3485 Signed-off-by: liamfallon <liam.fallon@est.tech>