From 805681f9c4f555fd905af4ecd4f0beea8d657327 Mon Sep 17 00:00:00 2001 From: elinuxhenrik Date: Fri, 20 Dec 2019 09:39:43 +0100 Subject: [PATCH] Adapt to new A1Client interface Change-Id: Iebca5426dbd6d42edbbecca4321dc4f25355a097 Issue-ID: NONRTRIC-81 Signed-off-by: elinuxhenrik --- .../policyagent/controllers/PolicyController.java | 1 - .../policyagent/controllers/PolicyTypeInfo.java | 2 -- .../oransc/policyagent/repository/PolicyType.java | 3 -- .../oransc/policyagent/repository/PolicyTypes.java | 4 +-- .../oransc/policyagent/tasks/StartupService.java | 38 +++++++++------------- .../org/oransc/policyagent/ApplicationTest.java | 1 - .../org/oransc/policyagent/MockPolicyAgent.java | 4 +-- .../policyagent/tasks/StartupServiceTest.java | 38 +++++++++------------- 8 files changed, 35 insertions(+), 56 deletions(-) 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 12fa02c0..bee56b0a 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 @@ -155,7 +155,6 @@ public class PolicyController { Vector v = new Vector<>(types.size()); for (PolicyType t : types) { PolicyTypeInfo policyInfo = ImmutablePolicyTypeInfo.builder() // - .schema(t.jsonSchema()) // .name(t.name()) // .build(); v.add(policyInfo); diff --git a/policy-agent/src/main/java/org/oransc/policyagent/controllers/PolicyTypeInfo.java b/policy-agent/src/main/java/org/oransc/policyagent/controllers/PolicyTypeInfo.java index 3beff059..35c8f662 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/controllers/PolicyTypeInfo.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/controllers/PolicyTypeInfo.java @@ -28,6 +28,4 @@ import org.immutables.value.Value; public interface PolicyTypeInfo { public String name(); - - public String schema(); } diff --git a/policy-agent/src/main/java/org/oransc/policyagent/repository/PolicyType.java b/policy-agent/src/main/java/org/oransc/policyagent/repository/PolicyType.java index 896e676a..6b252d4e 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/repository/PolicyType.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/repository/PolicyType.java @@ -27,7 +27,4 @@ import org.immutables.value.Value; @Gson.TypeAdapters public interface PolicyType { public String name(); - - public String jsonSchema(); - } diff --git a/policy-agent/src/main/java/org/oransc/policyagent/repository/PolicyTypes.java b/policy-agent/src/main/java/org/oransc/policyagent/repository/PolicyTypes.java index 63450cb3..0d66e7de 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/repository/PolicyTypes.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/repository/PolicyTypes.java @@ -44,8 +44,8 @@ public class PolicyTypes { types.put(type.name(), type); } - public boolean contains(PolicyType policyType) { - return types.containsKey(policyType.name()); + public boolean contains(String policyType) { + return types.containsKey(policyType); } public synchronized Collection getAll() { diff --git a/policy-agent/src/main/java/org/oransc/policyagent/tasks/StartupService.java b/policy-agent/src/main/java/org/oransc/policyagent/tasks/StartupService.java index 6612e39a..f7420a02 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/tasks/StartupService.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/tasks/StartupService.java @@ -20,9 +20,6 @@ package org.oransc.policyagent.tasks; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; - import org.oransc.policyagent.clients.A1Client; import org.oransc.policyagent.configuration.ApplicationConfig; import org.oransc.policyagent.repository.ImmutablePolicyType; @@ -45,10 +42,6 @@ import reactor.core.publisher.Mono; @Service("startupService") public class StartupService { - private static Gson gson = new GsonBuilder() // - .serializeNulls() // - .create(); // - private static final Logger logger = LoggerFactory.getLogger(StartupService.class); @Autowired @@ -77,42 +70,43 @@ public class StartupService { applicationConfig.initialize(); Flux.fromIterable(applicationConfig.getRicConfigs()) // .map(ricConfig -> new Ric(ricConfig)) // - .doOnNext(ric -> logger.debug("Handling ric: {}", ric.getConfig().name())).flatMap(this::handlePolicyTypes) + .doOnNext(ric -> logger.debug("Handling ric: {}", ric.getConfig().name())) // + .flatMap(this::addPolicyTypesForRic) + .flatMap(this::deletePoliciesForRic) // .flatMap(this::setRicToActive) // .flatMap(this::addRicToRepo) // .subscribe(); } - private Mono handlePolicyTypes(Ric ric) { - a1Client.getAllPolicyTypes(ric.getConfig().baseUrl()) // - .map(policyTypeString -> gson.fromJson(policyTypeString, ImmutablePolicyType.class)) // - .doOnNext(type -> logger.debug("For ric: {}, handling type: {}", ric.getConfig().name(), type.name())) + private Mono addPolicyTypesForRic(Ric ric) { + a1Client.getPolicyTypeIdentities(ric.getConfig().baseUrl()) // + .doOnNext(typeId -> logger.debug("For ric: {}, handling type: {}", ric.getConfig().name(), typeId)) .flatMap(this::addTypeToRepo) // .flatMap(type -> addTypeToRic(ric, type)) // - .flatMap(type -> deletePoliciesForType(ric, type)) // .subscribe(); return Mono.just(ric); } - private Mono addTypeToRepo(PolicyType policyType) { - if (!policyTypes.contains(policyType)) { - policyTypes.put(policyType); + private Mono addTypeToRepo(String policyTypeId) { + ImmutablePolicyType type = ImmutablePolicyType.builder().name(policyTypeId).build(); + if (!policyTypes.contains(policyTypeId)) { + policyTypes.put(type); } - return Mono.just(policyType); + return Mono.just(type); } - private Mono addTypeToRic(Ric ric, PolicyType policyType) { + private Mono addTypeToRic(Ric ric, PolicyType policyType) { ric.addSupportedPolicyType(policyType); - return Mono.just(policyType); + return Mono.empty(); } - private Mono deletePoliciesForType(Ric ric, PolicyType policyType) { - a1Client.getPoliciesForType(ric.getConfig().baseUrl(), policyType.name()) // + private Mono deletePoliciesForRic(Ric ric) { + a1Client.getPolicyIdentities(ric.getConfig().baseUrl()) // .doOnNext(policyId -> logger.debug("deleting policy: {}, for ric: {}", policyId, ric.getConfig().name())) // .flatMap(policyId -> a1Client.deletePolicy(ric.getConfig().baseUrl(), policyId)) // .subscribe(); - return Mono.empty(); + return Mono.just(ric); } private Mono setRicToActive(Ric ric) { 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 103777ac..83ee7603 100644 --- a/policy-agent/src/test/java/org/oransc/policyagent/ApplicationTest.java +++ b/policy-agent/src/test/java/org/oransc/policyagent/ApplicationTest.java @@ -168,7 +168,6 @@ public class ApplicationTest { private PolicyType addPolicyType(String name) { PolicyType type = ImmutablePolicyType.builder() // - .jsonSchema("") // .name(name) // .build(); diff --git a/policy-agent/src/test/java/org/oransc/policyagent/MockPolicyAgent.java b/policy-agent/src/test/java/org/oransc/policyagent/MockPolicyAgent.java index 4074b995..d7b9fec0 100644 --- a/policy-agent/src/test/java/org/oransc/policyagent/MockPolicyAgent.java +++ b/policy-agent/src/test/java/org/oransc/policyagent/MockPolicyAgent.java @@ -101,7 +101,7 @@ public class MockPolicyAgent { @Override public Mono getPolicyType(String nearRtRicUrl, String policyTypeId) { try { - return Mono.just(this.policyTypes.getType(policyTypeId).jsonSchema()); + return Mono.just(this.policyTypes.getType(policyTypeId).toString()); } catch (Exception e) { return Mono.error(e); } @@ -193,7 +193,7 @@ public class MockPolicyAgent { try { String schema = readFile(file); String typeName = title(schema); - PolicyType type = ImmutablePolicyType.builder().name(typeName).jsonSchema(schema).build(); + PolicyType type = ImmutablePolicyType.builder().name(typeName).build(); policyTypes.put(type); } catch (Exception e) { System.out.println("Could not load json schema " + e); diff --git a/policy-agent/src/test/java/org/oransc/policyagent/tasks/StartupServiceTest.java b/policy-agent/src/test/java/org/oransc/policyagent/tasks/StartupServiceTest.java index f75d820c..045a8c7a 100644 --- a/policy-agent/src/test/java/org/oransc/policyagent/tasks/StartupServiceTest.java +++ b/policy-agent/src/test/java/org/oransc/policyagent/tasks/StartupServiceTest.java @@ -26,14 +26,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.oransc.policyagent.repository.Ric.RicState.ACTIVE; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; - import java.util.Vector; import org.junit.jupiter.api.Test; @@ -68,7 +64,9 @@ public class StartupServiceTest { private static final String MANAGED_NODE_C = "nodeC"; private static final String POLICY_TYPE_1_NAME = "type1"; + private static final PolicyType POLICY_TYPE_1 = ImmutablePolicyType.builder().name(POLICY_TYPE_1_NAME).build(); private static final String POLICY_TYPE_2_NAME = "type2"; + private static final PolicyType POLICY_TYPE_2 = ImmutablePolicyType.builder().name(POLICY_TYPE_2_NAME).build(); private static final String POLICY_ID_1 = "policy1"; private static final String POLICY_ID_2 = "policy2"; @@ -78,10 +76,6 @@ public class StartupServiceTest { @Mock A1Client a1ClientMock; - private static Gson gson = new GsonBuilder() // - .serializeNulls() // - .create(); // - @Test public void startup_allOk() throws ServiceException { Vector ricConfigs = new Vector<>(2); @@ -89,14 +83,12 @@ public class StartupServiceTest { ricConfigs.add(getRicConfig(SECOND_RIC_NAME, SECOND_RIC_URL, MANAGED_NODE_B, MANAGED_NODE_C)); when(appConfigMock.getRicConfigs()).thenReturn(ricConfigs); - PolicyType type1 = ImmutablePolicyType.builder().name(POLICY_TYPE_1_NAME).jsonSchema("{}").build(); - Flux fluxType1 = Flux.just(gson.toJson(type1)); - PolicyType type2 = ImmutablePolicyType.builder().name(POLICY_TYPE_2_NAME).jsonSchema("{}").build(); - Flux fluxType2 = Flux.just(gson.toJson(type2)); - when(a1ClientMock.getAllPolicyTypes(anyString())).thenReturn(fluxType1) + Flux fluxType1 = Flux.just(POLICY_TYPE_1_NAME); + Flux fluxType2 = Flux.just(POLICY_TYPE_2_NAME); + when(a1ClientMock.getPolicyTypeIdentities(anyString())).thenReturn(fluxType1) .thenReturn(fluxType1.concatWith(fluxType2)); Flux policies = Flux.just(new String[] {POLICY_ID_1, POLICY_ID_2}); - when(a1ClientMock.getPoliciesForType(anyString(), anyString())).thenReturn(policies); + when(a1ClientMock.getPolicyIdentities(anyString())).thenReturn(policies); when(a1ClientMock.deletePolicy(anyString(), anyString())).thenReturn(Mono.empty()); Rics rics = new Rics(); @@ -107,16 +99,16 @@ public class StartupServiceTest { await().untilAsserted(() -> assertThat(policyTypes.size()).isEqualTo(2)); - verify(a1ClientMock).getAllPolicyTypes(FIRST_RIC_URL); + verify(a1ClientMock).getPolicyTypeIdentities(FIRST_RIC_URL); verify(a1ClientMock).deletePolicy(FIRST_RIC_URL, POLICY_ID_1); verify(a1ClientMock).deletePolicy(FIRST_RIC_URL, POLICY_ID_2); - verify(a1ClientMock).getAllPolicyTypes(SECOND_RIC_URL); - verify(a1ClientMock, times(2)).deletePolicy(SECOND_RIC_URL, POLICY_ID_1); - verify(a1ClientMock, times(2)).deletePolicy(SECOND_RIC_URL, POLICY_ID_2); + verify(a1ClientMock).getPolicyTypeIdentities(SECOND_RIC_URL); + verify(a1ClientMock).deletePolicy(SECOND_RIC_URL, POLICY_ID_1); + verify(a1ClientMock).deletePolicy(SECOND_RIC_URL, POLICY_ID_2); - assertEquals(type1, policyTypes.getType(POLICY_TYPE_1_NAME), "Not correct type added."); - assertEquals(type2, policyTypes.getType(POLICY_TYPE_2_NAME), "Not correct type added."); + assertTrue(policyTypes.contains(POLICY_TYPE_1_NAME), POLICY_TYPE_1_NAME + " not added to PolicyTypes."); + assertTrue(policyTypes.contains(POLICY_TYPE_2_NAME), POLICY_TYPE_2_NAME + " not added to PolicyTypes."); assertEquals(2, rics.size(), "Correct number of Rics not added to Rics"); Ric firstRic = rics.getRic(FIRST_RIC_NAME); @@ -124,7 +116,7 @@ public class StartupServiceTest { assertEquals(FIRST_RIC_NAME, firstRic.name(), "Not correct Ric \"" + FIRST_RIC_NAME + "\" added to Rics"); assertEquals(ACTIVE, firstRic.state(), "Not correct state for \"" + FIRST_RIC_NAME + "\""); assertEquals(1, firstRic.getSupportedPolicyTypes().size(), "Not correct no of types supported"); - assertTrue(firstRic.isSupportingType(type1.name()), "Not correct type supported"); + assertTrue(firstRic.isSupportingType(POLICY_TYPE_1_NAME), "Not correct type supported"); assertEquals(1, firstRic.getManagedNodes().size(), "Not correct no of managed nodes"); assertTrue(firstRic.isManaging(MANAGED_NODE_A), "Not managed by node"); @@ -133,8 +125,8 @@ public class StartupServiceTest { assertEquals(SECOND_RIC_NAME, secondRic.name(), "Not correct Ric \"" + SECOND_RIC_NAME + "\" added to Rics"); assertEquals(ACTIVE, secondRic.state(), "Not correct state for \"" + SECOND_RIC_NAME + "\""); assertEquals(2, secondRic.getSupportedPolicyTypes().size(), "Not correct no of types supported"); - assertTrue(secondRic.isSupportingType(type1.name()), "Not correct type supported"); - assertTrue(secondRic.isSupportingType(type2.name()), "Not correct type supported"); + assertTrue(secondRic.isSupportingType(POLICY_TYPE_1_NAME), "Not correct type supported"); + assertTrue(secondRic.isSupportingType(POLICY_TYPE_2_NAME), "Not correct type supported"); assertEquals(2, secondRic.getManagedNodes().size(), "Not correct no of managed nodes"); assertTrue(secondRic.isManaging(MANAGED_NODE_B), "Not correct managed node"); assertTrue(secondRic.isManaging(MANAGED_NODE_C), "Not correct managed node"); -- 2.16.6