From 54c4773879f0a39d463267070679ba3d4022419f Mon Sep 17 00:00:00 2001 From: lizi00164331 Date: Sat, 16 Sep 2017 17:19:53 +0800 Subject: [PATCH] Realize update VNFM API. Realize update VNFM API. Fix the bug in update VIM API. Change-Id: I54c9d4a7a71df40373265c50ee76b381d5f072ad Issue-ID: AAI-314 Signed-off-by: lizi00164331 --- .../org/onap/aai/esr/entity/aai/CloudRegion.java | 12 ++--- .../onap/aai/esr/entity/aai/CloudRegionDetail.java | 12 ++--- .../java/org/onap/aai/esr/resource/VimManager.java | 16 +++--- .../onap/aai/esr/wrapper/VimManagerWrapper.java | 33 ++++++++---- .../onap/aai/esr/wrapper/VnfmManagerWrapper.java | 62 +++++++++++++++++----- 5 files changed, 93 insertions(+), 42 deletions(-) diff --git a/esr-mgr/src/main/java/org/onap/aai/esr/entity/aai/CloudRegion.java b/esr-mgr/src/main/java/org/onap/aai/esr/entity/aai/CloudRegion.java index fe1ea4c..b6db29f 100644 --- a/esr-mgr/src/main/java/org/onap/aai/esr/entity/aai/CloudRegion.java +++ b/esr-mgr/src/main/java/org/onap/aai/esr/entity/aai/CloudRegion.java @@ -47,8 +47,8 @@ public class CloudRegion implements Serializable { @SerializedName("cloud-extra-info") private String cloudExtraInfo; - @SerializedName("resouce-version") - private String resouceVersion; + @SerializedName("resource-version") + private String resourceVersion; public String getCloudOwner() { return cloudOwner; @@ -114,12 +114,12 @@ public class CloudRegion implements Serializable { this.cloudExtraInfo = cloudExtraInfo; } - public String getResouceVersion() { - return resouceVersion; + public String getResourceVersion() { + return resourceVersion; } - public void setResouceVersion(String resouceVersion) { - this.resouceVersion = resouceVersion; + public void setResourceVersion(String resourceVersion) { + this.resourceVersion = resourceVersion; } public static long getSerialversionuid() { diff --git a/esr-mgr/src/main/java/org/onap/aai/esr/entity/aai/CloudRegionDetail.java b/esr-mgr/src/main/java/org/onap/aai/esr/entity/aai/CloudRegionDetail.java index 8c6ad38..9f44386 100644 --- a/esr-mgr/src/main/java/org/onap/aai/esr/entity/aai/CloudRegionDetail.java +++ b/esr-mgr/src/main/java/org/onap/aai/esr/entity/aai/CloudRegionDetail.java @@ -47,8 +47,8 @@ public class CloudRegionDetail implements Serializable { @SerializedName("cloud-extra-info") private String cloudExtraInfo; - @SerializedName("resouce-version") - private String resouceVersion; + @SerializedName("resource-version") + private String resourceVersion; @SerializedName("esr-system-info-list") private EsrSystemInfoList esrSystemInfoList; @@ -117,12 +117,12 @@ public class CloudRegionDetail implements Serializable { this.cloudExtraInfo = cloudExtraInfo; } - public String getResouceVersion() { - return resouceVersion; + public String getResourceVersion() { + return resourceVersion; } - public void setResouceVersion(String resouceVersion) { - this.resouceVersion = resouceVersion; + public void setResourceVersion(String resourceVersion) { + this.resourceVersion = resourceVersion; } public EsrSystemInfoList getEsrSystemInfoList() { diff --git a/esr-mgr/src/main/java/org/onap/aai/esr/resource/VimManager.java b/esr-mgr/src/main/java/org/onap/aai/esr/resource/VimManager.java index 8dee4c9..67fcca0 100644 --- a/esr-mgr/src/main/java/org/onap/aai/esr/resource/VimManager.java +++ b/esr-mgr/src/main/java/org/onap/aai/esr/resource/VimManager.java @@ -85,7 +85,7 @@ public class VimManager { /** * delete vim by id. */ - @Path("/{vimId}") + @Path("/{cloudOwner}/{cloudRegionId}") @DELETE @ApiOperation(value = "delete a vim") @ApiResponses(value = { @@ -96,16 +96,16 @@ public class VimManager { @ApiResponse(code = HttpStatus.INTERNAL_SERVER_ERROR_500, message = "internal server error", response = String.class)}) @Timed - public Response delvim(@PathParam("vimId") String vimId) { - LOGGER.info("start delete vim .id:" + vimId); - return VimManagerWrapper.getInstance().delVim(vimId); + public Response delvim(@PathParam("cloudOwner") String cloudOwner,@PathParam("cloudRegionId") String cloudRegionId) { + LOGGER.info("start delete cloud-owner :" + cloudOwner +", cloud-region-id: " + cloudRegionId); + return VimManagerWrapper.getInstance().delVim(cloudOwner, cloudRegionId); } /** * update vim by id. */ @PUT - @Path("/{vimId}") + @Path("/{cloudOwner}/{cloudRegionId}") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @ApiOperation(value = "update a vim") @@ -117,9 +117,9 @@ public class VimManager { @ApiResponse(code = HttpStatus.INTERNAL_SERVER_ERROR_500, message = "internal server error", response = String.class)}) @Timed - public Response updatevims(VimRegisterInfo vim, @PathParam("vimId") String vimId) { - LOGGER.info("start update vim .id:" + vimId + " info:" + ExtsysUtil.objectToString(vim)); - return VimManagerWrapper.getInstance().updateVim(vim); + public Response updatevims(@PathParam("cloudOwner") String cloudOwner, @PathParam("cloudRegionId") String cloudRegionId, VimRegisterInfo vim) { + LOGGER.info("start update vim info:" + ExtsysUtil.objectToString(vim)); + return VimManagerWrapper.getInstance().updateVim(cloudOwner, cloudRegionId, vim); } /** diff --git a/esr-mgr/src/main/java/org/onap/aai/esr/wrapper/VimManagerWrapper.java b/esr-mgr/src/main/java/org/onap/aai/esr/wrapper/VimManagerWrapper.java index ad31f27..3ba83b0 100644 --- a/esr-mgr/src/main/java/org/onap/aai/esr/wrapper/VimManagerWrapper.java +++ b/esr-mgr/src/main/java/org/onap/aai/esr/wrapper/VimManagerWrapper.java @@ -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; @@ -70,16 +71,12 @@ public class VimManagerWrapper { } } - 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); @@ -152,12 +149,12 @@ public class VimManagerWrapper { 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) { error.printStackTrace(); LOG.error("query VIM detail failed ! cloud-owner = " + cloudOwner + ", cloud-region-id = " @@ -165,8 +162,26 @@ public class VimManagerWrapper { return null; } } + + 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(originalCloudRegionDetail != null && 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 vimId) { + public Response delVim(String cloudOwner, String cloudRegionId) { // TODO return Response.noContent().build(); } diff --git a/esr-mgr/src/main/java/org/onap/aai/esr/wrapper/VnfmManagerWrapper.java b/esr-mgr/src/main/java/org/onap/aai/esr/wrapper/VnfmManagerWrapper.java index 30d4e3d..016e525 100644 --- a/esr-mgr/src/main/java/org/onap/aai/esr/wrapper/VnfmManagerWrapper.java +++ b/esr-mgr/src/main/java/org/onap/aai/esr/wrapper/VnfmManagerWrapper.java @@ -19,6 +19,7 @@ import java.util.ArrayList; import javax.ws.rs.core.Response; +import org.onap.aai.esr.entity.aai.EsrSystemInfo; import org.onap.aai.esr.entity.aai.EsrVnfmDetail; import org.onap.aai.esr.entity.aai.EsrVnfmList; import org.onap.aai.esr.entity.rest.CommonRegisterResponse; @@ -63,8 +64,29 @@ public class VnfmManagerWrapper { } public Response updateVnfm(VnfmRegisterInfo vnfm, String vnfmId) { - // TODO - return Response.ok().build(); + CommonRegisterResponse result = new CommonRegisterResponse(); + EsrVnfmDetail esrVnfmDetail = new EsrVnfmDetail(); + EsrVnfmDetail originalEsrVnfmDetail = new EsrVnfmDetail(); + EsrSystemInfo originalEsrSystemInfo = new EsrSystemInfo(); + originalEsrVnfmDetail = queryEsrVnfmDetail(vnfmId); + esrVnfmDetail = VnfmManagerUtil.vnfmRegisterInfo2EsrVnfm(vnfm); + String resourceVersion = getResourceVersion(vnfmId); + esrVnfmDetail.setResourceVersion(resourceVersion); + esrVnfmDetail.setVnfmId(vnfmId); + originalEsrSystemInfo = originalEsrVnfmDetail.getEsrSystemInfoList().getEsrSystemInfo().get(0); + esrVnfmDetail.getEsrSystemInfoList().getEsrSystemInfo().get(0) + .setEsrSystemInfoId(originalEsrSystemInfo.getEsrSystemInfoId()); + esrVnfmDetail.getEsrSystemInfoList().getEsrSystemInfo().get(0) + .setResouceVersion(originalEsrSystemInfo.getResouceVersion()); + try { + ExternalSystemProxy.registerVnfm(vnfmId, esrVnfmDetail); + result.setId(vnfmId); + return Response.ok(result).build(); + } catch (Exception e) { + e.printStackTrace(); + LOG.error("Update VNFM failed !" + e.getMessage()); + return Response.serverError().build(); + } } public Response queryVnfmList() { @@ -95,17 +117,8 @@ public class VnfmManagerWrapper { } public Response delVnfm(String vnfmId) { - EsrVnfmDetail esrVnfmDetail = new EsrVnfmDetail(); - try { - String esrVnfmstr = ExternalSystemProxy.queryVnfmDetail(vnfmId); - LOG.info("Response from AAI by query VNFM: " + esrVnfmstr); - esrVnfmDetail = new Gson().fromJson(esrVnfmstr, EsrVnfmDetail.class); - } catch (Exception e) { - e.printStackTrace(); - LOG.error("Query VNFM detail failed! VNFM ID: " + vnfmId, e.getMessage()); - } - if (esrVnfmDetail != null && esrVnfmDetail.getResourceVersion() != null) { - String resourceVersion = esrVnfmDetail.getResourceVersion(); + String resourceVersion = getResourceVersion(vnfmId); + if (resourceVersion != null) { try { ExternalSystemProxy.deleteVnfm(vnfmId, resourceVersion); return Response.ok().build(); @@ -149,4 +162,27 @@ public class VnfmManagerWrapper { } return vnfmInfoList; } + + private String getResourceVersion (String vnfmId) { + EsrVnfmDetail esrVnfmDetail = new EsrVnfmDetail(); + String resourceVersion = null; + esrVnfmDetail = queryEsrVnfmDetail(vnfmId); + if (esrVnfmDetail != null && esrVnfmDetail.getResourceVersion() != null) { + resourceVersion = esrVnfmDetail.getResourceVersion(); + } + return resourceVersion; + } + + private EsrVnfmDetail queryEsrVnfmDetail (String vnfmId) { + EsrVnfmDetail esrVnfmDetail = new EsrVnfmDetail(); + try { + String esrVnfmstr = ExternalSystemProxy.queryVnfmDetail(vnfmId); + LOG.info("Response from AAI by query VNFM: " + esrVnfmstr); + esrVnfmDetail = new Gson().fromJson(esrVnfmstr, EsrVnfmDetail.class); + } catch (Exception e) { + e.printStackTrace(); + LOG.error("Query VNFM detail failed! VNFM ID: " + vnfmId, e.getMessage()); + } + return esrVnfmDetail; + } } -- 2.16.6