Add SDNR A1 client in policy-agent
[nonrtric.git] / policy-agent / src / main / java / org / oransc / policyagent / clients / SdncOscA1Client.java
@@ -35,18 +35,19 @@ import org.slf4j.LoggerFactory;
 import reactor.core.publisher.Flux;
 import reactor.core.publisher.Mono;
 
-public class ControllerA1Client implements A1Client {
+public class SdncOscA1Client implements A1Client {
     private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-    private static final String A1_CONTROLLER_URL =
-        "http://admin:Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U@a1-controller-container:8181/restconf/operations";
+    private static final String A1_CONTROLLER_URL = "http://a1-controller-container:8181/restconf/operations";
+    private static final String A1_CONTROLLER_USERNAME = "admin";
+    private static final String A1_CONTROLLER_PASSWORD = "Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U";
 
     private final RicConfig ricConfig;
     private final AsyncRestClient restClient;
 
-    public ControllerA1Client(RicConfig ricConfig) {
+    public SdncOscA1Client(RicConfig ricConfig) {
         this.ricConfig = ricConfig;
         this.restClient = new AsyncRestClient(A1_CONTROLLER_URL);
-        logger.debug("ControllerA1Client for ric: {}", this.ricConfig.name());
+        logger.debug("SdncOscA1Client for ric: {}", this.ricConfig.name());
     }
 
     @Override
@@ -56,7 +57,9 @@ public class ControllerA1Client implements A1Client {
         String inputJsonString = createInputJsonString(paramsJson);
         logger.debug("POST getPolicyTypeIdentities inputJsonString = {}", inputJsonString);
 
-        return restClient.post("/A1-ADAPTER-API:getPolicyTypeIdentities", inputJsonString) //
+        return restClient
+            .postWithAuthHeader("/A1-ADAPTER-API:getPolicyTypeIdentities", inputJsonString, A1_CONTROLLER_USERNAME,
+                A1_CONTROLLER_PASSWORD) //
             .flatMap(response -> getValueFromResponse(response, "policy-type-id-list")) //
             .flatMap(this::parseJsonArrayOfString);
     }
@@ -68,7 +71,9 @@ public class ControllerA1Client implements A1Client {
         String inputJsonString = createInputJsonString(paramsJson);
         logger.debug("POST getPolicyIdentities inputJsonString = {}", inputJsonString);
 
-        return restClient.post("/A1-ADAPTER-API:getPolicyIdentities", inputJsonString) //
+        return restClient
+            .postWithAuthHeader("/A1-ADAPTER-API:getPolicyIdentities", inputJsonString, A1_CONTROLLER_USERNAME,
+                A1_CONTROLLER_PASSWORD) //
             .flatMap(response -> getValueFromResponse(response, "policy-id-list")) //
             .flatMap(this::parseJsonArrayOfString);
     }
@@ -81,7 +86,9 @@ public class ControllerA1Client implements A1Client {
         String inputJsonString = createInputJsonString(paramsJson);
         logger.debug("POST getPolicyType inputJsonString = {}", inputJsonString);
 
-        return restClient.post("/A1-ADAPTER-API:getPolicyType", inputJsonString) //
+        return restClient
+            .postWithAuthHeader("/A1-ADAPTER-API:getPolicyType", inputJsonString, A1_CONTROLLER_USERNAME,
+                A1_CONTROLLER_PASSWORD) //
             .flatMap(response -> getValueFromResponse(response, "policy-type")) //
             .flatMap(this::extractPolicySchema);
     }
@@ -96,7 +103,9 @@ public class ControllerA1Client implements A1Client {
         String inputJsonString = createInputJsonString(paramsJson);
         logger.debug("POST putPolicy inputJsonString = {}", inputJsonString);
 
-        return restClient.post("/A1-ADAPTER-API:putPolicy", inputJsonString) //
+        return restClient
+            .postWithAuthHeader("/A1-ADAPTER-API:putPolicy", inputJsonString, A1_CONTROLLER_USERNAME,
+                A1_CONTROLLER_PASSWORD) //
             .flatMap(response -> getValueFromResponse(response, "returned-policy")) //
             .flatMap(this::validateJson);
     }
@@ -120,13 +129,14 @@ public class ControllerA1Client implements A1Client {
         String inputJsonString = createInputJsonString(paramsJson);
         logger.debug("POST deletePolicy inputJsonString = {}", inputJsonString);
 
-        return restClient.post("/A1-ADAPTER-API:deletePolicy", inputJsonString);
+        return restClient.postWithAuthHeader("/A1-ADAPTER-API:deletePolicy", inputJsonString, A1_CONTROLLER_USERNAME,
+            A1_CONTROLLER_PASSWORD);
     }
 
     @Override
     public Mono<A1ProtocolType> getProtocolVersion() {
         return getPolicyTypeIdentities() //
-            .flatMap(x -> Mono.just(A1ProtocolType.CONTROLLER));
+            .flatMap(x -> Mono.just(A1ProtocolType.SDNC_OSC));
     }
 
     private String createInputJsonString(JSONObject paramsJson) {