From: PatrikBuhr Date: Wed, 8 Apr 2020 10:52:52 +0000 (+0200) Subject: Added RIC state to RicInfo in the agent NBI X-Git-Tag: 2.0.0~84^2 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=c683cd55dff59dd3d67cf409e397298bee5b7b91;p=nonrtric.git Added RIC state to RicInfo in the agent NBI Change-Id: Ice8d3ee829c38e58d2f2808a8d0453024e250bbc Issue-ID: NONRTRIC-164 Signed-off-by: PatrikBuhr --- diff --git a/policy-agent/src/main/java/org/oransc/policyagent/controllers/PolicyController.java b/policy-agent/src/main/java/org/oransc/policyagent/controllers/PolicyController.java index 09916057..3240cdd1 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/controllers/PolicyController.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/controllers/PolicyController.java @@ -268,7 +268,7 @@ public class PolicyController { } private Mono assertRicStateIdle(Ric ric) { - if (ric.getState() == Ric.RicState.IDLE) { + if (ric.getState() == Ric.RicState.AVAILABLE) { return Mono.just("OK"); } else { RejectionException e = new RejectionException( diff --git a/policy-agent/src/main/java/org/oransc/policyagent/controllers/RicInfo.java b/policy-agent/src/main/java/org/oransc/policyagent/controllers/RicInfo.java index 5a635716..c75270e4 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/controllers/RicInfo.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/controllers/RicInfo.java @@ -39,9 +39,13 @@ class RicInfo { @ApiModelProperty(value = "supported policy types") public final Collection policyTypes; - RicInfo(String name, Collection managedElementIds, Collection policyTypes) { + @ApiModelProperty(value = "state info") + public final String state; + + RicInfo(String name, Collection managedElementIds, Collection policyTypes, String state) { this.ricName = name; this.managedElementIds = managedElementIds; this.policyTypes = policyTypes; + this.state = state; } } diff --git a/policy-agent/src/main/java/org/oransc/policyagent/controllers/RicRepositoryController.java b/policy-agent/src/main/java/org/oransc/policyagent/controllers/RicRepositoryController.java index b7b1c305..1064c6f0 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/controllers/RicRepositoryController.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/controllers/RicRepositoryController.java @@ -97,7 +97,8 @@ public class RicRepositoryController { List result = new ArrayList<>(); for (Ric ric : rics.getRics()) { if (supportingPolicyType == null || ric.isSupportingType(supportingPolicyType)) { - result.add(new RicInfo(ric.name(), ric.getManagedElementIds(), ric.getSupportedPolicyTypeNames())); + result.add(new RicInfo(ric.name(), ric.getManagedElementIds(), ric.getSupportedPolicyTypeNames(), + ric.getState().toString())); } } diff --git a/policy-agent/src/main/java/org/oransc/policyagent/repository/Ric.java b/policy-agent/src/main/java/org/oransc/policyagent/repository/Ric.java index 0242b90f..77dc980a 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/repository/Ric.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/repository/Ric.java @@ -38,7 +38,7 @@ public class Ric { @Setter private RicConfig ricConfig; - private RicState state = RicState.UNDEFINED; + private RicState state = RicState.UNAVAILABLE; private Map supportedPolicyTypes = new HashMap<>(); @Getter @Setter @@ -144,11 +144,11 @@ public class Ric { /** * The agent view of the Ric may be inconsistent. */ - UNDEFINED, + UNAVAILABLE, /** * The normal state. Policies can be configured. */ - IDLE, + AVAILABLE, /** * The agent is synchronizing the view of the Ric. */ diff --git a/policy-agent/src/main/java/org/oransc/policyagent/tasks/RicSupervision.java b/policy-agent/src/main/java/org/oransc/policyagent/tasks/RicSupervision.java index ba050df7..c2dd18ec 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/tasks/RicSupervision.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/tasks/RicSupervision.java @@ -115,7 +115,7 @@ public class RicSupervision { } private Mono checkRicState(RicData ric) { - if (ric.ric.getState() == RicState.UNDEFINED) { + if (ric.ric.getState() == RicState.UNAVAILABLE) { return startSynchronization(ric) // .onErrorResume(t -> Mono.empty()); } else if (ric.ric.getState() == RicState.SYNCHRONIZING) { diff --git a/policy-agent/src/main/java/org/oransc/policyagent/tasks/RicSynchronizationTask.java b/policy-agent/src/main/java/org/oransc/policyagent/tasks/RicSynchronizationTask.java index 54b108e7..ae91d4b2 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/tasks/RicSynchronizationTask.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/tasks/RicSynchronizationTask.java @@ -89,7 +89,7 @@ public class RicSynchronizationTask { @Override protected void hookOnError(Throwable throwable) { logger.warn("Synchronization failure for ric: {}, reason: {}", ric.name(), throwable.getMessage()); - ric.setState(RicState.UNDEFINED); + ric.setState(RicState.UNAVAILABLE); } @Override @@ -126,7 +126,7 @@ public class RicSynchronizationTask { private void onSynchronizationComplete(Ric ric) { logger.debug("Synchronization completed for: {}", ric.name()); - ric.setState(RicState.IDLE); + ric.setState(RicState.AVAILABLE); notifyAllServices("Synchronization completed for:" + ric.name()); } diff --git a/policy-agent/src/test/java/org/oransc/policyagent/ApplicationTest.java b/policy-agent/src/test/java/org/oransc/policyagent/ApplicationTest.java index 9b73892b..19e0425b 100644 --- a/policy-agent/src/test/java/org/oransc/policyagent/ApplicationTest.java +++ b/policy-agent/src/test/java/org/oransc/policyagent/ApplicationTest.java @@ -184,7 +184,7 @@ public class ApplicationTest { ric.getLock().lockBlocking(LockType.EXCLUSIVE); ric.getLock().unlockBlocking(); assertThat(ric.getLock().getLockCounter()).isEqualTo(0); - assertThat(ric.getState()).isEqualTo(Ric.RicState.IDLE); + assertThat(ric.getState()).isEqualTo(Ric.RicState.AVAILABLE); } } @@ -211,7 +211,7 @@ public class ApplicationTest { @Test public void testSynchronization() throws Exception { - addRic("ric").setState(Ric.RicState.UNDEFINED); + addRic("ric").setState(Ric.RicState.UNAVAILABLE); String ricName = "ric"; Policy policy2 = addPolicy("policyId2", "typeName", "service", ricName); @@ -222,7 +222,7 @@ public class ApplicationTest { Policy policy = addPolicy(policyId, "typeName", "service", ricName); // This should be created in the RIC supervision.checkAllRics(); // The created policy should be put in the RIC await().untilAsserted(() -> RicState.SYNCHRONIZING.equals(rics.getRic(ricName).getState())); - await().untilAsserted(() -> RicState.IDLE.equals(rics.getRic(ricName).getState())); + await().untilAsserted(() -> RicState.AVAILABLE.equals(rics.getRic(ricName).getState())); Policies ricPolicies = getA1Client(ricName).getPolicies(); assertThat(ricPolicies.size()).isEqualTo(1); @@ -266,7 +266,7 @@ public class ApplicationTest { String url = putPolicyUrl(serviceName, ricName, policyTypeName, policyInstanceId); final String policyBody = jsonString(); - this.rics.getRic(ricName).setState(Ric.RicState.IDLE); + this.rics.getRic(ricName).setState(Ric.RicState.AVAILABLE); restClient().put(url, policyBody).block(); @@ -290,7 +290,7 @@ public class ApplicationTest { url = putPolicyUrl(serviceName, ricName, policyTypeName, policyInstanceId); this.rics.getRic(ricName).setState(Ric.RicState.SYNCHRONIZING); testErrorCode(restClient().put(url, policyBody), HttpStatus.LOCKED); - this.rics.getRic(ricName).setState(Ric.RicState.IDLE); + this.rics.getRic(ricName).setState(Ric.RicState.AVAILABLE); } @Test @@ -718,7 +718,7 @@ public class ApplicationTest { .controllerName("") // .build(); Ric ric = new Ric(conf); - ric.setState(Ric.RicState.IDLE); + ric.setState(Ric.RicState.AVAILABLE); this.rics.put(ric); return ric; } diff --git a/policy-agent/src/test/java/org/oransc/policyagent/tasks/RicSupervisionTest.java b/policy-agent/src/test/java/org/oransc/policyagent/tasks/RicSupervisionTest.java index 3f8dd067..0a5b27b6 100644 --- a/policy-agent/src/test/java/org/oransc/policyagent/tasks/RicSupervisionTest.java +++ b/policy-agent/src/test/java/org/oransc/policyagent/tasks/RicSupervisionTest.java @@ -108,7 +108,7 @@ public class RicSupervisionTest { types.clear(); policies.clear(); rics.clear(); - RIC_1.setState(RicState.UNDEFINED); + RIC_1.setState(RicState.UNAVAILABLE); RIC_1.clearSupportedPolicyTypes(); } @@ -123,7 +123,7 @@ public class RicSupervisionTest { @Test public void whenRicIdleAndNoChangedPoliciesOrPolicyTypes_thenNoSynchronization() { - RIC_1.setState(RicState.IDLE); + RIC_1.setState(RicState.AVAILABLE); RIC_1.addSupportedPolicyType(POLICY_TYPE_1); rics.put(RIC_1); @@ -144,7 +144,7 @@ public class RicSupervisionTest { @Test public void whenRicUndefined_thenSynchronization() { - RIC_1.setState(RicState.UNDEFINED); + RIC_1.setState(RicState.UNAVAILABLE); rics.put(RIC_1); RicSupervision supervisorUnderTest = spy(new RicSupervision(rics, policies, a1ClientFactory, types, null)); @@ -174,7 +174,7 @@ public class RicSupervisionTest { @Test public void whenRicIdleAndErrorGettingPolicyIdentities_thenNoSynchronization() { - RIC_1.setState(RicState.IDLE); + RIC_1.setState(RicState.AVAILABLE); RIC_1.addSupportedPolicyType(POLICY_TYPE_1); rics.put(RIC_1); @@ -189,7 +189,7 @@ public class RicSupervisionTest { @Test public void whenRicIdleAndNotSameAmountOfPolicies_thenSynchronization() { - RIC_1.setState(RicState.IDLE); + RIC_1.setState(RicState.AVAILABLE); rics.put(RIC_1); policies.put(POLICY_1); @@ -211,7 +211,7 @@ public class RicSupervisionTest { @Test public void whenRicIdleAndSameAmountOfPoliciesButNotSamePolicies_thenSynchronization() { - RIC_1.setState(RicState.IDLE); + RIC_1.setState(RicState.AVAILABLE); rics.put(RIC_1); policies.put(POLICY_1); @@ -233,7 +233,7 @@ public class RicSupervisionTest { @Test public void whenRicIdleAndErrorGettingPolicyTypes_thenNoSynchronization() { - RIC_1.setState(RicState.IDLE); + RIC_1.setState(RicState.AVAILABLE); RIC_1.addSupportedPolicyType(POLICY_TYPE_1); rics.put(RIC_1); @@ -249,7 +249,7 @@ public class RicSupervisionTest { @Test public void whenRicIdleAndNotSameAmountOfPolicyTypes_thenSynchronization() { - RIC_1.setState(RicState.IDLE); + RIC_1.setState(RicState.AVAILABLE); RIC_1.addSupportedPolicyType(POLICY_TYPE_1); rics.put(RIC_1); @@ -277,7 +277,7 @@ public class RicSupervisionTest { .schema("") // .build(); - RIC_1.setState(RicState.IDLE); + RIC_1.setState(RicState.AVAILABLE); RIC_1.addSupportedPolicyType(POLICY_TYPE_1); RIC_1.addSupportedPolicyType(policyType2); rics.put(RIC_1); diff --git a/policy-agent/src/test/java/org/oransc/policyagent/tasks/RicSynchronizationTaskTest.java b/policy-agent/src/test/java/org/oransc/policyagent/tasks/RicSynchronizationTaskTest.java index 7360ff48..f6d2adeb 100644 --- a/policy-agent/src/test/java/org/oransc/policyagent/tasks/RicSynchronizationTaskTest.java +++ b/policy-agent/src/test/java/org/oransc/policyagent/tasks/RicSynchronizationTaskTest.java @@ -108,7 +108,7 @@ public class RicSynchronizationTaskTest { policyTypes = new PolicyTypes(); policies = new Policies(); services = new Services(); - RIC_1.setState(RicState.UNDEFINED); + RIC_1.setState(RicState.UNAVAILABLE); RIC_1.clearSupportedPolicyTypes(); } @@ -135,7 +135,7 @@ public class RicSynchronizationTaskTest { @Test public void ricIdlePolicyTypeInRepo_thenSynchronizationWithReuseOfTypeFromRepoAndCorrectServiceNotified() { - RIC_1.setState(RicState.IDLE); + RIC_1.setState(RicState.AVAILABLE); policyTypes.put(POLICY_TYPE_1); @@ -166,12 +166,12 @@ public class RicSynchronizationTaskTest { assertThat(policyTypes.size()).isEqualTo(1); assertThat(policies.size()).isEqualTo(0); - assertThat(RIC_1.getState()).isEqualTo(RicState.IDLE); + assertThat(RIC_1.getState()).isEqualTo(RicState.AVAILABLE); } @Test public void ricIdlePolicyTypeNotInRepo_thenSynchronizationWithTypeFromRic() throws Exception { - RIC_1.setState(RicState.IDLE); + RIC_1.setState(RicState.AVAILABLE); setUpCreationOfA1Client(); simulateRicWithOnePolicyType(); @@ -189,12 +189,12 @@ public class RicSynchronizationTaskTest { assertThat(policyTypes.size()).isEqualTo(1); assertThat(policyTypes.getType(POLICY_TYPE_1_NAME).schema()).isEqualTo(typeSchema); assertThat(policies.size()).isEqualTo(0); - assertThat(RIC_1.getState()).isEqualTo(RicState.IDLE); + assertThat(RIC_1.getState()).isEqualTo(RicState.AVAILABLE); } @Test public void ricIdleAndHavePolicies_thenSynchronizationWithRecreationOfPolicies() { - RIC_1.setState(RicState.IDLE); + RIC_1.setState(RicState.AVAILABLE); policies.put(POLICY_1); @@ -215,12 +215,12 @@ public class RicSynchronizationTaskTest { assertThat(policyTypes.size()).isEqualTo(0); assertThat(policies.size()).isEqualTo(1); - assertThat(RIC_1.getState()).isEqualTo(RicState.IDLE); + assertThat(RIC_1.getState()).isEqualTo(RicState.AVAILABLE); } @Test public void ricIdleAndErrorDeletingPoliciesFirstTime_thenSynchronizationWithDeletionOfPolicies() { - RIC_1.setState(RicState.IDLE); + RIC_1.setState(RicState.AVAILABLE); policies.put(POLICY_1); @@ -241,12 +241,12 @@ public class RicSynchronizationTaskTest { assertThat(policyTypes.size()).isEqualTo(0); assertThat(policies.size()).isEqualTo(0); - assertThat(RIC_1.getState()).isEqualTo(RicState.IDLE); + assertThat(RIC_1.getState()).isEqualTo(RicState.AVAILABLE); } @Test public void ricIdleAndErrorDeletingPoliciesAllTheTime_thenSynchronizationWithFailedRecovery() { - RIC_1.setState(RicState.IDLE); + RIC_1.setState(RicState.AVAILABLE); policies.put(POLICY_1); @@ -272,12 +272,12 @@ public class RicSynchronizationTaskTest { assertThat(policyTypes.size()).isEqualTo(0); assertThat(policies.size()).isEqualTo(0); - assertThat(RIC_1.getState()).isEqualTo(RicState.UNDEFINED); + assertThat(RIC_1.getState()).isEqualTo(RicState.UNAVAILABLE); } @Test public void ricIdlePolicyTypeInRepo_thenSynchronizationWithErrorOnServiceNotificationErrorLogged() { - RIC_1.setState(RicState.IDLE); + RIC_1.setState(RicState.AVAILABLE); policyTypes.put(POLICY_TYPE_1);