move to org.opendaylight.mdsal.binding.api
[appc.git] / appc-provider / appc-provider-bundle / src / main / java / org / onap / appc / provider / AppcProvider.java
index 62c8ef7..2efa29a 100644 (file)
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP : APPC
  * ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Copyright (C) 2017 Amdocs
  * =============================================================================
@@ -26,28 +26,29 @@ package org.onap.appc.provider;
 import com.att.eelf.configuration.EELFLogger;
 import com.att.eelf.configuration.EELFManager;
 import com.google.common.util.concurrent.Futures;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import com.google.common.util.concurrent.ListenableFuture;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.api.NotificationPublishService;
 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
-import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
 import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
-import org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.AppcProviderService;
-import org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.EvacuateInput;
-import org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.EvacuateOutput;
-import org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.MigrateInput;
-import org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.MigrateOutput;
-import org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.ModifyConfigInput;
-import org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.ModifyConfigOutput;
-import org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.RebuildInput;
-import org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.RebuildOutput;
-import org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.RestartInput;
-import org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.RestartOutput;
-import org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.SnapshotInput;
-import org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.SnapshotOutput;
-import org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.VmstatuscheckInput;
-import org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.VmstatuscheckOutput;
-import org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.common.request.header.CommonRequestHeader;
-import org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.config.payload.ConfigPayload;
-import org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.vnf.resource.VnfResource;
+import org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.AppcProviderService;
+import org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.EvacuateInput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.EvacuateOutput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.MigrateInput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.MigrateOutput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.ModifyConfigInput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.ModifyConfigOutput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.RebuildInput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.RebuildOutput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.RestartInput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.RestartOutput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.SnapshotInput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.SnapshotOutput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.VmstatuscheckInput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.VmstatuscheckOutput;
+import org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.common.request.header.CommonRequestHeader;
+import org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.config.payload.ConfigPayload;
+import org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.vnf.resource.VnfResource;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.onap.appc.Constants;
 import org.onap.appc.configuration.Configuration;
@@ -57,7 +58,6 @@ import org.onap.appc.provider.topology.TopologyService;
 
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
 
 /* ADDED FOR FUSION SERVICE CODE */
 
