Change the static method in util.
[aai/esr-server.git] / esr-mgr / src / main / java / org / onap / aai / esr / wrapper / VimManagerWrapper.java
index 260d209..6d06a1c 100644 (file)
@@ -21,6 +21,7 @@ import javax.ws.rs.core.Response;
 
 import org.onap.aai.esr.entity.aai.CloudRegionDetail;
 import org.onap.aai.esr.entity.aai.CloudRegionList;
+import org.onap.aai.esr.entity.aai.EsrSystemInfo;
 import org.onap.aai.esr.entity.rest.VimRegisterInfo;
 import org.onap.aai.esr.entity.rest.VimRegisterResponse;
 import org.onap.aai.esr.externalservice.aai.CloudRegionProxy;
@@ -36,9 +37,11 @@ public class VimManagerWrapper {
 
   private static VimManagerWrapper vimManagerWrapper;
   private static final Logger LOG = LoggerFactory.getLogger(VimManagerWrapper.class);
+  private static VimManagerUtil vimManagerUtil = new VimManagerUtil();
 
   /**
    * get VimManagerWrapper instance.
+   * 
    * @return vim manager wrapper instance
    */
   public static VimManagerWrapper getInstance() {
@@ -46,14 +49,15 @@ public class VimManagerWrapper {
       vimManagerWrapper = new VimManagerWrapper();
     }
     return vimManagerWrapper;
-    
+
   }
-  
+
   public Response registerVim(VimRegisterInfo vimRegisterInfo) {
-    LOG.info("Start register VIM, input VIM info is: " + ExtsysUtil.objectToString(vimRegisterInfo));
+    LOG.info(
+        "Start register VIM, input VIM info is: " + ExtsysUtil.objectToString(vimRegisterInfo));
     CloudRegionDetail cloudRegion = new CloudRegionDetail();
     VimRegisterResponse result = new VimRegisterResponse();
-    cloudRegion = VimManagerUtil.vimRegisterInfo2CloudRegion(vimRegisterInfo);
+    cloudRegion = vimManagerUtil.vimRegisterInfo2CloudRegion(vimRegisterInfo);
     String cloudOwner = vimRegisterInfo.getCloudOwner();
     String cloudRegionId = vimRegisterInfo.getCloudRegionId();
     try {
@@ -61,21 +65,19 @@ public class VimManagerWrapper {
       result.setCloudOwner(cloudOwner);
       result.setCloudRegionId(cloudRegionId);
       return Response.ok(result).build();
-    } catch (Exception e) {
-      e.printStackTrace();
+    } catch (Exception error) {
+      error.printStackTrace();
+      LOG.error("Register VIM failed !" + error.getMessage());
       return Response.serverError().build();
     }
   }
-  public Response updateVim(VimRegisterInfo vimRegisterInfo) {
+
+  public Response updateVim(String cloudOwner, String cloudRegionId,VimRegisterInfo vimRegisterInfo) {
     LOG.info("Start update VIM, input VIM info is: " + ExtsysUtil.objectToString(vimRegisterInfo));
-    String cloudOwner = vimRegisterInfo.getCloudOwner();
-    String cloudRegionId = vimRegisterInfo.getCloudRegionId();
-    String resourceVersion = getResourceVersion(cloudOwner, cloudRegionId);
     CloudRegionDetail cloudRegionDetail = new CloudRegionDetail();
     VimRegisterResponse result = new VimRegisterResponse();
-    cloudRegionDetail = VimManagerUtil.vimRegisterInfo2CloudRegion(vimRegisterInfo);
-    cloudRegionDetail.setResouceVersion(resourceVersion);
 
+    cloudRegionDetail = getVimUpdateInfo(vimRegisterInfo);
     try {
       CloudRegionProxy.registerVim(cloudOwner, cloudRegionId, cloudRegionDetail);
       result.setCloudOwner(cloudOwner);
@@ -83,10 +85,11 @@ public class VimManagerWrapper {
       return Response.ok(result).build();
     } catch (Exception e) {
       e.printStackTrace();
+      LOG.error("Update VIM failed !" + e.getMessage());
       return Response.serverError().build();
     }
   }
-  
+
   public Response queryVimListDetails() {
     ArrayList<VimRegisterInfo> vimRegisterInfos = new ArrayList<VimRegisterInfo>();
     CloudRegionList cloudRegionList = new CloudRegionList();
@@ -96,12 +99,13 @@ public class VimManagerWrapper {
       vimRegisterInfos = getVimDetailList(cloudRegionList);
       return Response.ok(vimRegisterInfos).build();
     } catch (Exception error) {
+      error.printStackTrace();
       LOG.error("Query vim list details failed !" + error.getMessage());
       return Response.serverError().build();
     }
-    
+
   }
-  
+
   public Response queryVimById(String cloudOwner, String cloudRegionId) {
     VimRegisterInfo vim = new VimRegisterInfo();
     CloudRegionDetail cloudRegionDetail = new CloudRegionDetail();
@@ -109,20 +113,20 @@ public class VimManagerWrapper {
       String cloudRegionstr = CloudRegionProxy.queryVimDetail(cloudOwner, cloudRegionId);
       LOG.info("Response from AAI by query VIM: " + cloudRegionstr);
       cloudRegionDetail = new Gson().fromJson(cloudRegionstr, CloudRegionDetail.class);
-      vim = VimManagerUtil.cloudRegion2VimRegisterInfo(cloudRegionDetail);
+      vim = vimManagerUtil.cloudRegion2VimRegisterInfo(cloudRegionDetail);
       return Response.ok(vim).build();
     } catch (Exception e) {
       e.printStackTrace();
       return Response.serverError().build();
     }
-    
+
   }
-  
+
   private ArrayList<VimRegisterInfo> getVimDetailList(CloudRegionList cloudRegionList) {
     ArrayList<VimRegisterInfo> vimRegisterInfos = new ArrayList<VimRegisterInfo>();
     VimRegisterInfo vimRegisterInfo = new VimRegisterInfo();
     int cloudRegionNum = cloudRegionList.getCloudRegion().size();
-    for (int i=0; i<cloudRegionNum; i++) {
+    for (int i = 0; i < cloudRegionNum; i++) {
       String cloudOwner = cloudRegionList.getCloudRegion().get(i).getCloudOwner();
       String cloudRegionId = cloudRegionList.getCloudRegion().get(i).getCloudRegionId();
       vimRegisterInfo = getVimDetail(cloudOwner, cloudRegionId);
@@ -130,34 +134,56 @@ public class VimManagerWrapper {
     }
     return vimRegisterInfos;
   }
-  
+
   private VimRegisterInfo getVimDetail(String cloudOwner, String cloudRegionId) {
     CloudRegionDetail cloudRegionDetail = new CloudRegionDetail();
     VimRegisterInfo registeredVimInfo = new VimRegisterInfo();
     try {
       String cloudRegionstr = CloudRegionProxy.queryVimDetail(cloudOwner, cloudRegionId);
       cloudRegionDetail = new Gson().fromJson(cloudRegionstr, CloudRegionDetail.class);
-      registeredVimInfo = VimManagerUtil.cloudRegion2VimRegisterInfo(cloudRegionDetail);
+      registeredVimInfo = vimManagerUtil.cloudRegion2VimRegisterInfo(cloudRegionDetail);
     } catch (Exception error) {
-      LOG.error("query VIM detail failed ! cloud-owner = " + cloudOwner +", cloud-region-id = "+ cloudRegionId + error.getMessage());
+      error.printStackTrace();
+      LOG.error("query VIM detail failed ! cloud-owner = " + cloudOwner + ", cloud-region-id = "
+          + cloudRegionId + error.getMessage());
     }
     return registeredVimInfo;
   }
-  
-  private String getResourceVersion(String cloudOwner, String cloudRegionId) {
+
+  private CloudRegionDetail getOriginalCloudRegion(String cloudOwner, String cloudRegionId) {
     CloudRegionDetail cloudRegionDetail = new CloudRegionDetail();
     try {
       String cloudRegionstr = CloudRegionProxy.queryVimDetail(cloudOwner, cloudRegionId);
       cloudRegionDetail = new Gson().fromJson(cloudRegionstr, CloudRegionDetail.class);
-      return cloudRegionDetail.getResouceVersion();
+      return cloudRegionDetail;
     } catch (Exception error) {
-      LOG.error("query VIM detail failed ! cloud-owner = " + cloudOwner +", cloud-region-id = "+ cloudRegionId + error.getMessage());
+      error.printStackTrace();
+      LOG.error("query VIM detail failed ! cloud-owner = " + cloudOwner + ", cloud-region-id = "
+          + cloudRegionId + error.getMessage());
       return null;
     }
   }
   
-  public Response delVim(String vimId) {
-    //TODO
+  private CloudRegionDetail getVimUpdateInfo(VimRegisterInfo vimRegisterInfo) {
+    CloudRegionDetail cloudRegionDetail = new CloudRegionDetail();
+    CloudRegionDetail originalCloudRegionDetail = new CloudRegionDetail();
+    EsrSystemInfo originalSystemInfo = new EsrSystemInfo();
+    String cloudOwner = vimRegisterInfo.getCloudOwner();
+    String cloudRegionId = vimRegisterInfo.getCloudRegionId();
+    originalCloudRegionDetail = getOriginalCloudRegion(cloudOwner, cloudRegionId);
+    String resourceVersion = originalCloudRegionDetail.getResourceVersion();
+    cloudRegionDetail = vimManagerUtil.vimRegisterInfo2CloudRegion(vimRegisterInfo);
+    if(resourceVersion != null) {
+      cloudRegionDetail.setResourceVersion(resourceVersion);
+      originalSystemInfo = originalCloudRegionDetail.getEsrSystemInfoList().getEsrSystemInfo().get(0);
+      cloudRegionDetail.getEsrSystemInfoList().getEsrSystemInfo().get(0).setEsrSystemInfoId(originalSystemInfo.getEsrSystemInfoId());
+      cloudRegionDetail.getEsrSystemInfoList().getEsrSystemInfo().get(0).setResouceVersion(originalSystemInfo.getResouceVersion());
+    }
+    return cloudRegionDetail;
+  }
+
+  public Response delVim(String cloudOwner, String cloudRegionId) {
+    // TODO
     return Response.noContent().build();
   }
 }