Realize the API to get complex object ID.
[aai/esr-server.git] / esr-mgr / src / main / java / org / onap / aai / esr / wrapper / VimManagerWrapper.java
index e34217d..7545b01 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * Copyright 2017 ZTE Corporation.
+ * Copyright 2017-2018 ZTE Corporation.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@ import java.util.List;
 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.ComplexList;
 import org.onap.aai.esr.entity.aai.EsrSystemInfo;
 import org.onap.aai.esr.entity.rest.VimRegisterInfo;
 import org.onap.aai.esr.entity.rest.VimRegisterResponse;
@@ -52,17 +53,19 @@ public class VimManagerWrapper {
      */
     public static VimManagerWrapper getInstance() {
         if (vimManagerWrapper == null) {
-            vimManagerWrapper = new VimManagerWrapper();
+            vimManagerWrapper = new VimManagerWrapper(cloudRegionProxy);
         }
         return vimManagerWrapper;
-
+    }
+    
+    public VimManagerWrapper(CloudRegionProxy cloudRegionProxy) {
+        VimManagerWrapper.cloudRegionProxy = cloudRegionProxy;
     }
 
     public Response registerVim(VimRegisterInfo 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);
+        CloudRegionDetail cloudRegion = vimManagerUtil.vimRegisterInfo2CloudRegion(vimRegisterInfo);
         String cloudOwner = vimRegisterInfo.getCloudOwner();
         String cloudRegionId = vimRegisterInfo.getCloudRegionId();
         try {
@@ -85,10 +88,9 @@ public class VimManagerWrapper {
 
     public Response updateVim(String cloudOwner, String cloudRegionId, VimRegisterInfo vimRegisterInfo) {
         LOG.info("Start update VIM, input VIM info is: " + extsysUtil.objectToString(vimRegisterInfo));
-        CloudRegionDetail cloudRegionDetail = new CloudRegionDetail();
         VimRegisterResponse result = new VimRegisterResponse();
 
-        cloudRegionDetail = getVimUpdateInfo(vimRegisterInfo);
+        CloudRegionDetail cloudRegionDetail = getVimUpdateInfo(vimRegisterInfo);
         try {
             cloudRegionProxy.registerVim(cloudOwner, cloudRegionId, cloudRegionDetail);
             result.setCloudOwner(cloudOwner);
@@ -133,12 +135,11 @@ public class VimManagerWrapper {
 
     private List<VimRegisterInfo> getVimDetailList(CloudRegionList cloudRegionList) {
         List<VimRegisterInfo> vimRegisterInfos = new ArrayList<>();
-        VimRegisterInfo vimRegisterInfo = new VimRegisterInfo();
         int cloudRegionNum = cloudRegionList.getCloudRegion().size();
         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);
+            VimRegisterInfo vimRegisterInfo = getVimDetail(cloudOwner, cloudRegionId);
             vimRegisterInfos.add(vimRegisterInfo);
         }
         return vimRegisterInfos;
@@ -172,17 +173,14 @@ public class VimManagerWrapper {
     }
 
     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);
+        CloudRegionDetail originalCloudRegionDetail = getOriginalCloudRegion(cloudOwner, cloudRegionId);
         String resourceVersion = originalCloudRegionDetail.getResourceVersion();
-        cloudRegionDetail = vimManagerUtil.vimRegisterInfo2CloudRegion(vimRegisterInfo);
+        CloudRegionDetail cloudRegionDetail = vimManagerUtil.vimRegisterInfo2CloudRegion(vimRegisterInfo);
         if (resourceVersion != null) {
             cloudRegionDetail.setResourceVersion(resourceVersion);
-            originalSystemInfo = originalCloudRegionDetail.getEsrSystemInfoList().getEsrSystemInfo().get(0);
+            EsrSystemInfo originalSystemInfo = originalCloudRegionDetail.getEsrSystemInfoList().getEsrSystemInfo().get(0);
             cloudRegionDetail.getEsrSystemInfoList().getEsrSystemInfo().get(0)
                     .setEsrSystemInfoId(originalSystemInfo.getEsrSystemInfoId());
             cloudRegionDetail.getEsrSystemInfoList().getEsrSystemInfo().get(0)
@@ -192,8 +190,7 @@ public class VimManagerWrapper {
     }
 
     public Response delVim(String cloudOwner, String cloudRegionId) {
-        CloudRegionDetail cloudRegionDetail = new CloudRegionDetail();
-        cloudRegionDetail = queryCloudRegionDetail(cloudOwner, cloudRegionId);
+        CloudRegionDetail cloudRegionDetail = queryCloudRegionDetail(cloudOwner, cloudRegionId);
         String resourceVersion = cloudRegionDetail.getResourceVersion();
         try {
             cloudRegionProxy.deleteVim(cloudOwner, cloudRegionId, resourceVersion);
@@ -218,4 +215,20 @@ public class VimManagerWrapper {
         }
         return cloudRegionDetail;
     }
+
+    public Response queryComplexes() {
+        ComplexList complexList = new ComplexList();
+        List<String> complexId = new ArrayList<>();
+        try {
+            String complexesString = cloudRegionProxy.qureyComplexes();
+            LOG.info("The complex query result is: " + complexesString);
+            complexList = new Gson().fromJson(complexesString, ComplexList.class);
+            for (int i=0; i<complexList.getComplex().size(); i++) {
+                complexId.add(complexList.getComplex().get(i).getPhysicalLocationId());
+            }
+        } catch (ExtsysException e) {
+            LOG.error("Query vim details by ID failed !", e);
+        }
+        return Response.ok(complexId).build();
+    }
 }