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;
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;
protected RpcProviderRegistry rpcRegistry;
protected BindingAwareBroker.RpcRegistration<?> rpcRegistration;
private RestAdapter restAdapter;
- private NearRicUrlProvider nearRicUrlProvider;
public NonrtRicApiProvider(DataBroker dataBroker, NotificationPublishService notificationPublishService,
RpcProviderRegistry rpcProviderRegistry) {
log.info("Initializing provider for {}", APP_NAME);
createContainers();
restAdapter = new RestAdapterImpl();
- nearRicUrlProvider = new NearRicUrlProvider();
log.info("Initialization complete for {}", APP_NAME);
}
}
@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());
}
+
}