summaryrefslogtreecommitdiffstats
path: root/policy-management/src/main
AgeCommit message (Collapse)AuthorFilesLines
2019-11-14Invoke lock callback in session threadJim Hahn3-29/+33
Injects the callback as a DroolsRunnable into the session, if there is one. Otherwise, it invokes it via the engine's thread pool. Issue-ID: POLICY-2246 Signed-off-by: Jim Hahn <jrh3@att.com> Change-Id: I214480ae675d89e7335dde4eb4abe2684f7ef8ab Signed-off-by: Jim Hahn <jrh3@att.com>
2019-11-08Miscellaneous code clean upjhh7-40/+40
Issue-ID: POLICY-2203 Signed-off-by: jhh <jorge.hernandez-herrero@att.com> Change-Id: I5731d4636bd2aaecbc486406298bcba1b19e8f4d Signed-off-by: jhh <jorge.hernandez-herrero@att.com>
2019-11-06Fix new sonar issues in RestManagerJim Hahn1-31/+31
Eliminated duplicate code issues. Unfortunately, introduced new sonar issues with lambda expressions. Issue-ID: POLICY-2203 Signed-off-by: Jim Hahn <jrh3@att.com> Change-Id: Ib5853fab6135d2177da449ef6261a352ee4f203e
2019-11-06Merge "Fix duplicate code in drools-pdp RestManager"Liam Fallon1-342/+222
2019-11-06Address drools-pdp sonar issuesJim Hahn3-73/+57
Addressed more sonar issues in drools-pdp: - unwrap multiple instances of the same annotation (NamedQuery) - use lambda instead of anonymous class - duplicate code; addressed by using annotation instead of toString. This still leaves other duplicate code. Issue-ID: POLICY-2203 Change-Id: I8c6ff6562820af638044f134eb8a6725a5f05e8e Signed-off-by: Jim Hahn <jrh3@att.com>
2019-11-06Fix duplicate code in drools-pdp RestManagerJim Hahn1-342/+222
Change-Id: I22821a5027d01f0965c54b60389d3988ac53ed5c Issue-ID: POLICY-2203 Signed-off-by: Jim Hahn <jrh3@att.com>
2019-11-01Merge "Refactor duplicate code from lock managers"Jorge Hernandez3-168/+449
2019-10-31Refactor duplicate code from lock managersJim Hahn3-168/+449
Change-Id: I8910a1a4267d824f064b52c6ad08945590bd9617 Issue-ID: POLICY-2203 Signed-off-by: Jim Hahn <jrh3@att.com>
2019-10-31upgrade to 7.28.0.Final drools librariesjhh1-1/+1
commons-lang does not seem to be packaged anymore (commons-lang3 still does, which is the desired one). There are some @SupressWarning that seem to have no effect that were removed. Some libraries that were explicitly added are transitively used now in the latest version of drools, hence some rework in the dependency and exclude sections. We will need to generate a clm report to verify. Issue-ID: POLICY-1407 Signed-off-by: jhh <jorge.hernandez-herrero@att.com> Change-Id: I44e09183caca72f5f33bdec0b8fa88b0b4793055 Signed-off-by: jhh <jorge.hernandez-herrero@att.com>
2019-10-30Fix more sonar issues in drools-pdpJim Hahn2-5/+5
Sonar issue fixed: - log or rethrow exception - empty code block; moved the comment inside the empty "synchronized" block Change-Id: I55ca87a321b3a1e4079dae6d5a4d44b651cb3086 Issue-ID: POLICY-2203 Signed-off-by: Jim Hahn <jrh3@att.com>
2019-10-24Allow encrypted property valuesjhh3-16/+30
Issue-ID: POLICY-1945 Signed-off-by: jhh <jorge.hernandez-herrero@att.com> Change-Id: I0317a6de838d99b579638252859e42fc49cedfa8 Signed-off-by: jhh <jorge.hernandez-herrero@att.com>
2019-10-17Reimplement Lock API using Lock objectsJim Hahn6-3/+704
Modified PolicyResourceLockManager to just return a feature, deferring the lock() call/method to the feature, itself. The manager was also modified so that, if it can't find an enabled provider, it will return a default provider, whose lock() methods always fail. Once a feature has been identified, the manager will cache it for use thereafter. Modified the feature API to return lock objects and simplified the interface to remove the beforeXxx and afterXxx methods. Moved the unlock and refresh methods from the feature API into the lock class, renaming them to free and extend, respectively. Added a separate, feature-simple-locking project, which implements a simple version of the locking feature, over a single JVM. Extensively revised the distributed locking feature to fit in with the new API. Added support for persistence so that the various LockImpl classes can be serialized and still function correctly when they are deserialized back into new feature instances Added default implementations of free & extend to LockImpl. Modified API to take the ownerKey string, instead of the owner object. Removed Extractor as unneeded - may add via another review, if still useful. Updates per review comments: - Updated licenses in feature-simple-locking - Added beforeCreateLock & afterCreateLock to feature API - Moved SimpleLockingFeature into policy-management so that it's always available - Moved the executor service, "exsvc", into PolicyEngine - Moved Extrator into policy-utils - Changed Extractor logging level for exceptions - Fixed feature sequence numbers - Fixed mixing of seconds and milliseconds - Renamed exsvc - Modified to use property method with default value - Configured scheduled executor - Added suffix to Extractor.register() - Eliminated Feature Api and tied lock manager into engine - Added non-null checks to LockImpl parameters - Added non-null checks to createLock() parameters - Checked that lockManager is initialized Change-Id: Iddba38157ddc5f7277656979c0e679e5489eb7b1 Issue-ID: POLICY-2113 Signed-off-by: Jim Hahn <jrh3@att.com>
2019-09-16Add YAML support to drools-pdp rest servletsJim Hahn2-4/+6
Drools-pdp depends on some of the GsonJackson annotations that cannot be easily worked around via standard gson. Consequently, this continues to use the JacksonHandler for json-encoding, thus it uses the YamlJacksonHandler for yaml-encoding. Added YAML to swagger "consumes" list. Change-Id: Ic70c68bb274222db571b3515cbf1ab22d9ff2366 Issue-ID: POLICY-2081 Signed-off-by: Jim Hahn <jrh3@att.com>
2019-09-04Split Engine start method into "start" and "open"jhh4-53/+111
"open" meaning to open external configuration interfaces to external provisioning systems. Issue-ID: POLICY-2055 Signed-off-by: jhh <jorge.hernandez-herrero@att.com> Change-Id: Ic984f0ebccd088503b6b13620c3b80ed8e640899 Signed-off-by: jhh <jorge.hernandez-herrero@att.com>
2019-08-29Remove AlertSeverity from logback in drools-pdpJim Hahn1-3/+3
Merged severity and AlertSeverity in the MDC, and updated the logback xml files accordingly. The logback patterns for the metrics log had a place for both Severity and AlertSeverity; the latter was replaced with an empty place-holder so-as to maintain the same position for the other fields. Change-Id: Ic0977e1133cc4219394f2d71ca8ebae080620e0b Issue-ID: POLICY-1989 Signed-off-by: Jim Hahn <jrh3@att.com>
2019-08-15Fix more sonar issues in drools-pdpJim Hahn6-776/+596
Addressed issues of cyclomatic complexity and deep nesting by refactoring code into separate methods. In some cases, had to refactor the code into nested classes to avoid passing too many parameters to the newly extracted methods. Addressed issue "too many conditionals" by breaking conditionals apart. Addressed issue "Remove usage of generic wildcard type" by eliminating "? extends" from return values. Addressed issue "Remove this use of 'Thread.sleep()'" in junit tests by introducing latches or using Awaitility. Note: this won't build until ApiUtils has been merged. Change-Id: I0d5596b4cb918a36bc22f426f426bd238195b458 Issue-ID: POLICY-1968 Signed-off-by: Jim Hahn <jrh3@att.com>
2019-08-13Fix sonar issues in drools-pdpJim Hahn28-429/+750
Address sonar issue, "Move constants to a class or enum", by moving them from interfaces to classes: ActiveStandbyFeatureApi StateManagementFeatureApi PolicyResourceLockFeatureApi PolicySessionFeatureApi DroolsController DroolsControllerFeatureApi PolicyControllerFeatureApi PolicyEngineFeatureApi HealthCheck SystemPersistence EventProtocolCoder PolicyController PolicyEngine TestTransaction MdcTransaction Address sonar issue, "Move constants to a class or enum", by change the interface to a class: DroolsProperties Address sonar issue, "Override the "equals" method in this class", by adding equals & hashCode to: DroolsPdpEntity DroolsPdpImpl Use lombok for a number of getters & setters. Address sonar issue, "Define a constant instead of duplicating this literal" in: DroolsPdpsElectionHandler JpaDroolsPdpsConnector MavenDroolsController GenericEventProtocolCoder GsonProtocolCoderToolset RestManager Address sonar issue, "Remove the parentheses around the parameter" in: MavenDroolsController Address sonar issue, "Replace this lambda with a method reference" in: LifecycleFsm Address sonar issue, "Move this constructor to comply with Java Code Conventions" in: LifecycleStateRunning Address sonar issue, "Replace this 'switch' statement by 'if' statements to increase readability", as specified in: PolicyEngineManager Address sonar issue, "Rename field to prevent any misunderstanding/clash with field" in: MdcTransactionImpl Address sonar issue, "Either log or rethrow this exception", in: RestManager Address sonar issue, "Rename this constant name to" uppercase, by replacing enums with static lists in: RestManager Addressed review comments: Fixed license dates. Renamed getSiteName/setSiteName methods to getSite/setSite in the interface to match the field names in the implementation classes. Renamed *Instance classes to *Constants. Next round of review comments. Change-Id: I1c26af9f194833dd773f2b25dc5f60cde163201c Issue-ID: POLICY-1968 Signed-off-by: Jim Hahn <jrh3@att.com>
2019-07-31Expand AAF_NS in properties to onap.org.osaaf.aafjhh1-4/+4
Change-Id: I2e8f887093f9ba3e1fd9c5038dd4ad41d2a5c4c7 Issue-ID: POLICY-1959 Signed-off-by: jhh <jorge.hernandez-herrero@att.com>
2019-07-25Add coverage to MavenDroolsControllerJim Hahn1-41/+52
Change-Id: I7234c0146ef77f685a9766bb03168e385090fd1b Issue-ID: POLICY-1772 Signed-off-by: Jim Hahn <jrh3@att.com>
2019-07-24Add coverage to feature-active-standby-managementJim Hahn1-31/+11
Also removed some logger.isXxx() tests, which should reduce the number of branches that need to be tested. Removed unneeded objects and methods from feature-lifecyle. Change-Id: Ic3eb9c0b63a2ad5585846525eb0ebda81fc55d5e Issue-ID: POLICY-1772 Signed-off-by: Jim Hahn <jrh3@att.com>
2019-07-16Fix checkstyle issues in policy-utilsJim Hahn2-7/+7
Also deleted the checkstyle suppression file. Change-Id: I51c69bce644204435fa8131c14132e0384b4e886 Issue-ID: POLICY-1909 Signed-off-by: Jim Hahn <jrh3@att.com>
2019-07-11Fix checkstyle issues in policy-managementJim Hahn20-3249/+3447
Also deleted the checkstyle suppression file. Moved classes into their own source files per checkstyle. Change-Id: I586223aac0e5b7623cfd7b0acfceca4742ecc013 Issue-ID: POLICY-1908-mgmt-style Signed-off-by: Jim Hahn <jrh3@att.com>
2019-07-08Fix drools-pdp due to sonar changes in commonJim Hahn4-42/+46
Fixed breakages due to changes made in policy/common to satisfy sonar. Change-Id: I26a38340707b2903e089350c31c5dfdb5c019ee0 Issue-ID: POLICY-1791 Signed-off-by: Jim Hahn <jrh3@att.com>
2019-06-17Change getCanonicalName() to getName() in drools-pdpJim Hahn4-14/+14
Per javadocs, getName() should generally be used instead of Class.getCanonicalName(). This change only applies to classes; it does not apply to File objects. Change-Id: I28df56b3dfd0382239960d7f0f6e1131d702b2ab Issue-ID: POLICY-1646 Signed-off-by: Jim Hahn <jrh3@att.com>
2019-05-08Track policies when active.jhh4-3/+51
Do not honor group/subgroup changes with status messages. When no present group/subgroups in update messages, assume that they have to be reset. Keep the policy cache of non-installed policies tracking them when in passive state besides active. Wait until go active to enable them. Remove legacy PAP and PDP-X healtchecks as it was basically testing reachability. There are conflicts with maintaining 2 different sets of PAPs and PDPs, trying to avoid it. Alternative healtchecks are being placed on the robot test framework. What to healtcheck should be considered more carefully in the near future. Change-Id: I574f30bb5899faf521123c79046793d16b4a46e0 Issue-ID: POLICY-1748 Signed-off-by: jhh <jorge.hernandez-herrero@att.com>
2019-05-01relax check in features for multiversion depsjhh1-3/+4
print a warning instead, and the base install one wins. Change-Id: I666481e270bc03a8a7164e0fa947822d1ac8bbb6 Issue-ID: POLICY-1726 Signed-off-by: jhh <jorge.hernandez-herrero@att.com>
2019-04-30Enable noop source support in controllerjhh2-128/+181
Additional telemetry apis for testing. Change-Id: I60a61ffbbe86bbb0474777905de922434deabbe2 Issue-ID: POLICY-1716 Signed-off-by: jhh <jorge.hernandez-herrero@att.com>
2019-04-24Add telemetry API interface for Lifecyclejhh1-197/+77
Some cleanup consolidating code in cire telemetry apis. Issue-ID: POLICY-1687 Signed-off-by: jhh <jorge.hernandez-herrero@att.com> Change-Id: Ic5241d45eba06796192cca1e82cba5ae53dc5aaf Signed-off-by: jhh <jorge.hernandez-herrero@att.com>
2019-04-09deploy and undeploy as audits.jhh3-1/+71
Change-Id: Iea1766d5d8075394e1dccc109f4477bd2c270c36 Issue-ID: POLICY-1624 Signed-off-by: jhh <jorge.hernandez-herrero@att.com>
2019-04-08Initial support for deployjhh6-101/+221
This is a first pass, some functionality is missing (undeploy). Compile error fix from changes in policy/models repo. Change-Id: If448492ab665c135bace99d4d684d403e2a6be03 Issue-ID: POLICY-1624 Signed-off-by: jhh <jorge.hernandez-herrero@att.com>
2019-03-25Merge "Add MDC Topic Filtering"Jorge Hernandez1-121/+125
2019-03-25Add MDC Topic FilteringDaniel Cruz1-121/+125
A feature to provide configurable properties for network topics to extrac fields from JSON strings and place them in a mapped diagnostic context. Issue-ID: POLICY-1499 Change-Id: Icfca0be3b263ccf1612b79ed617e2b1ffb0317e6 Signed-off-by: Daniel Cruz <dc443y@att.com>
2019-03-21Support topic properties files.Jorge Hernandez4-79/+158
They will be loaded automatically at startup. Remove POLICY-PAP-PDP topic as is moved to a feature. Remove PDPD-CONFIGURATION topic as it is not used. Change-Id: I55629f885d61ce1cc4e3f24bcae5279e65a96f22 Issue-ID: POLICY-1610 Signed-off-by: Jorge Hernandez <jorge.hernandez-herrero@att.com>
2019-03-19Remove OrderedService referencesDaniel Cruz3-51/+51
Removed OrderedService and OrderedServiceImpl from the drools-pdp repo to use OrderedService and OrderedServiceImpl from the common repo. All feature interfaces were updated occordingly. Issue-ID: POLICY-1499 Change-Id: Icc80dd1cbe73a97d4832f95ad2dad52d948b711a Signed-off-by: Daniel Cruz <dc443y@att.com>
2019-03-15reducing kill timer to better play with k8s onesJorge Hernandez1-2/+2
Change-Id: Ibd69b100468716b929d42c9145fb72153cf685ed Issue-ID: POLICY-1560 Signed-off-by: Jorge Hernandez <jorge.hernandez-herrero@att.com>
2019-03-07Tweaking scripts to install for pdpd-cl imageJorge Hernandez2-6/+5
Change-Id: I5f7ab5de402a5412938f42ae76e21f112b106b3a Issue-ID: POLICY-1560 Signed-off-by: Jorge Hernandez <jorge.hernandez-herrero@att.com>
2019-03-04Merge "Add Controller Logging Feature"Jorge Hernandez5-98/+195
2019-03-01Add Controller Logging FeatureDaniel Cruz5-98/+195
This features provides a mechanism to extend the logback.xml properties to add controller specific loggers. The controller's logger will log messages from topics that the controller listens to in a controller specific network log. The original network log is preserved and still logs every message from every controller. Note that the way a logger is associated with a controller is by having the logger name match the controller's name. Any configuration file that has "logback-include-" prepended and a ".xml" extension will be added to the logback.xml and logback-eelf.xml files as extensions to the base configuration. Issue-ID: POLICY-1427 Change-Id: Iaeb823421eadb7ee413b6b03ae3dfe862f230612 Signed-off-by: Daniel Cruz <dc443y@att.com>
2019-03-01move all hard install config to environment varsJorge Hernandez12-239/+305
+ support multiple system properties files with variable interpolation loaded at initialization + support of configurable JVM options (-X, etc ..). + rearrange aaf configuration to avoid {{}} installation variables and use dynamic enviroment variables. + miscellaneous clean up in areas touched and checkstyle. Change-Id: I71ad839778e17eb57c098a2c5cc2bf96e468669a Issue-ID: POLICY-1524 Signed-off-by: Jorge Hernandez <jorge.hernandez-herrero@att.com>
2019-02-27Base POLICY-PDP-PAP channel configurationJorge Hernandez1-3/+19
With these changes the PDP should come up listening in the new PAP-PDP topic for messages, and configured to send. Change-Id: I395f87a7401aeb6385d640e51f75d71c0def36b0 Issue-ID: POLICY-1548 Signed-off-by: Jorge Hernandez <jorge.hernandez-herrero@att.com>
2019-02-22Merge "Add Nested JSON Filtering"Jorge Hernandez4-608/+203
2019-02-21Add Nested JSON FilteringDaniel Cruz4-608/+203
The refactoring of the JsonProtocolFilter allows for complex filter queries for JSON events coming in on network topics. The underlying library used is json-path, which supports path based searching and ruby regex filtering at any level of the JSON document. The JsonProtocolFilter no longer requires a FilterRule class as one json-path filter can contain multiple constraints using "&&" or "||". This eliminates the need to identify the field name as a key with a regex associated with it in the controller properties file (see the original FilterRule implementation). It also simplifies the parsing needed in the DroolsControllerFactory when extracting the filter property and creating the JsonProtocolFilter. JUnit coverage is 100% and all sonar flags were addressed related to the JsonProtocolFilter class. Tested and verified working with the telemetry API in a locally deployed PDP-D. Change-Id: I8bd63db4e497c1ba0b5044b5449ccb7a9e4dbdbc Issue-ID: POLICY-1489 Signed-off-by: Daniel Cruz <dc443y@att.com>
2019-02-21Moving hard install config to environment varsJorge Hernandez2-39/+20
Change-Id: I01e0cf2e2399ec81337961e0a2b3a349c34f55c4 Issue-ID: POLICY-1517 Signed-off-by: Jorge Hernandez <jorge.hernandez-herrero@att.com>
2019-02-15Change properties to use gsonJim Hahn1-1/+2
Modified property files to use gson instead of jackson for REST calls, for both clients and servers. Change-Id: Ib836886df33cd585b4c2d227e9cc496cc165fc2c Issue-ID: POLICY-1431 Signed-off-by: Jim Hahn <jrh3@att.com>
2019-02-15Test gson in policy-managementJim Hahn8-10/+84
Added jackson-like Gson annotations to policy-management classes. Also added tests to verify that the classes serialize the same with gson as with jackson. Removed some trailing spaces. Replaced tabs and adjusted spacing in json files. Removed trailing newlines. Updated license data per review comment. Fixed merge conflict. Added files that were inadvertently deleted. Change-Id: Ib546e70f9d9d83187a6a93ff5c634000c4d53da5 Issue-ID: POLICY-1431 Signed-off-by: Jim Hahn <jrh3@att.com>
2019-02-15Merge "Decouple nexus reconfiguration from installation"Pamela Dragosh1-1/+6
2019-02-14Remove jackson from policy codersJim Hahn6-378/+74
Coders came in pairs, one for GSON and one for Jackson. Replaced the pairs with a single coder for GSON. Simplified list copy. Removed multipleToolsetRetries flag. Removed additional jackson code. It had been removed, but the changes were somehow lost. Simplified another list copy. Updated license dates. Note: the date in PolicyEngineTest will be updated via a different review (mgmt-gson). Change-Id: Id3c7688c2389d194f66afcefa14303cf403ada16 Issue-ID: POLICY-1431 Signed-off-by: Jim Hahn <jrh3@att.com>
2019-02-14Decouple nexus reconfiguration from installationJorge Hernandez1-1/+6
This allows for nexus to be reconfigured dynamically. Change-Id: I103707ab7525ddb29663d7785739a34dff538605 Issue-ID: POLICY-1518 Signed-off-by: Jorge Hernandez <jorge.hernandez-herrero@att.com>
2019-02-04Report KieBase names in rules artifacts.Jorge Hernandez3-7/+24
The rule writer at design time can embed the domain base model(s) supported at design time. This information can be extracted at runtime to match a controller with the domain/model functionality that it can support. Change-Id: I7f7f1320d7d601d50949d0cd09bc48982c222333 Issue-ID: POLICY-1500 Signed-off-by: Jorge Hernandez <jorge.hernandez-herrero@att.com>
2019-01-04Add tooling for drools policy developersJorge Hernandez7-28/+489
This commit adds tooling to better support development activities for drools developers. 1. deploy artifacts to nexus or to local file repository on demand. It also allows to test on a single drools instance without the dependency on a nexus repo. 2. make installation configuration files conform to same convention (all upper case). Change-Id: Ia0a2fc25db2ef21b774a9eee4ed51d4b876a1993 Issue-ID: POLICY-1367 Signed-off-by: Jorge Hernandez <jorge.hernandez-herrero@att.com>