improve code coverage and update log directory
[vfc/nfvo/driver/vnfm/svnfm.git] / nokia / vnfmdriver / vfcadaptorservice / vfcadaptor / src / main / java / org / onap / vfc / nfvo / driver / vnfm / svnfm / adaptor / Cbam2DriverResponseConverter.java
index 7bb18ef..9f39c18 100644 (file)
@@ -15,9 +15,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.CBAMCreateSubscriptionResponse;
 import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMCreateVnfResponse;
 import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMHealVnfResponse;
 import org.onap.vfc.nfvo.driver.vnfm.svnfm.cbam.bo.CBAMQueryVnfResponse;
@@ -25,10 +23,13 @@ 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.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.constant.ScaleType;
 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.db.mapper.VnfmJobExecutionMapper;
+import org.onap.vfc.nfvo.driver.vnfm.svnfm.vnfmdriver.bo.CreateSubscriptionResponse;
 import org.onap.vfc.nfvo.driver.vnfm.svnfm.vnfmdriver.bo.HealVnfResponse;
 import org.onap.vfc.nfvo.driver.vnfm.svnfm.vnfmdriver.bo.InstantiateVnfResponse;
 import org.onap.vfc.nfvo.driver.vnfm.svnfm.vnfmdriver.bo.OperStatusVnfResponse;
@@ -36,15 +37,19 @@ import org.onap.vfc.nfvo.driver.vnfm.svnfm.vnfmdriver.bo.QueryVnfResponse;
 import org.onap.vfc.nfvo.driver.vnfm.svnfm.vnfmdriver.bo.ScaleVnfResponse;
 import org.onap.vfc.nfvo.driver.vnfm.svnfm.vnfmdriver.bo.TerminateVnfResponse;
 import org.onap.vfc.nfvo.driver.vnfm.svnfm.vnfmdriver.bo.entity.ResponseDescriptor;
