diff options
author | xuegao <xg353y@intl.att.com> | 2020-01-06 13:15:05 +0100 |
---|---|---|
committer | xuegao <xg353y@intl.att.com> | 2020-01-06 16:12:14 +0100 |
commit | bcbc25bbb78876db27fc326aadf89086200c3c76 (patch) | |
tree | 841b0a81993274ca10933ecb72774ade33082d6c | |
parent | c488fed6bb0d06acad9aefda54e77c5c687eb941 (diff) |
Add refresh op policy json api
Add the new api to refresh the operational policy json representation
values.
Issue-ID: CLAMP-585
Change-Id: I8c494f8d5f7ee8672f054444c368fdb396fb208f
Signed-off-by: xuegao <xg353y@intl.att.com>
5 files changed, 71 insertions, 1 deletions
diff --git a/src/main/java/org/onap/clamp/loop/LoopController.java b/src/main/java/org/onap/clamp/loop/LoopController.java index 72726fa3f..64874a32d 100644 --- a/src/main/java/org/onap/clamp/loop/LoopController.java +++ b/src/main/java/org/onap/clamp/loop/LoopController.java @@ -117,4 +117,14 @@ public class LoopController { Loop loop = loopService.getLoop(loopName); return loop != null ? loop.getSvgRepresentation() : null; } + + /** + * Refresh the Operational Policy Json representation of the loop. + * + * @param loopName The loop name + * @return The refreshed Loop + */ + public Loop refreshOpPolicyJsonRepresentation(String loopName) { + return loopService.refreshOpPolicyJsonRepresentation(loopName); + } } diff --git a/src/main/java/org/onap/clamp/loop/LoopService.java b/src/main/java/org/onap/clamp/loop/LoopService.java index d1ab0e396..303ae683a 100644 --- a/src/main/java/org/onap/clamp/loop/LoopService.java +++ b/src/main/java/org/onap/clamp/loop/LoopService.java @@ -111,4 +111,14 @@ public class LoopService { return loopsRepository.findById(loopName) .orElseThrow(() -> new EntityNotFoundException("Couldn't find closed loop named: " + loopName)); } + + public Loop refreshOpPolicyJsonRepresentation(String loopName) { + Loop loop = findClosedLoopByName(loopName); + Set<OperationalPolicy> policyList = loop.getOperationalPolicies(); + for (OperationalPolicy policy : policyList) { + policy.updateJsonRepresentation(); + } + loop.setOperationalPolicies(policyList); + return loopsRepository.save(loop); + } } diff --git a/src/main/java/org/onap/clamp/policy/operational/OperationalPolicy.java b/src/main/java/org/onap/clamp/policy/operational/OperationalPolicy.java index 14112694e..486210ea9 100644 --- a/src/main/java/org/onap/clamp/policy/operational/OperationalPolicy.java +++ b/src/main/java/org/onap/clamp/policy/operational/OperationalPolicy.java @@ -247,4 +247,13 @@ public class OperationalPolicy implements Serializable, Policy { return result; } + public void updateJsonRepresentation () { + try { + this.jsonRepresentation = OperationalPolicyRepresentationBuilder + .generateOperationalPolicySchema(loop.getModelService()); + } catch (JsonSyntaxException | IOException | NullPointerException e) { + logger.error("Unable to generate the operational policy Schema ... ", e); + this.jsonRepresentation = new JsonObject(); + } + } } diff --git a/src/main/resources/clds/camel/rest/clamp-api-v2.xml b/src/main/resources/clds/camel/rest/clamp-api-v2.xml index cf99625ee..a0a3eb104 100644 --- a/src/main/resources/clds/camel/rest/clamp-api-v2.xml +++ b/src/main/resources/clds/camel/rest/clamp-api-v2.xml @@ -238,6 +238,48 @@ </route> </put> <put + uri="/v2/loop/refreshOpPolicyJsonSchema/{loopName}" + outType="org.onap.clamp.loop.Loop" + produces="application/json"> + <route> + <removeHeaders + pattern="*" + excludePattern="loopName" /> + <doTry> + <log + loggingLevel="INFO" + message="Refresh Operational Policy UI for loop: ${header.loopName}" /> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=startLog(*, 'REFRESH OP Policy UI request')" /> + <to + uri="bean:org.onap.clamp.authorization.AuthorizationController?method=authorize(*,'cl','','update')" /> + <to uri="direct:load-loop" /> + <to + uri="bean:org.onap.clamp.loop.LoopController?method=refreshOpPolicyJsonRepresentation(${header.loopName})" /> + <log + loggingLevel="INFO" + message="REFRESH request successfully executed for loop: ${header.loopName}" /> + <to + uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('REFRESH request successfully executed','INFO',${exchangeProperty[loopObject]})" /> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=endLog()" /> + <doCatch> + <exception>java.lang.Exception</exception> + <handled> + <constant>false</constant> + </handled> + <to + uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=errorLog()" /> + <log + loggingLevel="ERROR" + message="REFRESH request failed for loop: ${header.loopName}" /> + <to + uri="bean:org.onap.clamp.loop.log.LoopLogService?method=addLog('REFRESH request failed, Error reported: ${exception} - Body: ${exception.responseBody}','ERROR',${exchangeProperty[loopObject]})" /> + </doCatch> + </doTry> + </route> + </put> + <put uri="/v2/loop/undeploy/{loopName}" outType="org.onap.clamp.loop.Loop" produces="application/json"> diff --git a/src/main/resources/clds/camel/routes/loop-flows.xml b/src/main/resources/clds/camel/routes/loop-flows.xml index 036e8efc8..57d32f0fe 100644 --- a/src/main/resources/clds/camel/routes/loop-flows.xml +++ b/src/main/resources/clds/camel/routes/loop-flows.xml @@ -17,7 +17,6 @@ <stop /> </when> </route> - <route id="update-policy-status-for-loop"> <from uri="direct:update-policy-status-for-loop" /> <setProperty propertyName="policyComponent"> |