Generalization of controller
[nonrtric.git] / sdnc-a1-controller / northbound / nonrt-ric-api / provider / src / main / java / org / onap / sdnc / northbound / provider / NonrtRicApiProvider.java
index 7e47b98..b41615b 100644 (file)
@@ -23,11 +23,9 @@ package org.onap.sdnc.northbound.provider;
 import com.google.common.util.concurrent.CheckedFuture;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
-import java.util.List;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
-import org.onap.sdnc.northbound.restadapter.NearRicUrlProvider;
 import org.onap.sdnc.northbound.restadapter.RestAdapter;
 import org.onap.sdnc.northbound.restadapter.RestAdapterImpl;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
@@ -37,24 +35,23 @@ import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFaile
 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
 import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
 import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.A1ADAPTERAPIService;
-import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.DeletePolicyInput;
-import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.DeletePolicyOutput;
-import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.DeletePolicyOutputBuilder;
-import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.GetPolicyIdentitiesInput;
-import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.GetPolicyIdentitiesOutput;
-import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.GetPolicyIdentitiesOutputBuilder;
-import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.GetPolicyStatusInput;
-import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.GetPolicyStatusOutput;
-import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.GetPolicyStatusOutputBuilder;
-import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.GetPolicyTypeIdentitiesInput;
-import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.GetPolicyTypeIdentitiesOutput;
-import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.GetPolicyTypeIdentitiesOutputBuilder;
-import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.GetPolicyTypeInput;
-import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.GetPolicyTypeOutput;
-import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.GetPolicyTypeOutputBuilder;
-import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.PutPolicyInput;
-import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.PutPolicyOutput;
-import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.PutPolicyOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.DeleteA1PolicyInput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.DeleteA1PolicyOutput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.DeleteA1PolicyOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.GetA1PolicyInput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.GetA1PolicyInputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.GetA1PolicyOutput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.GetA1PolicyOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.GetA1PolicyStatusInput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.GetA1PolicyStatusOutput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.GetA1PolicyStatusOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.GetA1PolicyTypeInput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.GetA1PolicyTypeOutput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.GetA1PolicyTypeOutputBuilder;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.PutA1PolicyInput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.PutA1PolicyOutput;
+import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.a1.adapter.rev200122.PutA1PolicyOutputBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
 import org.slf4j.Logger;
