diff options
author | yufei_zhou <yufei.zhou@nokia-sbell.com> | 2017-11-11 17:42:11 +0800 |
---|---|---|
committer | yufei_zhou <yufei.zhou@nokia-sbell.com> | 2017-11-11 17:42:11 +0800 |
commit | 7014e3fe05b59edfaf164d53cbf540813b3e4143 (patch) | |
tree | b9e2aa12c9a70225620a0192c354b211b6451023 /nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/TerminateVnfContinueRunnable.java | |
parent | cfc163f4b52cc46bc372e221428f1721b65ce9d6 (diff) |
Update get operation status part
Change-Id: Idb1081d8c718e0d185c30f87ccabd20f101e41df
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/TerminateVnfContinueRunnable.java')
-rw-r--r-- | nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/TerminateVnfContinueRunnable.java | 73 |
1 files changed, 49 insertions, 24 deletions
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 00b82432..0e6493c1 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 @@ -19,6 +19,7 @@ package org.onap.vfc.nfvo.driver.vnfm.svnfm.adaptor; import java.util.ArrayList; import java.util.List; +import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMQueryVnfResponse; 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; @@ -31,6 +32,7 @@ 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.AffectedVnfc; 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; @@ -81,11 +83,40 @@ public class TerminateVnfContinueRunnable implements Runnable { private void handleDelete() { try { + boolean vnfAllowDelete = false; + int i = 0; + while(!vnfAllowDelete) { + CBAMQueryVnfResponse queryResponse = cbamMgmr.queryVnf(vnfInstanceId); + if(CommonEnum.InstantiationState.NOT_INSTANTIATED == queryResponse.getInstantiationState()) + { + vnfAllowDelete = true; + break; + } + i++; + logger.info(i + ": The vnf's current status is " + queryResponse.getInstantiationState().name() + " is not ready for deleting, please wait ... "); + Thread.sleep(30000); + } + prepareDelete(jobId); cbamMgmr.deleteVnf(vnfInstanceId); } catch (Exception e) { logger.error("TerminateVnfContinueRunnable --> handleDelete error.", e); } } + + private void prepareDelete(String jobId) { + OperateTaskProgress.stopTerminateTimerTask(); + + VnfmJobExecutionInfo jobInfo = jobDbMgmr.findOne(Long.parseLong(jobId)); + jobInfo.setStatus(CommonConstants.CBAM_OPERATION_STATUS_FINISH); + jobDbMgmr.save(jobInfo); + + try { + NslcmNotifyLCMEventsRequest nslcmNotifyReq = buildNslcmNotifyLCMEventsRequest(); + nslcmMgmr.notifyVnf(nslcmNotifyReq, vnfmId, vnfInstanceId); + } catch (Exception e) { + logger.error("TerminateVnfContinueRunnable --> handleNotify error.", e); + } + } private CBAMTerminateVnfResponse handleTerminate() { CBAMTerminateVnfResponse cbamResponse = null; @@ -97,14 +128,6 @@ public class TerminateVnfContinueRunnable implements Runnable { logger.error("TerminateVnfContinueRunnable --> handleTerminate error.", e); } - try { - NslcmNotifyLCMEventsRequest nslcmNotifyReq = buildNslcmNotifyLCMEventsRequest(cbamResponse); - nslcmMgmr.notifyVnf(nslcmNotifyReq, vnfmId, vnfInstanceId); - } catch (Exception e) { - logger.error("TerminateVnfContinueRunnable --> handleNotify error.", e); - } - - return cbamResponse; } @@ -116,7 +139,7 @@ public class TerminateVnfContinueRunnable implements Runnable { jobInfo.setStatus(CommonConstants.CBAM_OPERATION_STATUS_ERROR); } else { - jobInfo.setStatus(cbamResponse.getStatus().toString()); + jobInfo.setStatus(CommonConstants.CBAM_OPERATION_STATUS_PROCESSING); } jobDbMgmr.save(jobInfo); } @@ -150,31 +173,33 @@ public class TerminateVnfContinueRunnable implements Runnable { return def; } - private NslcmNotifyLCMEventsRequest buildNslcmNotifyLCMEventsRequest(CBAMTerminateVnfResponse cbamResponse) { + private NslcmNotifyLCMEventsRequest buildNslcmNotifyLCMEventsRequest() { NslcmNotifyLCMEventsRequest request = new NslcmNotifyLCMEventsRequest(); - if(CommonEnum.OperationStatus.STARTED == cbamResponse.getStatus()) - { - request.setStatus(CommonEnum.status.start); - } - else - { - request.setStatus(CommonEnum.status.result); - - //TODO the following are for the result -// request.setAffectedVnfc(affectedVnfc); -// request.setAffectedVI(affectedVI); -// request.setAffectedVirtualStorage(affectedVirtualStorage); - } + request.setStatus(CommonEnum.status.result); + List<AffectedVnfc> vnfcs = modifyResourceTypeAsRemove(OperateTaskProgress.getAffectedVnfc()); + + request.setAffectedVnfc(vnfcs); request.setVnfInstanceId(vnfInstanceId); request.setOperation(CommonConstants.NSLCM_OPERATION_TERMINATE); request.setJobId(jobId); return request; } + private List<AffectedVnfc> modifyResourceTypeAsRemove(List<AffectedVnfc> affectedVnfc) { + List<AffectedVnfc> vnfcs = affectedVnfc; + if(vnfcs != null && !vnfcs.isEmpty()) { + for(AffectedVnfc vnfc : vnfcs) + { + vnfc.setChangeType(CommonEnum.AffectchangeType.removed); + } + } + + return vnfcs; + } + private void handleNslcmGrantResponse(NslcmGrantVnfResponse grantResponse) { // TODO Auto-generated method stub } - } |