diff options
author | yufei_zhou <yufei.zhou@nokia-sbell.com> | 2017-11-08 19:31:34 +0800 |
---|---|---|
committer | yufei_zhou <yufei.zhou@nokia-sbell.com> | 2017-11-08 19:31:50 +0800 |
commit | 6ba81c29f8ee403b4ad9f976d1d6d14fbbd7664c (patch) | |
tree | cdabd2c7dbd7b9f47fb982db7da3e00812ffaf0c /nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/InstantiateVnfContinueRunnable.java | |
parent | f3a7349ce2b342fc497035950d0afd000e71ce9c (diff) |
Add modify vnf feature on driver
Change-Id: Ia6132f74097395510a768b13421843cb91e19c1e
Issue-ID: VFC-587
Signed-off-by: yufei_zhou <yufei.zhou@nokia-sbell.com>
Diffstat (limited to 'nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/InstantiateVnfContinueRunnable.java')
-rw-r--r-- | nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/InstantiateVnfContinueRunnable.java | 124 |
1 files changed, 80 insertions, 44 deletions
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); - - } - } |