Age | Commit message (Collapse) | Author | Files | Lines |
|
Issue-ID: POLICY-1625
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: Ib9e6e4d988013966317df5b7c15867e3691b5748
|
|
Issue-ID: POLICY-1625
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: I1efa70785e162c9a02ed90f5f8d94e85d2432d73
|
|
APPC uses encode Instant fields as milliseconds instead of as
ISO date strings.
Issue-ID: POLICY-2363
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: Id9bedb11c43264f882b6fd044155621c8ccc79f6
|
|
|
|
|
|
Code was publishing and then logging the message. Reversed the
order.
Issue-ID: POLICY-1625
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: I1b5dd5e96d86d818cd38d2a671fb37c2576e2054
|
|
When an Actor operation is canceled it's done on purpose, yet the whole
exception stack trace is included in the log. Modified the code to
leave out the stack trace for cancellations. I don't THINK this will
cause a sonar issue, as it isn't the exception is never caught via
a "catch" clause.
Issue-ID: POLICY-1625
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: Ib5238e4791ae491b30286cdc8ed9caf67432dc26
|
|
A&AI tenant query is prepending the target entity with "/", but it should
not. Fixed it.
Modified A&AI and SO actors to get path prefixes from parameters.
Fixed a bug in an A&AI simulator response (extra "}" at the end.
Issue-ID: POLICY-2349
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: I71f8b1e5fb8a4bd29b4f616a7757d366c7d58127
|
|
|
|
When an operation cannot be configured, the message did not
include information describing the issue. Fixed it.
Issue-ID: POLICY-1625
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: I671bf27693a8bfa87305099fcefa0e4e0c48928d
|
|
Adding test cases for cds actor, operator, operation & manager.
Coverage is more than 95% overall.
Fixed review comments.
Issue-ID: POLICY-2384
Change-Id: I64beeb0c46918b990ad7e67248559169fc7940a1
Signed-off-by: Ram Krishna Verma <ram_krishna.verma@bell.ca>
|
|
Actor for SDNR and necessary JUnit tests.
Removed the Pair code.
Issue-ID: POLICY-2382
Change-Id: I3da1d95f431cc076f12e9ad26280b92058fe51cc
Signed-off-by: Pamela Dragosh <pdragosh@research.att.com>
|
|
|
|
|
|
The Guard Actor should be adding a GuardOperator, but it was
adding an HttpOperator, instead. Fixed the code.
Issue-ID: POLICY-2350
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: I03517e993442da13a4dbd1eb0c4a0318b0c1c9f2
|
|
When actors with duplicate names are loaded, a way is needed to
determine which should take precedence. Added a sequence number to
Actor to facilitate this. Unfortunately, couldn't use OrderedServiceImpl,
because it only creates the Actors once, which would break a number
of junit tests.
Issue-ID: POLICY-1625
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: I1ade92f4fe516cfc54bb92d0a3624c67e8981075
|
|
If a task outcome is null, then sequence() throws an NPE. Modified
it to treat a null outcome as a failure.
Issue-ID: POLICY-1625
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: I57b8be27f72c7cbf43e0b3b8816696ab1928f396
|
|
It's a bit of a pain to pass Map<String, Map<String,Object>> to
the ActorService configure() method. Changed it to simply take
a Map<String,Object>, as it had been in a previous iteration.
Issue-ID: POLICY-1625
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: Ib6e703115027bc4919cc93762ca5b38d254f2b8f
|
|
|
|
Now that ActorService is no longer a singleton, the constructor
should be public so other classes can create an instance.
Also added a test to verify that each ActorService instance gets
its own instances of the actors.
Issue-ID: POLICY-1625
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: I78cabecc0ca6b355696a5d27489a4e59b6e7c012
|
|
Modified the Custom Query Operation to ignore the target entity
passed via the "params" and always use the vserver name found in
the enrichment data.
Issue-ID: POLICY-2349
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: If2c45df2d0377ca08059bdbfa0bcc3d3f043c5b9
|
|
|
|
|
|
Eliminated a few more xxxAsync calls in Actors. Now, the remaining
xxxAsync calls are necessary so that the callbacks are executed using
the executor specified via the "params".
Issue-ID: POLICY-1625
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: Ia4ff758f71f8bbe014ae5b1a58d8439c0d4ea2ed
|
|
|
|
1) Create the operator, operation & manager classes for gRPC request.
2) Use CompletableFuture to track CDS request flow.
Issue-ID: POLICY-2384
Change-Id: I84e30131a69c2d24c1871ceebced2b69194f619c
Signed-off-by: Ram Krishna Verma <ram_krishna.verma@bell.ca>
|
|
|
|
The ActorService singleton is not needed at this time, so it was
removed.
Issue-ID: POLICY-1625
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: I9b4cbb72cedbeb77b39422e71650ab60c9aec7ec
|
|
Changed the key by which the VF Count is stored within the context
so that each Target can have its own VF Count. Also moved VF Count
code from VfModuleCreate to SoOperation, to hide the determination
of the VF Count "key".
Fixed sonar issue about return "null" instead of returning an empty
list - modified the code to use Optional.
Issue-ID: POLICY-2371
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: Ia23eabea0edf6857372e269a2db1a21e741824c6
|
|
Issue-ID: POLICY-2350
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: I3e9c9aae474d4b288a162243bc492b301d1044c0
|
|
Issue-ID: POLICY-2385
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: I7745e8286dd6f086941b979f16b2328bfa066788
|
|
|
|
Issue-ID: POLICY-2385
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: I12a7d55b118baa5f0f849855fbcf0602a1208b52
|
|
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
|
|
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
|
|
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
|
|
|
|
Issue-ID: POLICY-2350
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: Ib68c22a1154607563cb8a657b8101757a29b47ef
|
|
Issue-ID: POLICY-2371
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: I3faf0276e8039dc43a976d18ff8e704fdbec3d49
|
|
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
|
|
|
|
Issue-ID: POLICY-2363
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: I21908c9875aa1d2ad3678cb7613b5a3e1fada340
|
|
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
|
|
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>
|
|
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
|
|
Issue-ID: POLICY-2363
Change-Id: I5d29d85f6c5f40fb6c8f1bf678d9c718760a7558
Signed-off-by: Jim Hahn <jrh3@att.com>
|
|
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
|
|
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>
|
|
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
|
|
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
|