From ce1713127bd5445b3890efddf4609cb8b8d58054 Mon Sep 17 00:00:00 2001 From: elinuxhenrik Date: Mon, 9 Dec 2019 15:53:00 +0100 Subject: [PATCH] Fix startup Change-Id: Ie90db67e18464f03afde11c7ebaeee57a15ed4e1 Issue-ID: NONRTRIC-81 Signed-off-by: elinuxhenrik --- .../java/org/oransc/policyagent/Application.java | 23 ++++++++++++++++++ .../main/java/org/oransc/policyagent/Beans.java | 4 +--- .../controllers/RicRepositoryController.java | 28 ++++++++++++---------- .../org/oransc/policyagent/repository/Ric.java | 11 ++++++++- .../org/oransc/policyagent/ApplicationTest.java | 19 --------------- .../controllers/StartupServiceTest.java | 2 +- 6 files changed, 51 insertions(+), 36 deletions(-) diff --git a/policy-agent/src/main/java/org/oransc/policyagent/Application.java b/policy-agent/src/main/java/org/oransc/policyagent/Application.java index 717a734e..e4b6e5a4 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/Application.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/Application.java @@ -17,16 +17,39 @@ * limitations under the License. * ========================LICENSE_END=================================== */ + package org.oransc.policyagent; +import org.oransc.policyagent.controllers.StartupService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.Bean; @SpringBootApplication public class Application { + @Autowired + private StartupService startupService; + public static void main(String[] args) { SpringApplication.run(Application.class, args); } + /** + * Starts the se4rvice and reads the configuration. + * + * @param ctx + * @return + */ + @Bean + public CommandLineRunner commandLineRunner(ApplicationContext ctx) { + return args -> { + + startupService.startup(); + }; + } + } diff --git a/policy-agent/src/main/java/org/oransc/policyagent/Beans.java b/policy-agent/src/main/java/org/oransc/policyagent/Beans.java index cf88479f..c8f774c4 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/Beans.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/Beans.java @@ -29,8 +29,6 @@ import org.springframework.context.annotation.Configuration; @Configuration public class Beans { - private Rics rics = new Rics(); - @Bean public Policies getPolicies() { return new Policies(); @@ -43,7 +41,7 @@ public class Beans { @Bean public Rics getRics() { - return rics; + return new Rics(); } @Bean 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 34fc4c1e..7c63dcd8 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 @@ -17,20 +17,20 @@ * limitations under the License. * ========================LICENSE_END=================================== */ + package org.oransc.policyagent.controllers; import com.google.gson.Gson; import com.google.gson.GsonBuilder; - import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; - import java.util.Optional; import java.util.Vector; - import org.oransc.policyagent.configuration.ApplicationConfig; import org.oransc.policyagent.configuration.RicConfig; +import org.oransc.policyagent.repository.Ric; +import org.oransc.policyagent.repository.Rics; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -42,13 +42,17 @@ import org.springframework.web.bind.annotation.RestController; public class RicRepositoryController { private final ApplicationConfig appConfig; + + @Autowired + private Rics rics; + private static Gson gson = new GsonBuilder() // .serializeNulls() // .create(); // @Autowired - RicRepositoryController(ApplicationConfig config) { - this.appConfig = config; + RicRepositoryController(ApplicationConfig appConfig) { + this.appConfig = appConfig; } /** @@ -84,14 +88,14 @@ public class RicRepositoryController { @ApiResponse(code = 200, message = "OK") // }) public ResponseEntity getRics() { - Vector result = new Vector(); - for (RicConfig ricConfig : this.appConfig.getRicConfigs()) { - RicInfo ric = ImmutableRicInfo.builder() // - .managedElementIds(ricConfig.managedElementIds()) // - .name(ricConfig.name()) // - .build(); - result.add(ric); + Vector result = new Vector<>(); + for (Ric ric : rics.getRics()) { + result.add(ImmutableRicInfo.builder() // + .name(ric.name()) // + .managedElementIds(ric.getManagedNodes()) // + .build()); } + return new ResponseEntity<>(gson.toJson(result), HttpStatus.OK); } 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 bfd8ef65..ffe493d2 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 @@ -20,8 +20,8 @@ package org.oransc.policyagent.repository; +import java.util.Vector; import org.oransc.policyagent.configuration.RicConfig; -import org.oransc.policyagent.repository.Ric.RicState; /** * Represents the dynamic information about a NearRealtime-RIC. @@ -51,6 +51,15 @@ public class Ric { state = newState; } + /** + * Gets the nodes managed by this Ric. + * + * @return a vector containing the nodes managed by this Ric. + */ + public Vector getManagedNodes() { + return ricConfig.managedElementIds(); + } + /** * Determines if the given node is managed by this 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 8bcd99aa..beef5863 100644 --- a/policy-agent/src/test/java/org/oransc/policyagent/ApplicationTest.java +++ b/policy-agent/src/test/java/org/oransc/policyagent/ApplicationTest.java @@ -24,12 +24,9 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertFalse; import java.net.URL; -import java.util.Vector; import org.junit.Test; import org.junit.runner.RunWith; import org.oransc.policyagent.configuration.ApplicationConfig; -import org.oransc.policyagent.configuration.ImmutableRicConfig; -import org.oransc.policyagent.configuration.RicConfig; import org.oransc.policyagent.exceptions.ServiceException; import org.oransc.policyagent.repository.ImmutablePolicy; import org.oransc.policyagent.repository.ImmutablePolicyType; @@ -37,7 +34,6 @@ import org.oransc.policyagent.repository.Policies; import org.oransc.policyagent.repository.Policy; import org.oransc.policyagent.repository.PolicyType; import org.oransc.policyagent.repository.PolicyTypes; -import org.oransc.policyagent.repository.Ric; import org.oransc.policyagent.repository.Rics; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -114,7 +110,6 @@ public class ApplicationTest { String url = "http://localhost:" + port + "/policy?type=type1&instance=instance1&ric=ric1&service=service1"; String json = "{}"; addPolicyType("type1"); - addRic(beans.getRics(), "ric1", url); this.restTemplate.put(url, json); @@ -125,19 +120,6 @@ public class ApplicationTest { assertThat(policy.ownerServiceName()).isEqualTo("service1"); } - private void addRic(Rics rics, String ric, String url) { - Vector nodeNames = new Vector<>(1); - nodeNames.add("node1"); - RicConfig ricConfig = ImmutableRicConfig.builder() // - .name(ric) // - .baseUrl(url) // - .managedElementIds(nodeNames) // - .build(); - Ric ricObj = new Ric(ricConfig); - - rics.put(ricObj); - } - private PolicyType addPolicyType(String name) { PolicyType type = ImmutablePolicyType.builder() // .jsonSchema("") // @@ -177,7 +159,6 @@ public class ApplicationTest { @Test public void getPolicies() throws Exception { String url = "http://localhost:" + port + "/policies"; - addRic(beans.getRics(), "ric1", url); addPolicy("id1", "type1", "service1"); addPolicy("id2", "type2", "service2"); diff --git a/policy-agent/src/test/java/org/oransc/policyagent/controllers/StartupServiceTest.java b/policy-agent/src/test/java/org/oransc/policyagent/controllers/StartupServiceTest.java index 5a8f42c8..5900f144 100644 --- a/policy-agent/src/test/java/org/oransc/policyagent/controllers/StartupServiceTest.java +++ b/policy-agent/src/test/java/org/oransc/policyagent/controllers/StartupServiceTest.java @@ -36,7 +36,7 @@ public class StartupServiceTest { @Test public void startup_allOk() { - appConfigMock = mock(ApplicationConfig.class); + ApplicationConfig appConfigMock = mock(ApplicationConfig.class); Vector ricConfigs = new Vector<>(2); Vector firstNodes = new Vector(1); firstNodes.add("nodeA"); -- 2.16.6