X-Git-Url: https://gerrit.onap.org/r/gitweb?p=aai%2Fesr-server.git;a=blobdiff_plain;f=esr-mgr%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faai%2Fesr%2Fwrapper%2FPnfManagerWrapper.java;h=0683769fe0b8214ba52bda4473bd44bda902bd9f;hp=5efa7434a7480765f714a9f024fb742b22b98e01;hb=8c4d0d90eda21638826a9c31166cc814f699c40b;hpb=2af1528498f33d0f60fcce157a9d6b0472b9b956 diff --git a/esr-mgr/src/main/java/org/onap/aai/esr/wrapper/PnfManagerWrapper.java b/esr-mgr/src/main/java/org/onap/aai/esr/wrapper/PnfManagerWrapper.java index 5efa743..0683769 100644 --- a/esr-mgr/src/main/java/org/onap/aai/esr/wrapper/PnfManagerWrapper.java +++ b/esr-mgr/src/main/java/org/onap/aai/esr/wrapper/PnfManagerWrapper.java @@ -15,8 +15,11 @@ */ package org.onap.aai.esr.wrapper; +import java.util.ArrayList; +import java.util.List; import javax.ws.rs.core.Response; import org.onap.aai.esr.entity.aai.Pnf; +import org.onap.aai.esr.entity.aai.PnfList; import org.onap.aai.esr.entity.rest.PnfRegisterInfo; import org.onap.aai.esr.exception.ExceptionUtil; import org.onap.aai.esr.exception.ExtsysException; @@ -53,8 +56,32 @@ public class PnfManagerWrapper { * @return */ public Response queryPnfList() { - // TODO Auto-generated method stub - return null; + List esrPnfList = new ArrayList<>(); + PnfList pnfList = new PnfList(); + try { + String pnflistStr = networkProxy.queryPnfList(); + pnfList = new Gson().fromJson(pnflistStr, PnfList.class); + LOG.info("Response from AAI by query PNF list: " + pnflistStr); + esrPnfList = getEsrPnfList(pnfList); + return Response.ok(esrPnfList).build(); + } catch (ExtsysException e) { + LOG.error("Query VNFM list failed !", e); + return Response.ok(esrPnfList).build(); + } + } + + /** + * @param pnfList + * @return + */ + private List getEsrPnfList(PnfList pnfList) { + List esrPnfList = new ArrayList<>(); + for (int i = 0; i < pnfList.getPnf().size(); i++) { + Pnf pnf = pnfList.getPnf().get(i); + PnfRegisterInfo pnfRegisterInfo = pnfManagerUtil.pnf2PnfRegisterInfo(pnf); + esrPnfList.add(pnfRegisterInfo); + } + return esrPnfList; } /** @@ -85,8 +112,32 @@ public class PnfManagerWrapper { * @return */ public Response delPnf(String pnfId) { - // TODO Auto-generated method stub - return null; + String resourceVersion = getResourceVersion(pnfId); + try { + networkProxy.deletePnf(pnfId, resourceVersion); + return Response.noContent().build(); + } catch (ExtsysException e) { + LOG.error("Delete PNF from A&AI failed! PNF ID: " + pnfId + "resouce-version:" + resourceVersion, e); + throw ExceptionUtil.buildExceptionResponse(e.getMessage()); + } + } + + /** + * @param pnfId + * @return + */ + private String getResourceVersion(String pnfId) { + String resourceVersion = null; + try { + String pnfStr = networkProxy.queryPNF(pnfId); + Pnf pnf = new Gson().fromJson(pnfStr, Pnf.class); + if (pnf != null && pnf.getResourceVersion() != null) { + resourceVersion = pnf.getResourceVersion(); + } + } catch (ExtsysException e) { + LOG.error("Query PNF detail failed! PNF ID: " + pnfId, e); + } + return resourceVersion; } /**