@@ -89,7 +86,6 @@ public class NonrtRicApiProvider implements AutoCloseable, A1ADAPTERAPIService {
   protected RpcProviderRegistry rpcRegistry;
   protected BindingAwareBroker.RpcRegistration<?> rpcRegistration;
   private RestAdapter restAdapter;
-  private NearRicUrlProvider nearRicUrlProvider;
 
   public NonrtRicApiProvider(DataBroker dataBroker, NotificationPublishService notificationPublishService,
       RpcProviderRegistry rpcProviderRegistry) {
@@ -106,7 +102,6 @@ public class NonrtRicApiProvider implements AutoCloseable, A1ADAPTERAPIService {
     log.info("Initializing provider for {}", APP_NAME);
     createContainers();
     restAdapter = new RestAdapterImpl();
-    nearRicUrlProvider = new NearRicUrlProvider();
     log.info("Initialization complete for {}", APP_NAME);
   }
 
@@ -159,98 +154,91 @@ public class NonrtRicApiProvider implements AutoCloseable, A1ADAPTERAPIService {
   }
 
   @Override
-  public ListenableFuture<RpcResult<GetPolicyTypeIdentitiesOutput>> getPolicyTypeIdentities(
-      GetPolicyTypeIdentitiesInput input) {
-    log.info("Start of getPolicyTypeIdentities");
-    GetPolicyTypeIdentitiesOutputBuilder responseBuilder = new GetPolicyTypeIdentitiesOutputBuilder();
-    String uri = nearRicUrlProvider.policyTypesUrl(String.valueOf(input.getNearRtRicUrl()));
-    ResponseEntity<List<String>> response = restAdapter.get(uri, List.class);
+  public ListenableFuture<RpcResult<PutA1PolicyOutput>> putA1Policy(PutA1PolicyInput input) {
+    log.info("Start of putPolicy");
+    final Uri uri = input.getNearRtRicUrl();
+
+    log.info("PUT Request input.GetA1Policy() : {} ", uri);
+    ResponseEntity<String> response = restAdapter.put(uri.getValue(), input.getBody(), String.class);
+    PutA1PolicyOutputBuilder responseBuilder = new PutA1PolicyOutputBuilder();
     if (response.hasBody()) {
-      log.info("Response getPolicyTypeIdentities : {} ", response.getBody());
-      responseBuilder.setPolicyTypeIdList(response.getBody());
+      log.info("Response PutA1Policy : {} ", response.getBody());
+      responseBuilder.setBody(response.getBody());
     }
-    log.info("End of getPolicyTypeIdentities");
-    RpcResult<GetPolicyTypeIdentitiesOutput> rpcResult = RpcResultBuilder.<GetPolicyTypeIdentitiesOutput>status(true)
+    responseBuilder.setHttpStatus(response.getStatusCodeValue());
+    log.info("End of PutA1Policy");
+    RpcResult<PutA1PolicyOutput> rpcResult = RpcResultBuilder.<PutA1PolicyOutput>status(true)
         .withResult(responseBuilder.build()).build();
     return Futures.immediateFuture(rpcResult);
   }
 
   @Override
-  public ListenableFuture<RpcResult<GetPolicyIdentitiesOutput>> getPolicyIdentities(GetPolicyIdentitiesInput input) {
-    log.info("Start of getPolicyIdentities");
-    GetPolicyIdentitiesOutputBuilder responseBuilder = new GetPolicyIdentitiesOutputBuilder();
-    String uri = nearRicUrlProvider.policiesUrl(String.valueOf(input.getNearRtRicUrl()));
-    ResponseEntity<List<String>> response = restAdapter.get(uri, List.class);
+  public ListenableFuture<RpcResult<DeleteA1PolicyOutput>> deleteA1Policy(DeleteA1PolicyInput input) {
+    log.info("Start of DeleteA1Policy");
+    final Uri uri = input.getNearRtRicUrl();
+    ResponseEntity<Object> response = restAdapter.delete(uri.getValue());
+    log.info("End of DeleteA1Policy");
+    DeleteA1PolicyOutputBuilder responseBuilder = new DeleteA1PolicyOutputBuilder();
     if (response.hasBody()) {
-      log.info("Response getPolicyIdentities : {} ", response.getBody());
-      responseBuilder.setPolicyIdList(response.getBody());
+      log.info("Response PutA1Policy : {} ", response.getBody());
+      responseBuilder.setBody(response.getBody().toString());
     }
-    log.info("End of getPolicyIdentities");
-    RpcResult<GetPolicyIdentitiesOutput> rpcResult = RpcResultBuilder.<GetPolicyIdentitiesOutput>status(true)
+    responseBuilder.setHttpStatus(response.getStatusCodeValue());
+    RpcResult<DeleteA1PolicyOutput> rpcResult = RpcResultBuilder.<DeleteA1PolicyOutput>status(true)
         .withResult(responseBuilder.build()).build();
     return Futures.immediateFuture(rpcResult);
   }
 
-  @Override
-  public ListenableFuture<RpcResult<GetPolicyTypeOutput>> getPolicyType(GetPolicyTypeInput input) {
-    log.info("Start of getPolicyType; Policy Type Id : {} ", input.getPolicyTypeId());
-    GetPolicyTypeOutputBuilder responseBuilder = new GetPolicyTypeOutputBuilder();
-    String uri = nearRicUrlProvider.getPolicyTypeUrl(String.valueOf(input.getNearRtRicUrl()),
-        String.valueOf(input.getPolicyTypeId()));
-    ResponseEntity<String> response = restAdapter.get(uri, String.class);
+  private GetA1PolicyOutput getA1(GetA1PolicyInput input) {
+    log.info("Start of getA1");
+    final Uri uri = input.getNearRtRicUrl();
+    ResponseEntity<String> response = restAdapter.get(uri.getValue(), String.class);
+    log.info("End of getA1");
+    GetA1PolicyOutputBuilder responseBuilder = new GetA1PolicyOutputBuilder();
     if (response.hasBody()) {
-      log.info("Response getPolicyType : {} ", response.getBody());
-      responseBuilder.setPolicyType(response.getBody());
+      log.info("Response getA1 : {} ", response.getBody());
+      responseBuilder.setBody(response.getBody());
     }
-    log.info("End of getPolicyType");
-    RpcResult<GetPolicyTypeOutput> rpcResult = RpcResultBuilder.<GetPolicyTypeOutput>status(true)
-        .withResult(responseBuilder.build()).build();
-    return Futures.immediateFuture(rpcResult);
+    responseBuilder.setHttpStatus(response.getStatusCodeValue());
+    return responseBuilder.build();
   }
 
   @Override
-  public ListenableFuture<RpcResult<PutPolicyOutput>> putPolicy(PutPolicyInput input) {
-    log.info("Start of putPolicy");
-    PutPolicyOutputBuilder responseBuilder = new PutPolicyOutputBuilder();
-    String uri = nearRicUrlProvider.putPolicyUrl(String.valueOf(input.getNearRtRicUrl()),
-        String.valueOf(input.getPolicyId()), String.valueOf(input.getPolicyTypeId()));
-    log.info("PUT Request input.getPolicy() : {} ", input.getPolicy());
-    ResponseEntity<String> response = restAdapter.put(uri, input.getPolicy(), String.class);
-    if (response.hasBody()) {
-      log.info("Response putPolicy : {} ", response.getBody());
-      responseBuilder.setReturnedPolicy(response.getBody());
-    }
-    log.info("End of putPolicy");
-    RpcResult<PutPolicyOutput> rpcResult = RpcResultBuilder.<PutPolicyOutput>status(true)
-        .withResult(responseBuilder.build()).build();
+  public ListenableFuture<RpcResult<GetA1PolicyOutput>> getA1Policy(GetA1PolicyInput input) {
+    GetA1PolicyOutput output = getA1(input);
+    RpcResult<GetA1PolicyOutput> rpcResult = RpcResultBuilder.<GetA1PolicyOutput>status(true).withResult(output)
+        .build();
     return Futures.immediateFuture(rpcResult);
   }
 
   @Override
-  public ListenableFuture<RpcResult<DeletePolicyOutput>> deletePolicy(DeletePolicyInput input) {
-    log.info("Start of deletePolicy");
-    DeletePolicyOutputBuilder responseBuilder = new DeletePolicyOutputBuilder();
-    String uri = nearRicUrlProvider.deletePolicyUrl(String.valueOf(input.getNearRtRicUrl()),
-        String.valueOf(input.getPolicyId()));
-    restAdapter.delete(uri);
-    log.info("End of deletePolicy");
-    RpcResult<DeletePolicyOutput> rpcResult = RpcResultBuilder.<DeletePolicyOutput>status(true)
-        .withResult(responseBuilder.build()).build();
-    return Futures.immediateFuture(rpcResult);
+  public ListenableFuture<RpcResult<GetA1PolicyStatusOutput>> getA1PolicyStatus(GetA1PolicyStatusInput input) {
+    GetA1PolicyInputBuilder getInputBuilder = new GetA1PolicyInputBuilder();
+    getInputBuilder.setNearRtRicUrl(input.getNearRtRicUrl());
+    GetA1PolicyOutput getOutput = getA1(getInputBuilder.build());
+
+    GetA1PolicyStatusOutputBuilder outputBuilder = new GetA1PolicyStatusOutputBuilder();
+    outputBuilder.setBody(getOutput.getBody());
+    outputBuilder.setHttpStatus(getOutput.getHttpStatus());
+
+    return Futures.immediateFuture(RpcResultBuilder.<GetA1PolicyStatusOutput>status(true) //
+        .withResult(outputBuilder.build()) //
+        .build());
   }
 
   @Override
-  public ListenableFuture<RpcResult<GetPolicyStatusOutput>> getPolicyStatus(GetPolicyStatusInput input) {
-    log.debug("Policy Id : {} ", input.getPolicyId());
-    GetPolicyStatusOutputBuilder responseBuilder = new GetPolicyStatusOutputBuilder();
-    String uri = nearRicUrlProvider.getPolicyStatusUrl(input.getNearRtRicUrl(), input.getPolicyId());
-    ResponseEntity<String> response = restAdapter.get(uri, String.class);
-    if (response.hasBody()) {
-      log.info("Response getPolicyStatus : {} ", response.getBody());
-      responseBuilder.setPolicyStatus(response.getBody());
-    }
-    RpcResult<GetPolicyStatusOutput> rpcResult = RpcResultBuilder.<GetPolicyStatusOutput>status(true)
-        .withResult(responseBuilder.build()).build();
-    return Futures.immediateFuture(rpcResult);
+  public ListenableFuture<RpcResult<GetA1PolicyTypeOutput>> getA1PolicyType(GetA1PolicyTypeInput input) {
+    GetA1PolicyInputBuilder getInputBuilder = new GetA1PolicyInputBuilder();
+    getInputBuilder.setNearRtRicUrl(input.getNearRtRicUrl());
+    GetA1PolicyOutput getOutput = getA1(getInputBuilder.build());
+
+    GetA1PolicyTypeOutputBuilder outputBuilder = new GetA1PolicyTypeOutputBuilder();
+    outputBuilder.setBody(getOutput.getBody());
+    outputBuilder.setHttpStatus(getOutput.getHttpStatus());
+
+    return Futures.immediateFuture(RpcResultBuilder.<GetA1PolicyTypeOutput>status(true) //
+        .withResult(outputBuilder.build()) //
+        .build());
   }
+
 }