-import org.onap.vfc.nfvo.driver.vnfm.svnfm.vnfmdriver.bo.entity.ResponseHistoryList;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 @Component
 public class Cbam2DriverResponseConverter {
+       private static final Logger logger = LoggerFactory.getLogger(Cbam2DriverResponseConverter.class);
+       @Autowired
+       private VnfmJobExecutionMapper jobDbManager;
 
        @Autowired
-       private VnfmJobExecutionRepository jobDbManager;
+       private AdaptorEnv adaptorEnv;
 
        public InstantiateVnfResponse createRspConvert(CBAMCreateVnfResponse cbamResponse, Long jobId) {
 
@@ -61,7 +66,8 @@ public class Cbam2DriverResponseConverter {
                jobInfo.setVnfmInterfceName(CommonConstants.NSLCM_OPERATION_TERMINATE);
                jobInfo.setStatus(CommonConstants.CBAM_OPERATION_STATUS_START);
 
-               VnfmJobExecutionInfo jobInfo1 = (VnfmJobExecutionInfo) jobDbManager.save(jobInfo);
+               jobDbManager.insert(jobInfo);
+               VnfmJobExecutionInfo jobInfo1 = (VnfmJobExecutionInfo) jobDbManager.findNewestJobInfo();
                Long jobId = jobInfo1.getJobId();
                TerminateVnfResponse response = new TerminateVnfResponse();
                response.setJobId(jobId.longValue() + "");
@@ -82,51 +88,37 @@ public class Cbam2DriverResponseConverter {
                return vnf;
        }
 
-       public OperStatusVnfResponse operRspConvert(OperationExecution oper) {
-
+       public OperStatusVnfResponse operRspConvert(OperationExecution oper, String jobId) {
                OperStatusVnfResponse response = new OperStatusVnfResponse();
-
                ResponseDescriptor er = new ResponseDescriptor();
-               if (oper.getStatus() == CommonEnum.OperationStatus.STARTED ) {
+               if (oper.getStatus() == CommonEnum.OperationStatus.STARTED) {
                        er.setStatusDescription("Vim is processing");
                        er.setStatus("started");
-                       int progress;
-                       if(OperationType.INSTANTIATE == oper.getOperationType())
-                       {
-                               progress = OperateTaskProgress.getInstantiateProgress();
-                       } else {
-                               progress = OperateTaskProgress.getTerminateProgress();
-                       }
-                       
+                       int progress = calculateProgress(oper, jobId);
+
                        er.setProgress("" + progress);
-                       er.setResponseId("" +  + progress);
+                       er.setResponseId("" + +progress);
                } else if (oper.getStatus() == CommonEnum.OperationStatus.FINISHED) {
                        er.setStatus("finished");
                        er.setProgress("100");
                        er.setResponseId("100");
-                       
-               }  else if (oper.getStatus() == CommonEnum.OperationStatus.OTHER) {
+
+               } else if (oper.getStatus() == CommonEnum.OperationStatus.OTHER) {
                        er.setStatus("processing");
                        er.setStatusDescription("Vim is processing");
-                       
-                       int progress;
-                       if(OperationType.INSTANTIATE == oper.getOperationType())
-                       {
-                               progress = OperateTaskProgress.getInstantiateProgress();
-                       } else {
-                               progress = OperateTaskProgress.getTerminateProgress();
-                       }
-                       
+
+                       int progress = calculateProgress(oper, jobId);
+
                        er.setProgress("" + progress);
-                       er.setResponseId("" +  + progress);
-                       
+                       er.setResponseId("" + +progress);
+
                } else {
-                       er.setStatus("error"); 
+                       er.setStatus("error");
                        er.setStatus("finished");
                        er.setProgress("100");
                        er.setResponseId("100");
                }
-               
+
                er.setErrorCode("null");
 
                response.setResponseDescriptor(er);
@@ -139,9 +131,59 @@ public class Cbam2DriverResponseConverter {
                return response;
        }
 
-       public ScaleVnfResponse scaleRspConvert(CBAMScaleVnfResponse cbamResponse) {
+       public ScaleVnfResponse scaleRspConvert(CBAMScaleVnfResponse cbamResponse,ScaleType type) {
+               VnfmJobExecutionInfo jobInfo = new VnfmJobExecutionInfo();
+               jobInfo.setVnfInstanceId(cbamResponse.getId());
+               if (type.equals(ScaleType.SCALE_OUT)) {
+                       jobInfo.setVnfmInterfceName(CommonConstants.NSLCM_OPERATION_SCALE_OUT);
+               } else {
+                       jobInfo.setVnfmInterfceName(CommonConstants.NSLCM_OPERATION_SCALE_IN);
+               }
+               jobInfo.setStatus(CommonConstants.CBAM_OPERATION_STATUS_START);
+
+               jobDbManager.insert(jobInfo);
+               VnfmJobExecutionInfo jobInfo1 = (VnfmJobExecutionInfo) jobDbManager.findNewestJobInfo();
+               Long jobId = jobInfo1.getJobId();
                ScaleVnfResponse response = new ScaleVnfResponse();
-               response.setJobId("1");
+
+               response.setJobId(jobId.longValue() + "");
                return response;
        }
+
+       public int calculateProgress(OperationExecution oper, String jobId) {
+               long nowTime = System.currentTimeMillis();
+               VnfmJobExecutionInfo jobInfo = jobDbManager.findOne(Long.parseLong(jobId));
+               int initialProgress = adaptorEnv.getInitialProgress();
+
+               if (OperationType.INSTANTIATE == oper.getOperationType()) {
+                       double instantiateProgress = (nowTime - jobInfo.getOperateStartTime())
+                                       / adaptorEnv.getInstantiateTimeInterval();
+                       initialProgress = (int) (instantiateProgress + initialProgress);
+               } else if (OperationType.TERMINATE == oper.getOperationType()) {
+                       double terminateProgress = (nowTime - jobInfo.getOperateStartTime())
+                                       / adaptorEnv.getTerminateTimeInterval();
+                       initialProgress = (int) (terminateProgress + initialProgress);
+               } else {
+                       initialProgress = 0;
+               }
+               return initialProgress;
+
+       }
+
+       public void setAdaptorEnv(AdaptorEnv adaptorEnv) {
+               this.adaptorEnv = adaptorEnv;
+       }
+
+       public CreateSubscriptionResponse queryRspConvert(CBAMCreateSubscriptionResponse cbamResponse) {
+               CreateSubscriptionResponse response = new CreateSubscriptionResponse();
+               
+               response.set_links(cbamResponse.get_links());
+               response.setId(cbamResponse.getId());
+               response.setCallbackUri(cbamResponse.getCallbackUrl());
+               response.setCallbackUrl(cbamResponse.getCallbackUrl());
+               response.setFilter(cbamResponse.getFilter());
+               
+               return response;
+       }
+
 }