@@ -106,7 +106,7 @@ public class AppcProvider implements AutoCloseable, AppcProviderService {
     /**
      * ODL Notification Service that provides publish/subscribe capabilities for YANG modeled notifications.
      */
-    protected NotificationProviderService notificationService;
+    protected NotificationPublishService notificationService;
 
     /**
      * Provides a registry for Remote Procedure Call (RPC) service implementations. The RPCs are defined in YANG models.
@@ -122,6 +122,8 @@ public class AppcProvider implements AutoCloseable, AppcProviderService {
      * The configuration
      */
     private Configuration configuration = ConfigurationFactory.getConfiguration();
+    
+    private AppcProviderClient appcProviderClient;
 
     /**
      * @param dataBroker2
@@ -131,8 +133,8 @@ public class AppcProvider implements AutoCloseable, AppcProviderService {
     @SuppressWarnings({
         "javadoc", "nls"
     })
-    public AppcProvider(DataBroker dataBroker2, NotificationProviderService notificationProviderService,
-                        RpcProviderRegistry rpcProviderRegistry) {
+    public AppcProvider(DataBroker dataBroker2, NotificationPublishService notificationProviderService,
+                        RpcProviderRegistry rpcProviderRegistry, AppcProviderClient appcProviderClient) {
 
         String appName = configuration.getProperty(Constants.PROPERTY_APPLICATION_NAME);
         logger.info(Msg.COMPONENT_INITIALIZING, appName, "provider");
@@ -141,10 +143,7 @@ public class AppcProvider implements AutoCloseable, AppcProviderService {
         dataBroker = dataBroker2;
         notificationService = notificationProviderService;
         rpcRegistry = rpcProviderRegistry;
-
-        if (rpcRegistry != null) {
-            rpcRegistration = rpcRegistry.addRpcImplementation(AppcProviderService.class, this);
-        }
+        this.appcProviderClient = appcProviderClient;
 
         logger.info(Msg.COMPONENT_INITIALIZED, appName, "provider");
     }
@@ -166,7 +165,7 @@ public class AppcProvider implements AutoCloseable, AppcProviderService {
         logger.info(Msg.COMPONENT_TERMINATED, appName, "provider");
     }
 
-    public Future<RpcResult<ModifyConfigOutput>> modifyConfig(ModifyConfigInput input) {
+    public ListenableFuture<RpcResult<ModifyConfigOutput>> modifyConfig(ModifyConfigInput input) {
         CommonRequestHeader hdr = input.getCommonRequestHeader();
         ConfigPayload data = input.getConfigPayload();
         RpcResult<ModifyConfigOutput> result = getTopologyService().modifyConfig(hdr, data);
@@ -176,10 +175,10 @@ public class AppcProvider implements AutoCloseable, AppcProviderService {
     /**
      * Rebuilds a specific VNF
      *
-     * @see org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.AppcProviderService#rebuild(org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.RebuildInput)
+     * @see org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.AppcProviderService#rebuild(org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.RebuildInput)
      */
     @Override
-    public Future<RpcResult<RebuildOutput>> rebuild(RebuildInput input) {
+    public ListenableFuture<RpcResult<RebuildOutput>> rebuild(RebuildInput input) {
 
         CommonRequestHeader hdr = input.getCommonRequestHeader();
         VnfResource vnf = input.getVnfResource();
@@ -191,10 +190,10 @@ public class AppcProvider implements AutoCloseable, AppcProviderService {
     /**
      * Restarts a specific VNF
      *
-     * @see org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.AppcProviderService#restart(org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.RestartInput)
+     * @see org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.AppcProviderService#restart(org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.RestartInput)
      */
     @Override
-    public Future<RpcResult<RestartOutput>> restart(RestartInput input) {
+    public ListenableFuture<RpcResult<RestartOutput>> restart(RestartInput input) {
         CommonRequestHeader hdr = input.getCommonRequestHeader();
         VnfResource vnf = input.getVnfResource();
 
@@ -205,10 +204,10 @@ public class AppcProvider implements AutoCloseable, AppcProviderService {
     /**
      * Migrates a specific VNF
      *
-     * @see org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.AppcProviderService#migrate(org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.MigrateInput)
+     * @see org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.AppcProviderService#migrate(org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.MigrateInput)
      */
     @Override
-    public Future<RpcResult<MigrateOutput>> migrate(MigrateInput input) {
+    public ListenableFuture<RpcResult<MigrateOutput>> migrate(MigrateInput input) {
         CommonRequestHeader hdr = input.getCommonRequestHeader();
         VnfResource vnf = input.getVnfResource();
 
@@ -219,10 +218,10 @@ public class AppcProvider implements AutoCloseable, AppcProviderService {
     /**
      * Evacuates a specific VNF
      *
-     * @see org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.AppcProviderService#evacuate(org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.EvacuateInput)
+     * @see org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.AppcProviderService#evacuate(org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.EvacuateInput)
      */
     @Override
-    public Future<RpcResult<EvacuateOutput>> evacuate(EvacuateInput input) {
+    public ListenableFuture<RpcResult<EvacuateOutput>> evacuate(EvacuateInput input) {
 
         return null;
     }
@@ -230,10 +229,10 @@ public class AppcProvider implements AutoCloseable, AppcProviderService {
     /**
      * Evacuates a specific VNF
      *
-     * @see org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.AppcProviderService#evacuate(org.opendaylight.yang.gen.v1.org.onap.appc.rev160104.EvacuateInput)
+     * @see org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.AppcProviderService#evacuate(org.opendaylight.yang.gen.v1.org.onap.appc.provider.rev160104.EvacuateInput)
      */
     @Override
-    public Future<RpcResult<SnapshotOutput>> snapshot(SnapshotInput input) {
+    public ListenableFuture<RpcResult<SnapshotOutput>> snapshot(SnapshotInput input) {
         CommonRequestHeader hdr = input.getCommonRequestHeader();
         VnfResource vnf = input.getVnfResource();
 
@@ -245,7 +244,7 @@ public class AppcProvider implements AutoCloseable, AppcProviderService {
      * Checks status of a VM
      */
     @Override
-    public Future<RpcResult<VmstatuscheckOutput>> vmstatuscheck(VmstatuscheckInput input) {
+    public ListenableFuture<RpcResult<VmstatuscheckOutput>> vmstatuscheck(VmstatuscheckInput input) {
         CommonRequestHeader hdr = input.getCommonRequestHeader();
         VnfResource vnf = input.getVnfResource();
 
@@ -257,4 +256,8 @@ public class AppcProvider implements AutoCloseable, AppcProviderService {
     TopologyService getTopologyService() {
         return new TopologyService(this);
     }
+    
+    public AppcProviderClient getClient() {
+       return appcProviderClient;
+    }
 }
\ No newline at end of file