Age | Commit message (Collapse) | Author | Files | Lines |
|
Made the following changes:
- Enhanced SDNR Actor to support any operation name specified within
the policy, constructing the same request, but passing a different
"RPC name" and "Action" in the request.
- Added ControlLoopResponse to OperationOutcome
- Modified SDNR Actor to populate ControlLoopResponse
Issue-ID: POLICY-2468
Change-Id: I50ee0674077d975f3cd211454656edc47d78520f
Signed-off-by: Jim Hahn <jrh3@att.com>
|
|
Modified new actor code to generate the sub request ID
before invoking the start callback.
Issue-ID: POLICY-2461
Change-Id: I4adabd6efda2c30c0e2da31f95f01dd5fe546c0a
Signed-off-by: Jim Hahn <jrh3@att.com>
|
|
Also modified HttpParams to allow "path" to be blank to support any
cases that really have no "path" to append to the context URI base
path.
Issue-ID: POLICY-2405
Change-Id: I49eebde6759659d2804b5a11c1504c37674bd0c4
Signed-off-by: Jim Hahn <jrh3@att.com>
|
|
Missing various fields within the request structure (e.g.,
ONAPName). Fixed.
In the process, also modified makeGuardPayload() so that it
only constructs the inner "guard" JSON object, making it easier
for invoking code to modify it.
Issue-ID: POLICY-2434
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: I7d34a279845bb98425caf66565eab7513d310815
|
|
If the topic processResponse() method throws an exception, then
the actor/operation is left in an incomplete state.
Issue-ID: POLICY-2434
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: I6c5d149d4046fbfb970c8dd831fc3938516d1115
|
|
Modified the Guard Actor to check the "disabled" flag during
start() instead of waiting until it gets down into startOperationAsync.
Issue-ID: POLICY-1625-guard-disabled
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: Id6ccf506b82504552d6e1f4637ad11e2e41e77e5
|
|
Rule notifications need the subrequest ID to be populated in the
OperationOutcome object, where possible.
Issue-ID: POLICY-2385
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: Ic44320f67ad8df7bcb3000cfa667f95427818e71
|
|
Actors only log the URI, without the host and port info. Modified
to log the full URL.
Also adjusted URLs for trailing "/".
Issue-ID: POLICY-1625
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: I0c9a2d139258ef23bc363a873b56f5cb4680247d
|
|
Also added legacy ModifyConfig as an operation within APPC-LCM.
Added logging to topic registration keys.
Issue-ID: POLICY-2403
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: Ia54a573fd6218a8afe870184b9a3baebc05b766a
|
|
Issue-ID: POLICY-1625
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: I1efa70785e162c9a02ed90f5f8d94e85d2432d73
|
|
|
|
|
|
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
|
|
|
|
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
|
|
|
|
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
|
|
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
|
|
Issue-ID: POLICY-2385
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: I7745e8286dd6f086941b979f16b2328bfa066788
|
|
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-2371
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: I3faf0276e8039dc43a976d18ff8e704fdbec3d49
|
|
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
|
|
remove white-space in policy/models
Issue-ID: POLICY-1264
Change-Id: I8856fc7cd2c2a57af0031637870ca33c684bacf5
Signed-off-by: ning.xi <ning.xi@est.tech>
|