Add multi-layer RIC instance selector
[portal/ric-dashboard.git] / webapp-backend / src / main / java / org / oransc / ric / portal / dashboard / config / E2ManagerConfiguration.java
index 1983623..ef9ab45 100644 (file)
@@ -2,7 +2,7 @@
  * ========================LICENSE_START=================================
  * O-RAN-SC
  * %%
- * Copyright (C) 2019 AT&T Intellectual Property and Nokia
+ * Copyright (C) 2019 AT&T Intellectual Property
  * %%
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,9 +21,7 @@ package org.oransc.ric.portal.dashboard.config;
 
 import java.lang.invoke.MethodHandles;
 
-import org.oransc.ric.e2mgr.client.api.HealthCheckApi;
-import org.oransc.ric.e2mgr.client.api.NodebApi;
-import org.oransc.ric.e2mgr.client.invoker.ApiClient;
+import org.oransc.ric.portal.dashboard.model.RicRegionList;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,42 +29,33 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Profile;
-import org.springframework.util.Assert;
-import org.springframework.web.client.RestTemplate;
 
 /**
- * Creates an E2 manager client as a bean to be managed by the Spring container.
+ * Creates an E2 manager client builder as a bean to be managed by the Spring
+ * container.
  */
 @Configuration
-@Profile("!mock")
+@Profile("!test")
 public class E2ManagerConfiguration {
 
        private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
        // Populated by the autowired constructor
-       private final String e2mgrBasepath;
+       private final String urlSuffix;
+       private final RicRegionList instanceConfig;
 
        @Autowired
-       public E2ManagerConfiguration(@Value("${e2mgr.basepath}") final String e2mgrBasepath) {
-               Assert.notNull(e2mgrBasepath, "base path must not be null");
-               logger.info("Configuring E2 Manager at base path {}", e2mgrBasepath);
-               this.e2mgrBasepath = e2mgrBasepath;
-       }
-
-       private ApiClient apiClient() {
-               ApiClient apiClient = new ApiClient(new RestTemplate());
-               apiClient.setBasePath(e2mgrBasepath);
-               return apiClient;
-       }
-
-       @Bean
-       public HealthCheckApi e2HealthCheckApi() {
-               return new HealthCheckApi(apiClient());
+       public E2ManagerConfiguration(@Value("${e2mgr.url.suffix}") final String urlSuffix,
+                       final RicRegionList instanceConfig) {
+               logger.info("ctor: URL suffix {}", urlSuffix);
+               this.urlSuffix = urlSuffix;
+               this.instanceConfig = instanceConfig;
        }
 
        @Bean
-       public NodebApi e2NodebApi() {
-               return new NodebApi(apiClient());
+       // The bean (method) name must be globally unique
+       public E2ManagerApiBuilder e2ManagerApiBuilder() {
+               return new E2ManagerApiBuilder(instanceConfig, urlSuffix);
        }
 
 }