diff options
Diffstat (limited to 'nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor')
4 files changed, 180 insertions, 210 deletions
diff --git a/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/Driver2CbamRequestConverter.java b/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/Driver2CbamRequestConverter.java index 55448096..aebf122e 100644 --- a/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/Driver2CbamRequestConverter.java +++ b/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/Driver2CbamRequestConverter.java @@ -16,27 +16,20 @@ package org.onap.vfc.nfvo.driver.vnfm.svnfm.adaptor; -import java.util.ArrayList; -import java.util.List; +import java.io.BufferedInputStream; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMCreateVnfRequest; import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMHealVnfRequest; import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMInstantiateVnfRequest; import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMScaleVnfRequest; import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMTerminateVnfRequest; -import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.entity.EndpointInfo; -import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.entity.ExtVirtualLinkData; -import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.entity.OpenStackAccessInfoV2; -import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.entity.OpenStackAccessInfoV3; -import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.entity.OpenstackV2Info; -import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.entity.OpenstackV3Info; -import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.entity.OtherVimInfo; -import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.entity.VCloudAccessInfo; -import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.entity.VimInfo; -import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.entity.VimInfoType; -import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.entity.VmwareVcloudInfo; -import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.entity.VnfExtCpData; -import org.onap.vfc.nfvo.driver.vnfm.svnfm.constant.CommonEnum; +import org.onap.vfc.nfvo.driver.vnfm.svnfm.common.util.CommonUtil; +import org.onap.vfc.nfvo.driver.vnfm.svnfm.constant.ScaleDirection; +import org.onap.vfc.nfvo.driver.vnfm.svnfm.constant.ScaleType; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.NslcmGrantVnfResponse; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.entity.GrantInfo; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.entity.VimComputeResourceFlavour; @@ -46,134 +39,36 @@ import org.onap.vfc.nfvo.driver.vnfm.svnfm.vnfmdriver.bo.ScaleVnfRequest; import org.onap.vfc.nfvo.driver.vnfm.svnfm.vnfmdriver.bo.TerminateVnfRequest; import org.springframework.stereotype.Component; +import com.google.gson.Gson; + @Component public class Driver2CbamRequestConverter { - + public CBAMCreateVnfRequest createReqConvert(InstantiateVnfRequest driverRequest) { CBAMCreateVnfRequest request = new CBAMCreateVnfRequest(); - request.setVnfdId(driverRequest.getVnfDescriptorId()); + request.setVnfdId(driverRequest.getVnfdId()); request.setName(driverRequest.getVnfInstanceName()); request.setDescription(driverRequest.getVnfInstanceDescription()); return request; } - public CBAMInstantiateVnfRequest InstantiateReqConvert(InstantiateVnfRequest driverRequest, - NslcmGrantVnfResponse nslc, GrantInfo grant, VimComputeResourceFlavour vimco) { - CBAMInstantiateVnfRequest request = new CBAMInstantiateVnfRequest(); + public CBAMInstantiateVnfRequest instantiateRequestConvert(InstantiateVnfRequest driverRequest, + NslcmGrantVnfResponse nslc, GrantInfo grant, VimComputeResourceFlavour vimco) throws Exception { + Gson gson = new Gson(); + String inputJson = readcbamInputInfoFromJsonFile(); + CBAMInstantiateVnfRequest request = gson.fromJson(inputJson, CBAMInstantiateVnfRequest.class); - List<VimInfo> vims = new ArrayList<VimInfo>(); - VimInfo vim = new VimInfo(); - EndpointInfo inter = new EndpointInfo(); - List<ExtVirtualLinkData> list = new ArrayList<ExtVirtualLinkData>(); - ExtVirtualLinkData ext = new ExtVirtualLinkData(); - List<VnfExtCpData> cps = new ArrayList<VnfExtCpData>(); - VnfExtCpData cp = new VnfExtCpData(); - OpenStackAccessInfoV3 v3 = new OpenStackAccessInfoV3(); - OpenStackAccessInfoV2 v2 = new OpenStackAccessInfoV2(); - VCloudAccessInfo vcloudInfo = new VCloudAccessInfo(); - if(vim.getVimInfoType().equals(VimInfoType.OPENSTACK_V2_INFO)) { - OpenstackV2Info openstackV2=new OpenstackV2Info(); - List<org.onap.vfc.nfvo.driver.vnfm.svnfm.vnfmdriver.bo.entity.ExtVirtualLinkData> link=driverRequest.getExtVirtualLink(); - for(int i=0;i<link.size();i++) { - vim.setId(link.get(i).getVim().getVimId()); - inter.setEndpoint(link.get(i).getVim().getInterfaceEndpoint()); - openstackV2.setId(link.get(i).getVim().getVimId()); - openstackV2.setInterfaceInfo(inter); - - ext.setResourceId(link.get(i).getNetworkId());// todo resourceId - - cp.setCpdId(link.get(i).getCpdId()); - cps.add(cp); - ext.setExtCps(cps); - - List<org.onap.vfc.nfvo.driver.vnfm.svnfm.vnfmdriver.bo.entity.AccessInfo> accessInfo=link.get(i).getVim().getAccessInfo(); - for(int j=0;j<=accessInfo.size();j++) { - v2.setUsername(accessInfo.get(j).getUsername()); - v2.setPassword(accessInfo.get(j).getPassword()); - v2.setTenant(accessInfo.get(j).getTenant()); - //todo region - } - openstackV2.setAccessInfo(v2); - vims.add(vim); - list.add(ext); - } - }else if(vim.getVimInfoType().equals(VimInfoType.OPENSTACK_V3_INFO)) { - OpenstackV3Info openstackV3=new OpenstackV3Info(); - List<org.onap.vfc.nfvo.driver.vnfm.svnfm.vnfmdriver.bo.entity.ExtVirtualLinkData> link=driverRequest.getExtVirtualLink(); - for(int i=0;i<link.size();i++) { - vim.setId(link.get(i).getVim().getVimId()); - inter.setEndpoint(link.get(i).getVim().getInterfaceEndpoint()); - openstackV3.setId(link.get(i).getVim().getVimId()); - openstackV3.setInterfaceInfo(inter); - - ext.setResourceId(link.get(i).getNetworkId());// todo resourceId - - cp.setCpdId(link.get(i).getCpdId()); - cps.add(cp); - ext.setExtCps(cps); - - List<org.onap.vfc.nfvo.driver.vnfm.svnfm.vnfmdriver.bo.entity.AccessInfo> accessInfo=link.get(i).getVim().getAccessInfo(); - for(int j=0;j<=accessInfo.size();j++) { - v3.setUsername(accessInfo.get(j).getUsername()); - v3.setPassword(accessInfo.get(j).getPassword()); - //todo region project domain - } - openstackV3.setAccessInfo(v3); - vims.add(vim); - list.add(ext); - } - - }else if(vim.getVimInfoType().equals(VimInfoType.OTHER_VIM_INFO)) { - OtherVimInfo other=new OtherVimInfo(); - List<org.onap.vfc.nfvo.driver.vnfm.svnfm.vnfmdriver.bo.entity.ExtVirtualLinkData> link=driverRequest.getExtVirtualLink(); - for(int i=0;i<link.size();i++) { - vim.setId(link.get(i).getVim().getVimId()); - inter.setEndpoint(link.get(i).getVim().getInterfaceEndpoint()); - other.setId(link.get(i).getVim().getVimId()); - - ext.setResourceId(link.get(i).getNetworkId());// todo resourceId - - cp.setCpdId(link.get(i).getCpdId()); - cps.add(cp); - ext.setExtCps(cps); - vims.add(vim); - list.add(ext); - } - - }else if(vim.getVimInfoType().equals(VimInfoType.VMWARE_VCLOUD_INFO)) { - VmwareVcloudInfo vcloud=new VmwareVcloudInfo(); - List<org.onap.vfc.nfvo.driver.vnfm.svnfm.vnfmdriver.bo.entity.ExtVirtualLinkData> link=driverRequest.getExtVirtualLink(); - for(int i=0;i<link.size();i++) { - vim.setId(link.get(i).getVim().getVimId()); - inter.setEndpoint(link.get(i).getVim().getInterfaceEndpoint()); - vcloud.setId(link.get(i).getVim().getVimId()); - vcloud.setInterfaceInfo(inter); - - ext.setResourceId(link.get(i).getNetworkId());// todo resourceId - - cp.setCpdId(link.get(i).getCpdId()); - cps.add(cp); - ext.setExtCps(cps); - - - List<org.onap.vfc.nfvo.driver.vnfm.svnfm.vnfmdriver.bo.entity.AccessInfo> accessInfo=link.get(i).getVim().getAccessInfo(); - for(int j=0;j<=accessInfo.size();j++) { - vcloudInfo.setUsername(accessInfo.get(j).getUsername()); - vcloudInfo.setPassword(accessInfo.get(j).getPassword()); - } - vcloud.setAccessInfo(vcloudInfo); - vims.add(vim); - list.add(ext); - } - - } - request.setFlavourId(driverRequest.getFlavourId()); - request.setVims(vims); - request.setExtVirtualLinks(list); return request; } + private String readcbamInputInfoFromJsonFile() throws IOException { + String filePath = "/etc/vnfpkginfo/cbam_input.json"; + String fileContent = CommonUtil.getJsonStrFromFile(filePath); + + return fileContent; + } + public CBAMTerminateVnfRequest terminateReqConvert(TerminateVnfRequest driverRequest) { CBAMTerminateVnfRequest request = new CBAMTerminateVnfRequest(); request.setTerminationType(driverRequest.getTerminationType()); @@ -190,10 +85,10 @@ public class Driver2CbamRequestConverter { public CBAMScaleVnfRequest scaleReqconvert(ScaleVnfRequest driverRequest) { CBAMScaleVnfRequest request = new CBAMScaleVnfRequest(); - if (driverRequest.getType().equals("SCALE_OUT")) { - request.setType(CommonEnum.ScaleDirection.OUT); + if (driverRequest.getType().equals(ScaleType.SCALE_OUT)) { + request.setType(ScaleDirection.OUT); } else { - request.setType(CommonEnum.ScaleDirection.IN); + request.setType(ScaleDirection.IN); } request.setAspectId(driverRequest.getAspectId()); request.setNumberOfSteps(driverRequest.getNumberOfSteps()); diff --git a/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/InstantiateVnfContinueRunnable.java b/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/InstantiateVnfContinueRunnable.java index 6fbb028a..20c8bf50 100644 --- a/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/InstantiateVnfContinueRunnable.java +++ b/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/InstantiateVnfContinueRunnable.java @@ -16,18 +16,18 @@ package org.onap.vfc.nfvo.driver.vnfm.svnfm.adaptor; -import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.concurrent.Executors; -import org.apache.http.client.ClientProtocolException; import org.onap.vfc.nfvo.driver.vnfm.svnfm.catalog.bo.entity.VnfPackageInfo; import org.onap.vfc.nfvo.driver.vnfm.svnfm.catalog.inf.CatalogMgmrInf; import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMInstantiateVnfRequest; import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMInstantiateVnfResponse; +import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMModifyVnfRequest; import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.inf.CbamMgmrInf; +import org.onap.vfc.nfvo.driver.vnfm.svnfm.common.util.CommonUtil; import org.onap.vfc.nfvo.driver.vnfm.svnfm.constant.CommonConstants; import org.onap.vfc.nfvo.driver.vnfm.svnfm.constant.CommonEnum; import org.onap.vfc.nfvo.driver.vnfm.svnfm.constant.CommonEnum.LifecycleOperation; @@ -35,14 +35,15 @@ import org.onap.vfc.nfvo.driver.vnfm.svnfm.db.bean.VnfmJobExecutionInfo; import org.onap.vfc.nfvo.driver.vnfm.svnfm.db.repository.VnfmJobExecutionRepository; import org.onap.vfc.nfvo.driver.vnfm.svnfm.http.client.HttpClientProcessorImpl; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.NslcmGrantVnfRequest; -import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.NslcmGrantVnfResponse; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.NslcmNotifyLCMEventsRequest; +import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.entity.AddResource; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.entity.ResourceDefinition; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.inf.NslcmMgmrInf; import org.onap.vfc.nfvo.driver.vnfm.svnfm.vnfmdriver.bo.InstantiateVnfRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.zeroturnaround.zip.ZipUtil; + +import com.google.gson.Gson; public class InstantiateVnfContinueRunnable implements Runnable { @@ -54,12 +55,15 @@ public class InstantiateVnfContinueRunnable implements Runnable { private InstantiateVnfRequest driverRequest; private String vnfInstanceId; private String jobId; + private String vnfmId; private VnfmJobExecutionRepository jobDbMgmr; private Driver2CbamRequestConverter requestConverter; - public InstantiateVnfContinueRunnable(InstantiateVnfRequest driverRequest, String vnfInstanceId, String jobId, + private Gson gson = new Gson(); + + public InstantiateVnfContinueRunnable(String vnfmId, InstantiateVnfRequest driverRequest, String vnfInstanceId, String jobId, NslcmMgmrInf nslcmMgmr, CatalogMgmrInf catalogMgmr, CbamMgmrInf cbamMgmr, Driver2CbamRequestConverter requestConverter, VnfmJobExecutionRepository dbManager) { this.driverRequest = driverRequest; @@ -70,30 +74,66 @@ public class InstantiateVnfContinueRunnable implements Runnable { this.cbamMgmr = cbamMgmr; this.requestConverter = requestConverter; this.jobDbMgmr = dbManager; + this.vnfmId = vnfmId; } public void run() { + //step 1 handle vnf package + handleVnfPackage(); + + handleGrant(); + + handleModify(); try { - //step 1 handle vnf package - handleVnfPackage(); - - NslcmGrantVnfRequest grantRequest = buildNslcmGrantVnfRequest(); - NslcmGrantVnfResponse grantResponse = nslcmMgmr.grantVnf(grantRequest); - //step 5: instantiate vnf - CBAMInstantiateVnfRequest instantiateReq = requestConverter.InstantiateReqConvert(driverRequest, grantResponse, null, null); - CBAMInstantiateVnfResponse cbamInstantiateResponse = cbamMgmr.instantiateVnf(instantiateReq, vnfInstanceId); - handleCbamInstantiateResponse(cbamInstantiateResponse, jobId); + CBAMInstantiateVnfResponse cbamInstantiateResponse = handleInstantiate(); + handleNotify(cbamInstantiateResponse); + } catch (Exception e) { + logger.error("InstantiateVnfContinueRunnable --> handleInstantiate or handleNotify error.", e); + } + } + + private void handleNotify(CBAMInstantiateVnfResponse cbamInstantiateResponse) { + try { NslcmNotifyLCMEventsRequest nslcmNotifyReq = buildNslcmNotifyLCMEventsRequest(cbamInstantiateResponse); - nslcmMgmr.notifyVnf(nslcmNotifyReq, vnfInstanceId); - - } catch (ClientProtocolException e) { - logger.error("InstantiateVnfContinueRunnable run error ClientProtocolException", e); - } catch (IOException e) { - logger.error("InstantiateVnfContinueRunnable run error IOException", e); + nslcmMgmr.notifyVnf(nslcmNotifyReq, vnfmId, vnfInstanceId); + } catch (Exception e) { + logger.error("InstantiateVnfContinueRunnable --> handleNotify error.", e); + } + } + + private CBAMInstantiateVnfResponse handleInstantiate() throws Exception { + CBAMInstantiateVnfRequest instantiateReq = requestConverter.instantiateRequestConvert(driverRequest, null, null, null); + CBAMInstantiateVnfResponse cbamInstantiateResponse = cbamMgmr.instantiateVnf(instantiateReq, vnfInstanceId); + handleCbamInstantiateResponse(cbamInstantiateResponse, jobId); + return cbamInstantiateResponse; + } + + private void handleModify() { + try { + CBAMModifyVnfRequest modifyReq = generateModifyVnfRequest(); + cbamMgmr.modifyVnf(modifyReq, vnfInstanceId); + } catch (Exception e) { + logger.error("InstantiateVnfContinueRunnable --> handleModify error.", e); + } + } + + private void handleGrant(){ + try { + NslcmGrantVnfRequest grantRequest = buildNslcmGrantVnfRequest(); + nslcmMgmr.grantVnf(grantRequest); + } catch (Exception e) { + logger.error("InstantiateVnfContinueRunnable --> handleGrant error.", e); } + } + + private CBAMModifyVnfRequest generateModifyVnfRequest() throws IOException{ + String filePath = "/etc/vnfpkginfo/cbam_extension.json"; + String fileContent = CommonUtil.getJsonStrFromFile(filePath); + CBAMModifyVnfRequest req = gson.fromJson(fileContent, CBAMModifyVnfRequest.class); + return req; } private void handleVnfPackage() { @@ -110,17 +150,16 @@ public class InstantiateVnfContinueRunnable implements Runnable { process.waitFor(); if (HttpClientProcessorImpl.downLoadFromUrl(packageUrl, packageFileName, saveDir)) { - File csarFile = new File(saveDir + "/" + packageFileName); - //extract package - ZipUtil.explode(csarFile); - csarFile.delete(); - String cbamPackageDirName = saveDir + "/" + packageFileName + "/Artifacts"; - String cbamPackageName = new File(cbamPackageDirName).list()[0]; - cbamMgmr.uploadVnfPackage(cbamPackageName); - } + logger.info("handleVnfPackage download file " + packageUrl + " is successful."); +// File csarFile = new File(saveDir + "/" + packageFileName); +// //extract package +// ZipUtil.explode(csarFile); +// csarFile.delete(); + } } catch (Exception e) { - logger.error("Error to handleVnfPackage", e); + logger.error("Error to handleVnfPackage from SDC", e); } + } }); @@ -164,12 +203,21 @@ public class InstantiateVnfContinueRunnable implements Runnable { } private ResourceDefinition getFreeVnfResource() { - // TODO Auto-generated method stub - return null; + ResourceDefinition def = new ResourceDefinition(); + def.setVnfInstanceId(vnfInstanceId); + def.setVimId("001"); + List<AddResource> resources = new ArrayList<>(); + AddResource res = new AddResource(); + res.setVdu("1"); + res.setType("vdu"); + res.setResourceDefinitionId(2); + resources.add(res); + def.setAddResource(resources); + return def; } private void handleCbamInstantiateResponse(CBAMInstantiateVnfResponse cbamInstantiateResponse, String jobId) { - VnfmJobExecutionInfo jobInfo = jobDbMgmr.findOne(Long.getLong(jobId)); + VnfmJobExecutionInfo jobInfo = jobDbMgmr.findOne(Long.parseLong(jobId)); jobInfo.setVnfmExecutionId(cbamInstantiateResponse.getId()); if(CommonEnum.OperationStatus.FAILED == cbamInstantiateResponse.getStatus()){ @@ -178,16 +226,4 @@ public class InstantiateVnfContinueRunnable implements Runnable { jobDbMgmr.save(jobInfo); } - public static void main(String[] argv) { - String saveDir = "D:/tmp/20170926/data"; - String packageFileName = "vCSCF_v3.0.csar"; - File csarFile = new File(saveDir + "/" + packageFileName); - ZipUtil.explode(csarFile); - csarFile.delete(); - String cbamPackageDirName = saveDir + "/" + packageFileName + "/Artifacts"; - String cbamPackageName = new File(cbamPackageDirName).list()[0]; - System.out.println(cbamPackageName); - - } - } diff --git a/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/TerminateVnfContinueRunnable.java b/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/TerminateVnfContinueRunnable.java index 2995c140..00b82432 100644 --- a/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/TerminateVnfContinueRunnable.java +++ b/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/TerminateVnfContinueRunnable.java @@ -16,11 +16,9 @@ package org.onap.vfc.nfvo.driver.vnfm.svnfm.adaptor; -import java.io.IOException; import java.util.ArrayList; import java.util.List; -import org.apache.http.client.ClientProtocolException; import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMTerminateVnfRequest; import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMTerminateVnfResponse; import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.inf.CbamMgmrInf; @@ -32,14 +30,13 @@ import org.onap.vfc.nfvo.driver.vnfm.svnfm.db.repository.VnfmJobExecutionReposit import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.NslcmGrantVnfRequest; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.NslcmGrantVnfResponse; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.NslcmNotifyLCMEventsRequest; +import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.entity.AddResource; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.entity.ResourceDefinition; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.inf.NslcmMgmrInf; import org.onap.vfc.nfvo.driver.vnfm.svnfm.vnfmdriver.bo.TerminateVnfRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - - public class TerminateVnfContinueRunnable implements Runnable { private static final Logger logger = LoggerFactory.getLogger(TerminateVnfContinueRunnable.class); @@ -49,11 +46,12 @@ public class TerminateVnfContinueRunnable implements Runnable { private TerminateVnfRequest driverRequest; private String vnfInstanceId; private String jobId; + private String vnfmId; private VnfmJobExecutionRepository jobDbMgmr; private Driver2CbamRequestConverter requestConverter; - public TerminateVnfContinueRunnable(TerminateVnfRequest driverRequest, String vnfInstanceId, String jobId, + public TerminateVnfContinueRunnable(String vnfmId, TerminateVnfRequest driverRequest, String vnfInstanceId, String jobId, NslcmMgmrInf nslcmMgmr, CbamMgmrInf cbamMgmr, Driver2CbamRequestConverter requestConverter, VnfmJobExecutionRepository dbManager) { this.driverRequest = driverRequest; @@ -63,39 +61,63 @@ public class TerminateVnfContinueRunnable implements Runnable { this.requestConverter = requestConverter; this.jobId = jobId; this.jobDbMgmr = dbManager; + this.vnfmId = vnfmId; } - public void run() { + private void handleGrant(){ try { NslcmGrantVnfRequest grantRequest = buildNslcmGrantVnfRequest(); - NslcmGrantVnfResponse grantResponse = nslcmMgmr.grantVnf(grantRequest); - handleNslcmGrantResponse(grantResponse); - - CBAMTerminateVnfRequest cbamRequest = requestConverter.terminateReqConvert(driverRequest); - CBAMTerminateVnfResponse cbamResponse = cbamMgmr.terminateVnf(cbamRequest, vnfInstanceId); - handleCbamTerminateResponse(cbamResponse, jobId); - + nslcmMgmr.grantVnf(grantRequest); + } catch (Exception e) { + logger.error("TerminateVnfContinueRunnable --> handleGrant error.", e); + } + } + + public void run() { + handleGrant(); + handleTerminate(); + handleDelete(); + } + + private void handleDelete() { + try { cbamMgmr.deleteVnf(vnfInstanceId); - + } catch (Exception e) { + logger.error("TerminateVnfContinueRunnable --> handleDelete error.", e); + } + } + + private CBAMTerminateVnfResponse handleTerminate() { + CBAMTerminateVnfResponse cbamResponse = null; + try { + CBAMTerminateVnfRequest modifyReq = requestConverter.terminateReqConvert(driverRequest); + cbamResponse = cbamMgmr.terminateVnf(modifyReq, vnfInstanceId); + handleCbamTerminateResponse(cbamResponse, jobId); + } catch (Exception e) { + logger.error("TerminateVnfContinueRunnable --> handleTerminate error.", e); + } + + try { NslcmNotifyLCMEventsRequest nslcmNotifyReq = buildNslcmNotifyLCMEventsRequest(cbamResponse); - - nslcmMgmr.notifyVnf(nslcmNotifyReq, vnfInstanceId); - - } catch (ClientProtocolException e) { - logger.error("TerminateVnfContinueRunnable run error ClientProtocolException", e); - } catch (IOException e) { - logger.error("TerminateVnfContinueRunnable run error IOException", e); + nslcmMgmr.notifyVnf(nslcmNotifyReq, vnfmId, vnfInstanceId); + } catch (Exception e) { + logger.error("TerminateVnfContinueRunnable --> handleNotify error.", e); } + + return cbamResponse; } - + private void handleCbamTerminateResponse(CBAMTerminateVnfResponse cbamResponse, String jobId) { - VnfmJobExecutionInfo jobInfo = jobDbMgmr.findOne(Long.getLong(jobId)); + VnfmJobExecutionInfo jobInfo = jobDbMgmr.findOne(Long.parseLong(jobId)); jobInfo.setVnfmExecutionId(cbamResponse.getId()); - if(CommonEnum.OperationStatus.FAILED ==cbamResponse.getStatus()) { + if(CommonEnum.OperationStatus.FAILED == cbamResponse.getStatus()) { jobInfo.setStatus(CommonConstants.CBAM_OPERATION_STATUS_ERROR); } + else { + jobInfo.setStatus(cbamResponse.getStatus().toString()); + } jobDbMgmr.save(jobInfo); } @@ -103,7 +125,7 @@ public class TerminateVnfContinueRunnable implements Runnable { NslcmGrantVnfRequest request = new NslcmGrantVnfRequest(); request.setVnfInstanceId(vnfInstanceId); - request.setLifecycleOperation(LifecycleOperation.Instantiate); + request.setLifecycleOperation(LifecycleOperation.Terminal); request.setJobId(jobId); ResourceDefinition resource = getFreeVnfResource(); @@ -115,8 +137,17 @@ public class TerminateVnfContinueRunnable implements Runnable { } private ResourceDefinition getFreeVnfResource() { - // TODO Auto-generated method stub - return null; + ResourceDefinition def = new ResourceDefinition(); + def.setVnfInstanceId(vnfInstanceId); + def.setVimId("001"); + List<AddResource> resources = new ArrayList<>(); + AddResource res = new AddResource(); + res.setVdu("1"); + res.setType("vdu"); + res.setResourceDefinitionId(2); + resources.add(res); + def.setAddResource(resources); + return def; } private NslcmNotifyLCMEventsRequest buildNslcmNotifyLCMEventsRequest(CBAMTerminateVnfResponse cbamResponse) { diff --git a/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/VnfmDriverMgmrImpl.java b/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/VnfmDriverMgmrImpl.java index 236a17e6..a6bbb19b 100644 --- a/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/VnfmDriverMgmrImpl.java +++ b/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/VnfmDriverMgmrImpl.java @@ -95,8 +95,15 @@ public class VnfmDriverMgmrImpl implements VnfmDriverMgmrInf{ public InstantiateVnfResponse instantiateVnf(InstantiateVnfRequest driverRequest, String vnfmId) throws VnfmDriverException { InstantiateVnfResponse driverResponse; try { + driverRequest.setVnfdId(adaptorEnv.getVnfdId()); buildVnfmHttpPathById(vnfmId); +// String dirPath = "/etc/vnfmpkg"; +// String cbamDirName = CommonUtil.getAppRoot() + dirPath; +// File cbamDirFile = new File(cbamDirName); +// String cbamPackageName = cbamDirFile.listFiles()[0].getAbsolutePath(); +// cbamMgmr.uploadVnfPackage(cbamPackageName); + //step 3: create vnf CBAMCreateVnfRequest cbamRequest = requestConverter.createReqConvert(driverRequest); CBAMCreateVnfResponse cbamResponse = cbamMgmr.createVnf(cbamRequest); @@ -105,7 +112,7 @@ public class VnfmDriverMgmrImpl implements VnfmDriverMgmrInf{ Long jobId = saveCreateVnfJob(vnfInstanceId); driverResponse = responseConverter.createRspConvert(cbamResponse, jobId); - vnfContinueProcessorInf.continueInstantiateVnf(driverRequest, vnfInstanceId, jobId.toString(), nslcmMgmr, catalogMgmr, cbamMgmr, requestConverter, jobDbManager); + vnfContinueProcessorInf.continueInstantiateVnf(vnfmId, driverRequest, vnfInstanceId, jobId.toString(), nslcmMgmr, catalogMgmr, cbamMgmr, requestConverter, jobDbManager); } catch (Exception e) { logger.error("error VnfmDriverMgmrImpl --> instantiateVnf. ", e); @@ -132,7 +139,7 @@ public class VnfmDriverMgmrImpl implements VnfmDriverMgmrInf{ buildVnfmHttpPathById(vnfmId); driverResponse = generateTerminateVnfResponse(vnfInstanceId); String jobId = driverResponse.getJobId(); - vnfContinueProcessorInf.continueTerminateVnf(driverRequest, vnfInstanceId, jobId, nslcmMgmr, cbamMgmr, requestConverter, jobDbManager); + vnfContinueProcessorInf.continueTerminateVnf(vnfmId, driverRequest, vnfInstanceId, jobId, nslcmMgmr, cbamMgmr, requestConverter, jobDbManager); } catch (Exception e) { logger.error("error VnfmDriverMgmrImpl --> terminateVnf. ", e); @@ -177,8 +184,9 @@ public class VnfmDriverMgmrImpl implements VnfmDriverMgmrInf{ try { buildVnfmHttpPathById(vnfmId); - VnfmJobExecutionInfo jobInfo = jobDbManager.findOne(Long.getLong(jobId)); + VnfmJobExecutionInfo jobInfo = jobDbManager.findOne(Long.parseLong(jobId)); String execId = jobInfo.getVnfmExecutionId(); + logger.info(" VnfmDriverMgmrImpl --> getOperStatus execId is " + execId); cbamResponse = cbamMgmr.queryOperExecution(execId); } catch (Exception e) { logger.error("error VnfmDriverMgmrImpl --> getOperStatus. ", e); @@ -222,7 +230,7 @@ public class VnfmDriverMgmrImpl implements VnfmDriverMgmrInf{ public String buildVnfmHttpPathById(String vnfmId) throws ClientProtocolException, IOException, VnfmDriverException { - return null; + return buildVnfmHttpPathByRealId(vnfmId); } public String buildVnfmHttpPathByRealId(String vnfmId) throws ClientProtocolException, IOException, VnfmDriverException { @@ -236,9 +244,9 @@ public class VnfmDriverMgmrImpl implements VnfmDriverMgmrInf{ EsrSystemInfo systemInfo = vnfmInfo.getEsrSystemInfoList().get(0); String urlHead = systemInfo.getServiceUrl(); - adaptorEnv.setCbamApiUriFront(urlHead); - adaptorEnv.setCbamUserName(systemInfo.getUserName()); - adaptorEnv.setCbamPassword(systemInfo.getPassword()); +// adaptorEnv.setCbamApiUriFront(urlHead); +// adaptorEnv.setCbamUserName(systemInfo.getUserName()); +// adaptorEnv.setCbamPassword(systemInfo.getPassword()); return urlHead; } |