Update get operation status part
[vfc/nfvo/driver/vnfm/svnfm.git] / nokia / vnfmdriver / vfcadaptorservice / vfcadaptor / src / main / java / org / onap / vfc / nfvo / driver / vnfm / svnfm / adaptor / VnfmDriverMgmrImpl.java
index 10802c8..dac64b7 100644 (file)
@@ -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;
@@ -95,18 +97,30 @@ 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);
                        String vnfInstanceId = cbamResponse.getId();
+                       
                        Long jobId = saveCreateVnfJob(vnfInstanceId);
                        driverResponse = responseConverter.createRspConvert(cbamResponse, jobId);
                        
-                       vnfContinueProcessorInf.continueInstantiateVnf(driverRequest, vnfInstanceId, jobId.toString(), nslcmMgmr, catalogMgmr, cbamMgmr, requestConverter, jobDbManager);
+                       //start the timer
+                       OperateTaskProgress.startInstantiateTimerTask();
+                       
+                       vnfContinueProcessorInf.continueInstantiateVnf(vnfmId, driverRequest, vnfInstanceId, jobId.toString(), nslcmMgmr, catalogMgmr, cbamMgmr, requestConverter, jobDbManager);
                        
                } catch (Exception e) {
+                       logger.error("error VnfmDriverMgmrImpl --> instantiateVnf. ", e);
                        throw new VnfmDriverException(HttpStatus.SC_INTERNAL_SERVER_ERROR, CommonConstants.HTTP_ERROR_DESC_500);
                }
                
@@ -130,9 +144,13 @@ public class VnfmDriverMgmrImpl implements VnfmDriverMgmrInf{
                        buildVnfmHttpPathById(vnfmId);
                        driverResponse = generateTerminateVnfResponse(vnfInstanceId);
                        String jobId = driverResponse.getJobId();
-                       vnfContinueProcessorInf.continueTerminateVnf(driverRequest, vnfInstanceId, jobId, nslcmMgmr, cbamMgmr, requestConverter, jobDbManager);
+                       
+                       //start the timer
+                       OperateTaskProgress.startTerminateTimerTask();
+                       vnfContinueProcessorInf.continueTerminateVnf(vnfmId, driverRequest, vnfInstanceId, jobId, nslcmMgmr, cbamMgmr, requestConverter, jobDbManager);
                        
                } catch (Exception e) {
+                       logger.error("error VnfmDriverMgmrImpl --> terminateVnf. ", e);
                        throw new VnfmDriverException(HttpStatus.SC_INTERNAL_SERVER_ERROR, CommonConstants.HTTP_ERROR_DESC_500);
                }
                
@@ -160,6 +178,7 @@ public class VnfmDriverMgmrImpl implements VnfmDriverMgmrInf{
                        CBAMQueryVnfResponse cbamResponse = cbamMgmr.queryVnf(vnfInstanceId);
                        driverResponse = responseConverter.queryRspConvert(cbamResponse);
                } catch (Exception e) {
+                       logger.error("error VnfmDriverMgmrImpl --> queryVnf. ", e);
                        throw new VnfmDriverException(HttpStatus.SC_INTERNAL_SERVER_ERROR, CommonConstants.HTTP_ERROR_DESC_500);
                }
                
@@ -168,19 +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.getLong(jobId));
-                       String execId = jobInfo.getVnfmExecutionId();
-                       cbamResponse = cbamMgmr.queryOperExecution(execId);
+                       VnfmJobExecutionInfo jobInfo = jobDbManager.findOne(Long.parseLong(jobId));
+                       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;
        }
@@ -193,6 +237,7 @@ public class VnfmDriverMgmrImpl implements VnfmDriverMgmrInf{
                        CBAMScaleVnfResponse cbamResponse = cbamMgmr.scaleVnf(cbamRequest, vnfInstanceId);
                        driverResponse = responseConverter.scaleRspConvert(cbamResponse);
                } catch (Exception e) {
+                       logger.error("error VnfmDriverMgmrImpl --> scaleVnf. ", e);
                        throw new VnfmDriverException(HttpStatus.SC_INTERNAL_SERVER_ERROR, CommonConstants.HTTP_ERROR_DESC_500);
                }
                
@@ -207,15 +252,26 @@ public class VnfmDriverMgmrImpl implements VnfmDriverMgmrInf{
                        CBAMHealVnfResponse cbamResponse = cbamMgmr.healVnf(cbamRequest, vnfInstanceId);
                        driverResponse = responseConverter.healRspConvert(cbamResponse);
                } catch (Exception e) {
+                       logger.error("error VnfmDriverMgmrImpl --> healVnf. ", e);
                        throw new VnfmDriverException(HttpStatus.SC_INTERNAL_SERVER_ERROR, CommonConstants.HTTP_ERROR_DESC_500);
                }
                
         return driverResponse;
        }
 
-       public String buildVnfmHttpPathById(String vnfmId) throws ClientProtocolException, IOException, VnfmDriverException {
+       public String buildVnfmHttpPathById(String vnfmId) {
+               String result = "";
+               try {
+                       result = buildVnfmHttpPathByRealId(vnfmId);
+               } catch (Exception e) {
+                       logger.error("buildVnfmHttpPathById Error.", e);
+               }
+               return result;
+       }
+       
+       public String buildVnfmHttpPathByRealId(String vnfmId) throws ClientProtocolException, IOException, VnfmDriverException {
                AaiVnfmInfo vnfmInfo = aaiMgmr.queryVnfm(vnfmId);
-               logger.info("vnfmInfo in AAI is {}", gson.toJson(vnfmInfo));
+               logger.info("vnfmInfo in AAI is " + gson.toJson(vnfmInfo));
                if(isVnfmInfoValid(vnfmId, vnfmInfo))
                {
                        throw new VnfmDriverException(HttpStatus.SC_INTERNAL_SERVER_ERROR, CommonConstants.HTTP_ERROR_DESC_500);
@@ -223,13 +279,16 @@ public class VnfmDriverMgmrImpl implements VnfmDriverMgmrInf{
                
                EsrSystemInfo systemInfo = vnfmInfo.getEsrSystemInfoList().get(0);
                
-               String urlHead = systemInfo.getProtocal() + "://" + systemInfo.getIp() + ":" + systemInfo.getPort();
-               adaptorEnv.setCbamApiUriFront(urlHead);
+               String urlHead = systemInfo.getServiceUrl();
+//             adaptorEnv.setCbamApiUriFront(urlHead);
+//             adaptorEnv.setCbamUserName(systemInfo.getUserName());
+//             adaptorEnv.setCbamPassword(systemInfo.getPassword());
+               
                return urlHead;
        }
 
        private boolean isVnfmInfoValid(String vnfmId, AaiVnfmInfo vnfmInfo) {
-               return vnfmInfo == null || !vnfmId.equalsIgnoreCase(vnfmInfo.getVnfmId()) || vnfmInfo.getEsrSystemInfoList() == null || vnfmInfo.getEsrSystemInfoList().isEmpty();
+               return vnfmInfo == null || vnfmInfo.getEsrSystemInfoList() == null || vnfmInfo.getEsrSystemInfoList().isEmpty();
        }
 
        public void setRequestConverter(Driver2CbamRequestConverter requestConverter) {
@@ -239,5 +298,5 @@ public class VnfmDriverMgmrImpl implements VnfmDriverMgmrInf{
        public void setResponseConverter(Cbam2DriverResponseConverter responseConverter) {
                this.responseConverter = responseConverter;
        }
-
+       
 }