diff options
Diffstat (limited to 'nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor')
6 files changed, 298 insertions, 86 deletions
diff --git a/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/Cbam2DriverResponseConverter.java b/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/Cbam2DriverResponseConverter.java index 60671ad4..7bb18efd 100644 --- a/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/Cbam2DriverResponseConverter.java +++ b/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/Cbam2DriverResponseConverter.java @@ -24,6 +24,7 @@ import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMQueryVnfResponse; import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMScaleVnfResponse; import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMTerminateVnfResponse; import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.entity.OperationExecution; +import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.entity.OperationExecution.OperationType; 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.db.bean.VnfmJobExecutionInfo; @@ -85,44 +86,49 @@ public class Cbam2DriverResponseConverter { OperStatusVnfResponse response = new OperStatusVnfResponse(); - response.setJobId(oper.getId()); ResponseDescriptor er = new ResponseDescriptor(); - er.setProgress("1"); - response.setProgress("1"); - if (oper.getStatus() == CommonEnum.OperationStatus.STARTED ) { + er.setStatusDescription("Vim is processing"); er.setStatus("started"); - response.setStatus("started"); + int progress; + if(OperationType.INSTANTIATE == oper.getOperationType()) + { + progress = OperateTaskProgress.getInstantiateProgress(); + } else { + progress = OperateTaskProgress.getTerminateProgress(); + } + + er.setProgress("" + progress); + er.setResponseId("" + + progress); } else if (oper.getStatus() == CommonEnum.OperationStatus.FINISHED) { er.setStatus("finished"); - response.setStatus("finished"); - } else if (oper.getStatus() == CommonEnum.OperationStatus.FAILED) { - er.setStatus("error"); - response.setStatus("error"); - } else if (oper.getStatus() == CommonEnum.OperationStatus.OTHER) { + er.setProgress("100"); + er.setResponseId("100"); + + } else if (oper.getStatus() == CommonEnum.OperationStatus.OTHER) { er.setStatus("processing"); - response.setStatus("processing"); + er.setStatusDescription("Vim is processing"); + + int progress; + if(OperationType.INSTANTIATE == oper.getOperationType()) + { + progress = OperateTaskProgress.getInstantiateProgress(); + } else { + progress = OperateTaskProgress.getTerminateProgress(); + } + + er.setProgress("" + progress); + er.setResponseId("" + + progress); + } else { - er.setStatus("error"); - response.setStatus("error"); + er.setStatus("error"); + er.setStatus("finished"); + er.setProgress("100"); + er.setResponseId("100"); } - er.setStatusDescription(er.getStatus()); - er.setErrorCode("1"); - er.setResponseId("1"); - response.setStatusDescription(er.getStatus()); - response.setErrorCode("1"); - response.setResponseId("1"); - -// List<ResponseHistoryList> list = new ArrayList<ResponseHistoryList>(); -// ResponseHistoryList relist = new ResponseHistoryList(); -// // TODO relist.setProgress(i); -// relist.setStatus(er.getStatus()); -// relist.setStatusDescription(""); -// relist.setErrorCode(null); -// relist.setResponseId(er.getResponseId()); -// list.add(relist); -// er.setResponseHistoryList(list); + er.setErrorCode("null"); + response.setResponseDescriptor(er); return response; } 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 0035baff..493033c9 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 @@ -72,7 +72,7 @@ public class Driver2CbamRequestConverter { public CBAMTerminateVnfRequest terminateReqConvert(TerminateVnfRequest driverRequest) { CBAMTerminateVnfRequest request = new CBAMTerminateVnfRequest(); // request.setTerminationType(driverRequest.getTerminationType().toUpperCase()); - request.setTerminationType("GRACEFUL"); + request.setTerminationType("FORCEFUL"); request.setGracefulTerminationTimeout(driverRequest.getGracefulTerminationTimeout()); return request; } 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 3f7671f4..5ff7f19a 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 @@ -26,6 +26,9 @@ 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.bo.CBAMQueryOperExecutionResponse; +import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.entity.OperationExecution; +import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.entity.VnfcResourceInfo; 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; @@ -37,6 +40,7 @@ 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.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.InstantiateVnfRequest; @@ -88,21 +92,53 @@ public class InstantiateVnfContinueRunnable implements Runnable { //step 5: instantiate vnf CBAMInstantiateVnfResponse cbamInstantiateResponse = handleInstantiate(); - handleNotify(cbamInstantiateResponse); + handleNotify(cbamInstantiateResponse.getId()); } catch (Exception e) { logger.error("InstantiateVnfContinueRunnable --> handleInstantiate or handleNotify error.", e); } } - private void handleNotify(CBAMInstantiateVnfResponse cbamInstantiateResponse) { - try { - logger.info("Start to notify LCM the instantiation result"); - NslcmNotifyLCMEventsRequest nslcmNotifyReq = buildNslcmNotifyLCMEventsRequest(cbamInstantiateResponse); - nslcmMgmr.notifyVnf(nslcmNotifyReq, vnfmId, vnfInstanceId); - logger.info("End to notify LCM the instantiation result"); - } catch (Exception e) { - logger.error("InstantiateVnfContinueRunnable --> handleNotify error.", e); - } + private void handleNotify(String execId) { + boolean instantiateFinished = false; + + do { + try { + logger.info(" InstantiateVnfContinueRunnable --> handleNotify execId is " + execId); + CBAMQueryOperExecutionResponse exeResponse = cbamMgmr.queryOperExecution(execId); + if (exeResponse.getStatus() == CommonEnum.OperationStatus.FINISHED || exeResponse.getStatus() == CommonEnum.OperationStatus.FAILED) + { + instantiateFinished = true; + handleCbamInstantiateResponse(exeResponse, jobId); + OperateTaskProgress.stopInstantiateTimerTask(); + if (exeResponse.getStatus() == CommonEnum.OperationStatus.FINISHED) + { + + logger.info("Start to get vnfc resource"); + List<VnfcResourceInfo> vnfcResources = cbamMgmr.queryVnfcResource(execId); + logger.info("vnfc resource for execId " + execId + " is: " + gson.toJson(vnfcResources)); + logger.info("End to get vnfc resource"); + + if(vnfcResources != null && !vnfcResources.isEmpty()) + { + logger.info("Start to notify LCM the instantiation result"); + NslcmNotifyLCMEventsRequest nslcmNotifyReq = buildNslcmNotifyLCMEventsRequest(vnfcResources); + + OperateTaskProgress.setAffectedVnfc(nslcmNotifyReq.getAffectedVnfc()); + + nslcmMgmr.notifyVnf(nslcmNotifyReq, vnfmId, vnfInstanceId); + logger.info("End to notify LCM the instantiation result"); + } + } + } + else { + Thread.sleep(60000); + } + + } catch (Exception e) { + logger.error("InstantiateVnfContinueRunnable --> handleNotify error.", e); + } + } while(!instantiateFinished); + } private CBAMInstantiateVnfResponse handleInstantiate() throws Exception { @@ -167,28 +203,36 @@ public class InstantiateVnfContinueRunnable implements Runnable { }); } - private NslcmNotifyLCMEventsRequest buildNslcmNotifyLCMEventsRequest(CBAMInstantiateVnfResponse cbamInstantiateResponse) { + private NslcmNotifyLCMEventsRequest buildNslcmNotifyLCMEventsRequest(List<VnfcResourceInfo> vnfcResources) { NslcmNotifyLCMEventsRequest request = new NslcmNotifyLCMEventsRequest(); - if(CommonEnum.OperationStatus.STARTED == cbamInstantiateResponse.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); request.setVnfInstanceId(vnfInstanceId); request.setOperation(CommonConstants.NSLCM_OPERATION_INSTANTIATE); request.setJobId(jobId); + + List<AffectedVnfc> affectedVnfcs = convertVnfcResourceToAffectecVnfc(vnfcResources); + request.setAffectedVnfc(affectedVnfcs); return request; } + private List<AffectedVnfc> convertVnfcResourceToAffectecVnfc(List<VnfcResourceInfo> vnfcResources) { + List<AffectedVnfc> vnfcs = new ArrayList<>(); + for(VnfcResourceInfo resource : vnfcResources) + { + if(resource.getComputeResource() != null && "OS::Nova::Server".equalsIgnoreCase(resource.getComputeResource().getResourceType())) + { + AffectedVnfc vnfc = new AffectedVnfc(); + vnfc.setVnfcInstanceId(resource.getId()); + vnfc.setVduId(resource.getVduId()); + vnfc.setVimid(resource.getComputeResource().getVimId()); + vnfc.setVmid(resource.getComputeResource().getResourceId()); + + vnfcs.add(vnfc); + } + } + return vnfcs; + } + private NslcmGrantVnfRequest buildNslcmGrantVnfRequest() { NslcmGrantVnfRequest request = new NslcmGrantVnfRequest(); @@ -218,13 +262,21 @@ public class InstantiateVnfContinueRunnable implements Runnable { return def; } - private void handleCbamInstantiateResponse(CBAMInstantiateVnfResponse cbamInstantiateResponse, String jobId) { + private void handleCbamInstantiateResponse(OperationExecution cbamInstantiateResponse, String jobId) { VnfmJobExecutionInfo jobInfo = jobDbMgmr.findOne(Long.parseLong(jobId)); jobInfo.setVnfmExecutionId(cbamInstantiateResponse.getId()); if(CommonEnum.OperationStatus.FAILED == cbamInstantiateResponse.getStatus()){ jobInfo.setStatus(CommonConstants.CBAM_OPERATION_STATUS_ERROR); + } else if(CommonEnum.OperationStatus.OTHER == cbamInstantiateResponse.getStatus()){ + jobInfo.setStatus(CommonConstants.CBAM_OPERATION_STATUS_PROCESSING); + } else if(CommonEnum.OperationStatus.FINISHED == cbamInstantiateResponse.getStatus()){ + jobInfo.setStatus(CommonConstants.CBAM_OPERATION_STATUS_FINISH); + } + else{ + jobInfo.setStatus(CommonConstants.CBAM_OPERATION_STATUS_START); } + jobDbMgmr.save(jobInfo); } diff --git a/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/OperateTaskProgress.java b/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/OperateTaskProgress.java new file mode 100644 index 00000000..37e38e63 --- /dev/null +++ b/nokia/vnfmdriver/vfcadaptorservice/vfcadaptor/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/adaptor/OperateTaskProgress.java @@ -0,0 +1,98 @@ +/* + * Copyright 2016-2017, Nokia Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onap.vfc.nfvo.driver.vnfm.svnfm.adaptor; + +import java.util.List; +import java.util.Timer; +import java.util.TimerTask; +import java.util.concurrent.atomic.AtomicInteger; + +import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.entity.AffectedVnfc; + +public class OperateTaskProgress { + private static AtomicInteger instantiate_progress = new AtomicInteger(10); + private static AtomicInteger terminate_progress = new AtomicInteger(20); + + private static Timer instantiateTimer; + private static Timer terminateTimer; + + private static List<AffectedVnfc> affectedVnfc; + + public static int getInstantiateProgress() { + return instantiate_progress.intValue(); + } + + public static int getTerminateProgress() { + return terminate_progress.intValue(); + } + + public static void incrementInstantiateProgress() { + instantiate_progress.incrementAndGet(); + } + + public static void incrementTerminateProgress() { + terminate_progress.incrementAndGet(); + } + + public static void startInstantiateTimerTask() { + instantiateTimer = new Timer(); + instantiate_progress.set(10); + instantiateTimer.schedule(new TimerTask() { + + @Override + public void run() { + if(instantiate_progress.intValue() < 96) { + instantiate_progress.incrementAndGet(); + } + } + + }, 1000, 60000); + } + + public static void startTerminateTimerTask() { + terminateTimer = new Timer(); + terminate_progress.set(20); + terminateTimer.schedule(new TimerTask() { + + @Override + public void run() { + if(terminate_progress.intValue() < 96) { + terminate_progress.incrementAndGet(); + } + } + + }, 1000, 8000); + } + + public static void stopTerminateTimerTask() { + terminateTimer.cancel(); + terminate_progress.set(100); + } + + public static void stopInstantiateTimerTask() { + instantiateTimer.cancel(); + instantiate_progress.set(100); + } + + public static List<AffectedVnfc> getAffectedVnfc() { + return affectedVnfc; + } + + public static void setAffectedVnfc(List<AffectedVnfc> affectedVnfc) { + OperateTaskProgress.affectedVnfc = affectedVnfc; + } +} 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 } - } 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 eacfaeeb..dac64b7b 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 @@ -28,13 +28,15 @@ import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMCreateVnfRequest; import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMCreateVnfResponse; import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMHealVnfRequest; import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMHealVnfResponse; -import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMQueryOperExecutionResponse; import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMQueryVnfResponse; import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMScaleVnfRequest; import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMScaleVnfResponse; +import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.entity.OperationExecution; +import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.entity.OperationExecution.OperationType; import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.inf.CbamMgmrInf; import org.onap.vfc.nfvo.driver.vnfm.svnfm.common.bo.AdaptorEnv; 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.db.bean.VnfmJobExecutionInfo; import org.onap.vfc.nfvo.driver.vnfm.svnfm.db.repository.VnfmJobExecutionRepository; import org.onap.vfc.nfvo.driver.vnfm.svnfm.exception.VnfmDriverException; @@ -112,6 +114,9 @@ public class VnfmDriverMgmrImpl implements VnfmDriverMgmrInf{ Long jobId = saveCreateVnfJob(vnfInstanceId); driverResponse = responseConverter.createRspConvert(cbamResponse, jobId); + //start the timer + OperateTaskProgress.startInstantiateTimerTask(); + vnfContinueProcessorInf.continueInstantiateVnf(vnfmId, driverRequest, vnfInstanceId, jobId.toString(), nslcmMgmr, catalogMgmr, cbamMgmr, requestConverter, jobDbManager); } catch (Exception e) { @@ -139,6 +144,9 @@ public class VnfmDriverMgmrImpl implements VnfmDriverMgmrInf{ buildVnfmHttpPathById(vnfmId); driverResponse = generateTerminateVnfResponse(vnfInstanceId); String jobId = driverResponse.getJobId(); + + //start the timer + OperateTaskProgress.startTerminateTimerTask(); vnfContinueProcessorInf.continueTerminateVnf(vnfmId, driverRequest, vnfInstanceId, jobId, nslcmMgmr, cbamMgmr, requestConverter, jobDbManager); } catch (Exception e) { @@ -179,21 +187,44 @@ public class VnfmDriverMgmrImpl implements VnfmDriverMgmrInf{ public OperStatusVnfResponse getOperStatus(String vnfmId, String jobId) throws VnfmDriverException { - CBAMQueryOperExecutionResponse cbamResponse; + OperationExecution cbamResponse = null; try { buildVnfmHttpPathById(vnfmId); VnfmJobExecutionInfo jobInfo = jobDbManager.findOne(Long.parseLong(jobId)); - String execId = jobInfo.getVnfmExecutionId(); - logger.info(" VnfmDriverMgmrImpl --> getOperStatus execId is " + execId); - cbamResponse = cbamMgmr.queryOperExecution(execId); + cbamResponse = new OperationExecution(); + + if("Instantiate".equalsIgnoreCase(jobInfo.getVnfmInterfceName())) { + cbamResponse.setOperationType(OperationType.INSTANTIATE); + } + else + { + cbamResponse.setOperationType(OperationType.TERMINATE); + } + + if(jobInfo.getStatus().equalsIgnoreCase(CommonConstants.CBAM_OPERATION_STATUS_FINISH)) + { + cbamResponse.setStatus(CommonEnum.OperationStatus.FINISHED); + } else if(jobInfo.getStatus().equalsIgnoreCase(CommonConstants.CBAM_OPERATION_STATUS_ERROR)) + { + cbamResponse.setStatus(CommonEnum.OperationStatus.FINISHED); + } + else + { + cbamResponse.setStatus(CommonEnum.OperationStatus.OTHER); +// String execId = jobInfo.getVnfmExecutionId(); +// logger.info(" VnfmDriverMgmrImpl --> getOperStatus execId is " + execId); +// cbamResponse = cbamMgmr.queryOperExecution(execId); + } + } catch (Exception e) { logger.error("error VnfmDriverMgmrImpl --> getOperStatus. ", e); throw new VnfmDriverException(HttpStatus.SC_INTERNAL_SERVER_ERROR, CommonConstants.HTTP_ERROR_DESC_500); } OperStatusVnfResponse response = responseConverter.operRspConvert(cbamResponse); + response.setJobId(jobId); return response; } @@ -267,5 +298,5 @@ public class VnfmDriverMgmrImpl implements VnfmDriverMgmrInf{ public void setResponseConverter(Cbam2DriverResponseConverter responseConverter) { this.responseConverter = responseConverter; } - + } |