@Api
@RestController
public class CamundaRestController {
-
-
-
- @Autowired
- private AsyncProcessExecutorService asyncProcessExecutorService;
-
- private static Logger logger = LoggerFactory.getLogger(CamundaRestController.class);
-
- @PostMapping("/build/")
- public ResponseEntity<BuildResponse> build(@RequestBody Build build) {
- logger.debug("Request received for Build {}",build.toString());
- asyncProcessExecutorService.executeBuildProcess(build);
- return new ResponseEntity<BuildResponse>(new BuildResponse("in progress",null,null,null,null,build.getSitename(),null,null,null),HttpStatus.OK);
-
+
+ @Autowired
+ private AsyncProcessExecutorService asyncProcessExecutorService;
+
+ private static Logger logger = LoggerFactory.getLogger(CamundaRestController.class);
+
+ @PostMapping("/build/")
+ public ResponseEntity<BuildResponse> build(@RequestBody Build build) {
+ logger.debug("Request received for Build {}",build.toString());
+ asyncProcessExecutorService.executeBuildProcess(build);
+ return new ResponseEntity<BuildResponse>(new BuildResponse("in progress",null,null,null,null,build.getSitename(),null,null,null),HttpStatus.OK);
}
-
-
-
@PostMapping("/deploy/")
- public ResponseEntity<BuildResponse> deploy(@RequestBody Deploy deploy) {
- logger.debug("Request received for deploy {} ",deploy.toString());
- asyncProcessExecutorService.executeDeployProcess(deploy);
- return new ResponseEntity<BuildResponse>(new BuildResponse(null,"in progress","not started","not started","not started",deploy.getSitename(),null,null,null),HttpStatus.OK);
+ public ResponseEntity<BuildResponse> deploy(@RequestBody Deploy deploy) {
+ logger.debug("Request received for deploy {} ",deploy.toString());
+ asyncProcessExecutorService.executeDeployProcess(deploy);
+ return new ResponseEntity<BuildResponse>(new BuildResponse(null,"in progress","not started","not started","not started",deploy.getSitename(),null,null,null),HttpStatus.OK);
}
-
@PostMapping("/multinodedeploy/")
- public ResponseEntity<BuildResponse> multiNodeDeploy(@RequestBody MultiNodeDeploy multiNodeDeploy) {
- logger.debug("Request received for multi node deploy {} ",multiNodeDeploy.toString());
- asyncProcessExecutorService.executeMultiNodeDeployProcess(multiNodeDeploy);
- return new ResponseEntity<BuildResponse>(new BuildResponse(null,"in progress","not started","not started","not started",multiNodeDeploy.getSitename(),null,null,null),HttpStatus.OK);
+ public ResponseEntity<BuildResponse> multiNodeDeploy(@RequestBody MultiNodeDeploy multiNodeDeploy) {
+ logger.debug("Request received for multi node deploy {} ",multiNodeDeploy.toString());
+ asyncProcessExecutorService.executeMultiNodeDeployProcess(multiNodeDeploy);
+ return new ResponseEntity<BuildResponse>(new BuildResponse(null,"in progress","not started","not started","not started",multiNodeDeploy.getSitename(),null,null,null),HttpStatus.OK);
}
-
-
+
@PostMapping("/airship/")
public ResponseEntity<BuildResponse> airship(@RequestBody Airship airship) {
- logger.debug("Request received for airship {} ",airship.toString());
- asyncProcessExecutorService.executeAirshipProcess(airship);
- return new ResponseEntity<BuildResponse>(new BuildResponse(null,null,null,null,"in progress",airship.getSitename(),null,null,null),HttpStatus.OK);
- }
+ logger.debug("Request received for airship {} ",airship.toString());
+ asyncProcessExecutorService.executeAirshipProcess(airship);
+ return new ResponseEntity<BuildResponse>(new BuildResponse(null,null,null,null,"in progress",airship.getSitename(),null,null,null),HttpStatus.OK);
+ }
-
-
- @PostMapping("/tempest/")
- public ResponseEntity<BuildResponse> tempest(@RequestBody Tempest tempest) {
- logger.debug("Request received for tempest {}",tempest.toString());
- asyncProcessExecutorService.executeTempestProcess(tempest);
- return new ResponseEntity<BuildResponse>(new BuildResponse(null,null,null,null,null,tempest.getSitename(),null,null,"in progress"),HttpStatus.OK);
+ @PostMapping("/tempest/")
+ public ResponseEntity<BuildResponse> tempest(@RequestBody Tempest tempest) {
+ logger.debug("Request received for tempest {}",tempest.toString());
+ asyncProcessExecutorService.executeTempestProcess(tempest);
+ return new ResponseEntity<BuildResponse>(new BuildResponse(null,null,null,null,null,tempest.getSitename(),null,null,"in progress"),HttpStatus.OK);
}
-
-
-
-
- @PostMapping("/apache/")
- public ResponseEntity<BuildResponse> apache(@RequestBody Apache apache) {
- logger.debug("Request received for apache{} ",apache.toString());
- asyncProcessExecutorService.executeApacheProcess(apache);
- return new ResponseEntity<BuildResponse>(new BuildResponse(null,null,null,null,null,apache.getSitename(),null,"in progress",null),HttpStatus.OK);
+
+ @PostMapping("/apache/")
+ public ResponseEntity<BuildResponse> apache(@RequestBody Apache apache) {
+ logger.debug("Request received for apache{} ",apache.toString());
+ asyncProcessExecutorService.executeApacheProcess(apache);
+ return new ResponseEntity<BuildResponse>(new BuildResponse(null,null,null,null,null,apache.getSitename(),null,"in progress",null),HttpStatus.OK);
}
-
-
-
-
- @PostMapping("/onap/")
- public ResponseEntity<BuildResponse> onap(@RequestBody Onap onap) {
- logger.debug("Request received for onap ",onap.toString());
- asyncProcessExecutorService.executeOnapProcess(onap);
- return new ResponseEntity<BuildResponse>(new BuildResponse(null,null,null,null,null,onap.getSitename(),"in progress",null,null),HttpStatus.OK);
+
+ @PostMapping("/onap/")
+ public ResponseEntity<BuildResponse> onap(@RequestBody Onap onap) {
+ logger.debug("Request received for onap ",onap.toString());
+ asyncProcessExecutorService.executeOnapProcess(onap);
+ return new ResponseEntity<BuildResponse>(new BuildResponse(null,null,null,null,null,onap.getSitename(),"in progress",null,null),HttpStatus.OK);
}
-
}
@Service("asyncProcessExecutorService")
public class AsyncProcessExecutorServiceImpl implements AsyncProcessExecutorService{
- @Autowired
- private ProcessEngine camunda;
-
- @Autowired
- private DeployResponseSenderService deployResponseSenderService;
-
- private static Logger logger = LoggerFactory.getLogger(AsyncProcessExecutorServiceImpl.class);
-
+ @Autowired
+ private ProcessEngine camunda;
+
+ @Autowired
+ private DeployResponseSenderService deployResponseSenderService;
+
+ private static Logger logger = LoggerFactory.getLogger(AsyncProcessExecutorServiceImpl.class);
+
@Async
public void executeAirshipProcess(Airship airship) {
-
+
try {
executeAirshipservice(airship);
}catch(TaskExecutorException ex) {
}
logger.debug("Airship execution success ");
deployResponseSenderService.sendResponse(new BuildResponse(null,null,null,null,"success",airship.getSitename(),null,null,null));
-
-
-
}
private ProcessInstance executeAirshipservice(Airship airship) {
-
+
String filepath1=airship.getFilepath()+" "+(airship.getFileparams()!=null?airship.getFileparams().replaceAll(",", " "):" ");
String filepath2=airship.getWinscpfilepath()+" "+(airship.getWinscpfileparams()!=null?airship.getWinscpfileparams().replaceAll(",", " "):" ");
return camunda.getRuntimeService().startProcessInstanceByKey("airship",
- Variables.putValue("filepath", filepath1).putValue("scpdir", airship.getWinscpdir()).putValue("ScpScriptFilepath", filepath2).putValue("remotserver", airship.getRemotserver())
+ Variables.putValue("filepath", filepath1)
+ .putValue("scpdir", airship.getWinscpdir())
+ .putValue("ScpScriptFilepath", filepath2)
+ .putValue("remotserver", airship.getRemotserver())
.putValue("username", airship.getUsername())
.putValue("password", airship.getPassword())
- .putValue("port", airship.getPort()).putValue("destdir",airship.getDestdir()).putValue("remotefilename", airship.getRemotefilename())
- .putValue("remotefileparams", airship.getRemotefileparams()).putValue("sitename", airship.getSitename()));
-
+ .putValue("port", airship.getPort())
+ .putValue("destdir",airship.getDestdir())
+ .putValue("remotefilename", airship.getRemotefilename())
+ .putValue("remotefileparams", airship.getRemotefileparams())
+ .putValue("sitename", airship.getSitename())
+ );
}
@Async
public void executeBuildProcess(Build build) {
-
+
try {
executeBuildService(build);
}catch(TaskExecutorException ex) {
deployResponseSenderService.sendResponse(new BuildResponse("success",null,null,null,null,build.getSitename(),null,null,null));
}
-
private ProcessInstance executeBuildService(Build build) {
-
+
return camunda.getRuntimeService().startProcessInstanceByKey("build",
- Variables.putValue("filepath", build.getFilepath()).putValue("fileparams", build.getFileparams()).putValue("targetfolder", build.getTargetfolder()));
+ Variables.putValue("filepath", build.getFilepath())
+ .putValue("fileparams", build.getFileparams())
+ .putValue("targetfolder", build.getTargetfolder())
+ );
}
-
+
@Async
public void executeDeployProcess(Deploy deploy) {
-
- try {
- executeDeployService(deploy);
- }catch(TaskExecutorException ex) {
- logger.error("deploy execution failed ",ex);
- deployResponseSenderService.sendResponse(new BuildResponse(null,null,null,null,"exception: "+ex.getMessage(),deploy.getSitename(),null,null,null));
- return;
+
+ try {
+ executeDeployService(deploy);
+ } catch (TaskExecutorException ex) {
+ logger.error("deploy execution failed ",ex);
+ deployResponseSenderService.sendResponse(new BuildResponse(null,null,null,null,"exception: "+ex.getMessage(),deploy.getSitename(),null,null,null));
+ return;
}
- logger.debug("deploy execution success ");
- deployResponseSenderService.sendResponse(new BuildResponse("success","success","success","success","success",deploy.getSitename(),null,null,null));
+ logger.debug("deploy execution success ");
+ deployResponseSenderService.sendResponse(new BuildResponse("success","success","success","success","success",deploy.getSitename(),null,null,null));
}
-
-
+
+
private ProcessInstance executeDeployService(Deploy deploy) {
-
- String filepath1=deploy.getFilepath()+" "+(deploy.getFileparams()!=null?deploy.getFileparams().replaceAll(",", " "):" ");
-
-
- int lastindex=deploy.getWinscpfilepath().lastIndexOf("/");
- String scpSrcDir=deploy.getWinscpfilepath().substring(0,lastindex);
- String scpfilename=deploy.getWinscpfilepath().substring(lastindex+1,deploy.getWinscpfilepath().length());
- String transferfile= scpfilename+" "+(deploy.getWinscpfileparams()!=null?deploy.getWinscpfileparams().replaceAll(",", " "):" ");
-
-
-
+
+ String filepath1 = deploy.getFilepath()+" "+(deploy.getFileparams()!=null?deploy.getFileparams().replaceAll(",", " "):" ");
+ String scpSrcDir = dirname(deploy.getWinscpfilepath());
+ String scpfilename = filename(deploy.getWinscpfilepath());
+ String transferfile = scpfilename+" "+(deploy.getWinscpfileparams()!=null?deploy.getWinscpfileparams().replaceAll(",", " "):" ");
+
return camunda.getRuntimeService().startProcessInstanceByKey("deploy",
- Variables.putValue("filepath", filepath1).putValue("scpsrcdir", scpSrcDir).
- putValue("ScpScriptFilepath", transferfile).putValue("remotserver", deploy.getRemotserver())
+ Variables.putValue("filepath", filepath1)
+ .putValue("scpsrcdir", scpSrcDir)
+ .putValue("ScpScriptFilepath", transferfile)
+ .putValue("remotserver", deploy.getRemotserver())
.putValue("username", deploy.getUsername())
.putValue("password", deploy.getPassword())
- .putValue("port", deploy.getPort()).putValue("destdir",deploy.getDestdir()).putValue("remotefilename", deploy.getRemotefilename())
- .putValue("fileparams", deploy.getFileparams()).
- putValue("verifier", deploy.getDeploymentverifier()).putValue("verifierfileparams",
- deploy.getDeploymentverifierfileparams()).putValue("waittime", deploy.getWaittime()).
- putValue("iterations", deploy.getNoofiterations()).putValue("postverificationscript", deploy.getPostverificationscript()).
- putValue("postverificationScriptparams", deploy.getDeploymentverifierfileparams()).putValue("sitename", deploy.getSitename()));
-
+ .putValue("port", deploy.getPort())
+ .putValue("destdir",deploy.getDestdir())
+ .putValue("remotefilename", deploy.getRemotefilename())
+ .putValue("fileparams", deploy.getFileparams())
+ .putValue("verifier", deploy.getDeploymentverifier())
+ .putValue("verifierfileparams", deploy.getDeploymentverifierfileparams())
+ .putValue("waittime", deploy.getWaittime())
+ .putValue("iterations", deploy.getNoofiterations())
+ .putValue("postverificationscript", deploy.getPostverificationscript())
+ .putValue("postverificationScriptparams", deploy.getDeploymentverifierfileparams())
+ .putValue("sitename", deploy.getSitename())
+ );
}
@Async
public void executeOnapProcess(Onap onap) {
-
+
try {
executeOnapService(onap);
}catch(TaskExecutorException ex) {
}
logger.debug("Onap execution success ");
deployResponseSenderService.sendResponse(new BuildResponse(null,null,null,null,null,onap.getSitename(),"succes",null,null));
-
-
}
-
-
+
+
private ProcessInstance executeOnapService(Onap onap) {
-
- int lastindex=onap.getFiletrasferscript().lastIndexOf("/");
- String scpSrcDir=onap.getFiletrasferscript().substring(0,lastindex);
- String scpfilename=onap.getFiletrasferscript().substring(lastindex+1,onap.getFiletrasferscript().length());
- String transferfile= scpfilename+" "+(onap.getFiletransferparams()!=null?onap.getFiletransferparams().replaceAll(",", " "):" ");
-
-
+
+ String scpSrcDir = dirname(onap.getFiletrasferscript());
+ String scpfilename = filename(onap.getFiletrasferscript());
+ String transferfile = scpfilename+" "+(onap.getFiletransferparams()!=null?onap.getFiletransferparams().replaceAll(",", " "):" ");
+
return camunda.getRuntimeService().startProcessInstanceByKey("onap",
- Variables.putValue("filename", onap.getFilename()).putValue("fileparams", onap.getFileparams()).
- putValue("verifier", onap.getDeploymentverifier()).putValue("verifierfileparams", onap.getVerifierparams()).putValue("waittime", onap.getWaittime()).
- putValue("iterations", onap.getNoofiterations()).putValue("remotserver", onap.getRemoteserver())
+ Variables.putValue("filename", onap.getFilename())
+ .putValue("fileparams", onap.getFileparams())
+ .putValue("verifier", onap.getDeploymentverifier())
+ .putValue("verifierfileparams", onap.getVerifierparams())
+ .putValue("waittime", onap.getWaittime())
+ .putValue("iterations", onap.getNoofiterations())
+ .putValue("remotserver", onap.getRemoteserver())
.putValue("username", onap.getUsername())
.putValue("password", onap.getPassword())
- .putValue("port", onap.getPortnumber()).putValue("srcdir", onap.getSrcdir()).putValue("destdir",onap.getDestdir()).putValue("ScpScriptFilepath", transferfile).
- putValue("scpsrcdir", scpSrcDir)
- );
-
+ .putValue("port", onap.getPortnumber())
+ .putValue("srcdir", onap.getSrcdir())
+ .putValue("destdir",onap.getDestdir())
+ .putValue("ScpScriptFilepath", transferfile)
+ .putValue("scpsrcdir", scpSrcDir)
+ );
}
-
-
+
+
@Async
public void executeTempestProcess(Tempest tempest) {
try {
}
logger.debug("Tempest execution success ");
deployResponseSenderService.sendResponse(new BuildResponse(null,null,null,null,null,tempest.getSitename(),null,null,"success"));
-
+
}
-
- private ProcessInstance executeTempestService(Tempest tempest) {
-
- int lastindex=tempest.getFiletrasferscript().lastIndexOf("/");
- String scpSrcDir=tempest.getFiletrasferscript().substring(0,lastindex);
- String scpfilename=tempest.getFiletrasferscript().substring(lastindex+1,tempest.getFiletrasferscript().length());
- String transferfile= scpfilename+" "+(tempest.getFiletransferparams()!=null?tempest.getFiletransferparams().replaceAll(",", " "):" ");
-
- return camunda.getRuntimeService().startProcessInstanceByKey("tempest",
- Variables.putValue("filename", tempest.getFilename()).putValue("fileparams", tempest.getFileparams()).
- putValue("verifier", tempest.getDeploymentverifier()).putValue("verifierfileparams", tempest.getVerifierparams()).putValue("waittime", tempest.getWaittime()).
- putValue("iterations", tempest.getNoofiterations()).putValue("remotserver", tempest.getRemoteserver())
+
+ private ProcessInstance executeTempestService(Tempest tempest) {
+
+ String scpSrcDir = dirname(tempest.getFiletrasferscript());
+ String scpfilename = filename(tempest.getFiletrasferscript());
+ String transferfile = scpfilename+" "+(tempest.getFiletransferparams()!=null?tempest.getFiletransferparams().replaceAll(",", " "):" ");
+
+ return camunda.getRuntimeService().startProcessInstanceByKey("tempest",
+ Variables.putValue("filename", tempest.getFilename())
+ .putValue("fileparams", tempest.getFileparams())
+ .putValue("verifier", tempest.getDeploymentverifier())
+ .putValue("verifierfileparams", tempest.getVerifierparams())
+ .putValue("waittime", tempest.getWaittime())
+ .putValue("iterations", tempest.getNoofiterations())
+ .putValue("remotserver", tempest.getRemoteserver())
.putValue("username", tempest.getUsername())
.putValue("password", tempest.getPassword())
- .putValue("port", tempest.getPortnumber()).putValue("srcdir", tempest.getSrcdir()).putValue("destdir",tempest.getDestdir()).putValue("ScpScriptFilepath", transferfile).
- putValue("scpsrcdir", scpSrcDir)
- );
-
- }
-
-
- @Async
- public void executeApacheProcess(Apache apache) {
- try {
- executeApacheService(apache);
- }catch(TaskExecutorException ex) {
- logger.error("Apache execution failed ",ex);
- deployResponseSenderService.sendResponse(new BuildResponse(null,null,null,null,null,apache.getSitename(),null,"exception: "+ex.getMessage(),null));
- return;
- }
- logger.debug("Apache execution success ");
- deployResponseSenderService.sendResponse(new BuildResponse(null,null,null,null,null,apache.getSitename(),null,"success",null));
-
-
- }
-
- private ProcessInstance executeApacheService(Apache apache) {
-
- int lastindex=apache.getFiletrasferscript().lastIndexOf("/");
- String scpSrcDir=apache.getFiletrasferscript().substring(0,lastindex);
- String scpfilename=apache.getFiletrasferscript().substring(lastindex+1,apache.getFiletrasferscript().length());
-
- String transferfile= scpfilename+" "+(apache.getFiletransferparams()!=null?apache.getFiletransferparams().replaceAll(",", " "):" ");
-
- return camunda.getRuntimeService().startProcessInstanceByKey("apache",
- Variables.putValue("filename", apache.getFilename()).putValue("fileparams", apache.getFileparams()).
- putValue("verifier", apache.getDeploymentverifier()).putValue("verifierfileparams", apache.getVerifierparams()).putValue("waittime", apache.getWaittime()).
- putValue("iterations", apache.getNoofiterations()).putValue("remotserver", apache.getRemoteserver())
- .putValue("username", apache.getUsername())
- .putValue("password", apache.getPassword())
- .putValue("port", apache.getPortnumber()).
- putValue("srcdir", apache.getSrcdir()).putValue("destdir",apache.getDestdir()).
- putValue("scpfilename", transferfile).putValue("scpdir", scpSrcDir)
- );
-
- }
-
- @Async
- public void executeMultiNodeDeployProcess(MultiNodeDeploy multiNodeDeploy) {
- try {
- executeMultiNodeDeployService(multiNodeDeploy);
- }catch(TaskExecutorException ex) {
- logger.error("MultiNodeDeploy execution failed ",ex);
- deployResponseSenderService.sendResponse(new BuildResponse(null,null,null,null,"exception: "+ex.getMessage(),multiNodeDeploy.getSitename(),null,null,null));
- return;
- }
- logger.debug("MultiNodeDeploy execution success ");
- deployResponseSenderService.sendResponse(new BuildResponse("success","success","success","success","success",multiNodeDeploy.getSitename(),null,null,null));
-
+ .putValue("port", tempest.getPortnumber())
+ .putValue("srcdir", tempest.getSrcdir())
+ .putValue("destdir",tempest.getDestdir())
+ .putValue("ScpScriptFilepath", transferfile)
+ .putValue("scpsrcdir", scpSrcDir)
+ );
+ }
+
+
+ @Async
+ public void executeApacheProcess(Apache apache) {
+ try {
+ executeApacheService(apache);
+ }catch(TaskExecutorException ex) {
+ logger.error("Apache execution failed ",ex);
+ deployResponseSenderService.sendResponse(new BuildResponse(null,null,null,null,null,apache.getSitename(),null,"exception: "+ex.getMessage(),null));
+ return;
}
+ logger.debug("Apache execution success ");
+ deployResponseSenderService.sendResponse(new BuildResponse(null,null,null,null,null,apache.getSitename(),null,"success",null));
+
+
+ }
+
+ private ProcessInstance executeApacheService(Apache apache) {
- private ProcessInstance executeMultiNodeDeployService(MultiNodeDeploy multiNodeDeploy) {
-
- int lastindex=multiNodeDeploy.getWinscpfilepath().lastIndexOf("/");
- String scpSrcDir=multiNodeDeploy.getWinscpfilepath().substring(0,lastindex);
- String scpfilename=multiNodeDeploy.getWinscpfilepath().substring(lastindex+1,multiNodeDeploy.getWinscpfilepath().length());
-
- String transferfile= scpfilename+" "+(multiNodeDeploy.getWinscpfileparams()!=null?multiNodeDeploy.getWinscpfileparams().replaceAll(",", " "):" ");
-
- return camunda.getRuntimeService().startProcessInstanceByKey("multinodedeploy",
- Variables.putValue("file1", multiNodeDeploy.getFile1()).putValue("file1params", multiNodeDeploy.getFile1params())
- .putValue("winscpdir", scpSrcDir)
- .putValue("scpfilename", transferfile)
- .putValue("remotserver", multiNodeDeploy.getRemotserver())
- .putValue("username", multiNodeDeploy.getUsername())
- .putValue("password", multiNodeDeploy.getPassword())
- .putValue("port", multiNodeDeploy.getPort())
- .putValue("destdir1",multiNodeDeploy.getDestdir1()).putValue("destdir2", multiNodeDeploy.getDestdir2())
- .putValue("remotefile1", multiNodeDeploy.getRemotefile1()).putValue("remotefile1params", multiNodeDeploy.getRemotefile1params())
- .putValue("sitename", multiNodeDeploy.getSitename()).putValue("remotefile2", multiNodeDeploy.getRemotefile2()).putValue("remotefile2params", multiNodeDeploy.getRemotefile2params())
- );
-
+ String scpSrcDir = dirname(apache.getFiletrasferscript());
+ String scpfilename = filename(apache.getFiletrasferscript());
+ String transferfile = scpfilename+" "+(apache.getFiletransferparams()!=null?apache.getFiletransferparams().replaceAll(",", " "):" ");
+
+ return camunda.getRuntimeService().startProcessInstanceByKey("apache",
+ Variables.putValue("filename", apache.getFilename())
+ .putValue("fileparams", apache.getFileparams())
+ .putValue("verifier", apache.getDeploymentverifier())
+ .putValue("verifierfileparams", apache.getVerifierparams())
+ .putValue("waittime", apache.getWaittime())
+ .putValue("iterations", apache.getNoofiterations())
+ .putValue("remotserver", apache.getRemoteserver())
+ .putValue("username", apache.getUsername())
+ .putValue("password", apache.getPassword())
+ .putValue("port", apache.getPortnumber())
+ .putValue("srcdir", apache.getSrcdir())
+ .putValue("destdir",apache.getDestdir())
+ .putValue("scpfilename", transferfile)
+ .putValue("scpdir", scpSrcDir)
+ );
+ }
+
+ @Async
+ public void executeMultiNodeDeployProcess(MultiNodeDeploy multiNodeDeploy) {
+ try {
+ executeMultiNodeDeployService(multiNodeDeploy);
+ }catch(TaskExecutorException ex) {
+ logger.error("MultiNodeDeploy execution failed ",ex);
+ deployResponseSenderService.sendResponse(new BuildResponse(null,null,null,null,"exception: "+ex.getMessage(),multiNodeDeploy.getSitename(),null,null,null));
+ return;
}
+ logger.debug("MultiNodeDeploy execution success ");
+ deployResponseSenderService.sendResponse(new BuildResponse("success","success","success","success","success",multiNodeDeploy.getSitename(),null,null,null));
+
+ }
+
+ private ProcessInstance executeMultiNodeDeployService(MultiNodeDeploy multiNodeDeploy) {
+ String scpSrcDir = dirname(multiNodeDeploy.getWinscpfilepath());
+ String scpfilename = filename(multiNodeDeploy.getWinscpfilepath());
+ String transferfile = scpfilename+" "+(multiNodeDeploy.getWinscpfileparams()!=null?multiNodeDeploy.getWinscpfileparams().replaceAll(",", " "):" ");
+
+ return camunda.getRuntimeService().startProcessInstanceByKey("multinodedeploy",
+ Variables.putValue("file1", multiNodeDeploy.getFile1())
+ .putValue("file1params", multiNodeDeploy.getFile1params())
+ .putValue("winscpdir", scpSrcDir)
+ .putValue("scpfilename", transferfile)
+ .putValue("remotserver", multiNodeDeploy.getRemotserver())
+ .putValue("username", multiNodeDeploy.getUsername())
+ .putValue("password", multiNodeDeploy.getPassword())
+ .putValue("port", multiNodeDeploy.getPort())
+ .putValue("destdir1",multiNodeDeploy.getDestdir1())
+ .putValue("destdir2", multiNodeDeploy.getDestdir2())
+ .putValue("remotefile1", multiNodeDeploy.getRemotefile1())
+ .putValue("remotefile1params", multiNodeDeploy.getRemotefile1params())
+ .putValue("sitename", multiNodeDeploy.getSitename())
+ .putValue("remotefile2", multiNodeDeploy.getRemotefile2())
+ .putValue("remotefile2params", multiNodeDeploy.getRemotefile2params())
+ );
+ }
+
+ private String dirname(final String s) {
+ int lastindex = s.lastIndexOf("/");
+ return (lastindex < 0) ? "." : s.substring(0, lastindex);
+ }
+ private String filename(String s) {
+ int lastindex = s.lastIndexOf("/");
+ return (lastindex < 0) ? s : s.substring(lastindex+1);
+ }
}