use of com.emc.storageos.model.customservices.CustomServicesPrimitiveCreateParam.InputCreateList in project coprhd-controller by CoprHD.
the class WorkflowBuilder method createRemoteAnsiblePrimitive.
private static void createRemoteAnsiblePrimitive(@Valid final RemoteAnsiblePrimitiveForm remoteAnsible) {
try {
// Create Primitive
final CustomServicesPrimitiveCreateParam primitiveCreateParam = new CustomServicesPrimitiveCreateParam();
primitiveCreateParam.setType(StepType.REMOTE_ANSIBLE.toString());
primitiveCreateParam.setName(remoteAnsible.getName());
primitiveCreateParam.setDescription(remoteAnsible.getDescription());
primitiveCreateParam.setFriendlyName(remoteAnsible.getName());
primitiveCreateParam.setAttributes(new HashMap<String, String>());
primitiveCreateParam.getAttributes().put(CustomServicesConstants.ANSIBLE_PLAYBOOK, remoteAnsible.getPlaybookPath());
primitiveCreateParam.getAttributes().put(CustomServicesConstants.ANSIBLE_BIN, remoteAnsible.getAnsibleBinPath());
final ImmutableMap.Builder<String, InputCreateList> builder = ImmutableMap.<String, InputCreateList>builder();
// Add Input Groups
addInputs(remoteAnsible.getInputs(), builder, CustomServicesConstants.INPUT_PARAMS);
primitiveCreateParam.setInput(builder.build());
if (StringUtils.isNotEmpty(remoteAnsible.getOutputs())) {
primitiveCreateParam.setOutput(getListFromInputOutputString(remoteAnsible.getOutputs()));
}
final CustomServicesPrimitiveRestRep primitiveRestRep = getCatalogClient().customServicesPrimitives().createPrimitive(primitiveCreateParam);
if (primitiveRestRep != null) {
// add this to wf directory
addResourceToWFDirectory(primitiveRestRep.getId(), remoteAnsible.getWfDirID());
} else {
flash.error("Error while creating primitive");
}
flash.success(MessagesUtils.get("wfBuilder.operation.save.success"));
} catch (final Exception e) {
Logger.error(e.getMessage());
flash.error(e.getMessage());
}
}
use of com.emc.storageos.model.customservices.CustomServicesPrimitiveCreateParam.InputCreateList in project coprhd-controller by CoprHD.
the class WorkflowBuilder method createLocalAnsiblePrimitive.
private static void createLocalAnsiblePrimitive(@Valid final LocalAnsiblePrimitiveForm localAnsible) {
try {
final CustomServicesPrimitiveResourceRestRep primitiveResourceRestRep;
if (localAnsible.isExisting()) {
primitiveResourceRestRep = getCatalogClient().customServicesPrimitives().getPrimitiveResource(new URI(localAnsible.getExistingResource()));
} else if (null != localAnsible.getAnsiblePackage()) {
// upload ansible package
primitiveResourceRestRep = getCatalogClient().customServicesPrimitives().createPrimitiveResource("ANSIBLE", localAnsible.getAnsiblePackage(), localAnsible.getAnsiblePackageName());
} else {
throw new Exception("Error while uploading/retrieving primitive resource");
}
if (null != primitiveResourceRestRep) {
try {
// Upload ansible inventory files
uploadInventoryFiles(primitiveResourceRestRep.getId(), localAnsible.getInventoryFiles());
} catch (final Exception e1) {
if (primitiveResourceRestRep != null) {
// Resource was created but primitive creation failed
// Resource was created but inventory creation failed. Remove inventory that was created (if any)
updateInventoryFiles(primitiveResourceRestRep.getId(), "");
getCatalogClient().customServicesPrimitives().deletePrimitiveResource(primitiveResourceRestRep.getId());
}
throw e1;
}
// Create Primitive
final CustomServicesPrimitiveCreateParam primitiveCreateParam = new CustomServicesPrimitiveCreateParam();
primitiveCreateParam.setType(StepType.LOCAL_ANSIBLE.toString());
primitiveCreateParam.setName(localAnsible.getName());
primitiveCreateParam.setDescription(localAnsible.getDescription());
primitiveCreateParam.setFriendlyName(localAnsible.getName());
primitiveCreateParam.setResource(primitiveResourceRestRep.getId());
primitiveCreateParam.setAttributes(new HashMap<String, String>());
primitiveCreateParam.getAttributes().put(CustomServicesConstants.ANSIBLE_PLAYBOOK, localAnsible.getAnsiblePlaybook());
final ImmutableMap.Builder<String, InputCreateList> builder = ImmutableMap.<String, InputCreateList>builder();
// Add Input Groups
addInputs(localAnsible.getInputs(), builder, CustomServicesConstants.INPUT_PARAMS);
primitiveCreateParam.setInput(builder.build());
if (StringUtils.isNotEmpty(localAnsible.getOutputs())) {
primitiveCreateParam.setOutput(getListFromInputOutputString(localAnsible.getOutputs()));
}
final CustomServicesPrimitiveRestRep primitiveRestRep;
try {
primitiveRestRep = getCatalogClient().customServicesPrimitives().createPrimitive(primitiveCreateParam);
} catch (final Exception e1) {
if (primitiveResourceRestRep != null) {
// Resource was created but primitive creation failed
// Resource was created but primitive creation failed. Remove inventory that was created (if any)
updateInventoryFiles(primitiveResourceRestRep.getId(), "");
getCatalogClient().customServicesPrimitives().deletePrimitiveResource(primitiveResourceRestRep.getId());
}
throw e1;
}
if (primitiveRestRep != null) {
// add this to wf directory
addResourceToWFDirectory(primitiveRestRep.getId(), localAnsible.getWfDirID());
} else {
flash.error("Error while creating primitive");
}
flash.success(MessagesUtils.get("wfBuilder.operation.save.success"));
} else {
flash.error("Error while uploading primitive resource");
}
} catch (final Exception e) {
Logger.error(e.getMessage());
flash.error(e.getMessage());
}
}
use of com.emc.storageos.model.customservices.CustomServicesPrimitiveCreateParam.InputCreateList in project coprhd-controller by CoprHD.
the class WorkflowBuilder method addInputs.
private static void addInputs(final String inputs, final ImmutableMap.Builder<String, InputCreateList> builder, final String inputGroupType) {
if (StringUtils.isNotEmpty(inputs)) {
final List<String> list = getListFromInputOutputString(inputs);
final InputCreateList input = new InputCreateList();
input.setInput(list);
builder.put(inputGroupType, input);
}
}
use of com.emc.storageos.model.customservices.CustomServicesPrimitiveCreateParam.InputCreateList in project coprhd-controller by CoprHD.
the class WorkflowBuilder method createRestAPIPrimitive.
private static void createRestAPIPrimitive(final RestAPIPrimitiveForm restAPIPrimitive) {
try {
final CustomServicesPrimitiveCreateParam primitiveCreateParam = new CustomServicesPrimitiveCreateParam();
primitiveCreateParam.setType(StepType.REST.toString());
primitiveCreateParam.setName(restAPIPrimitive.getName());
primitiveCreateParam.setDescription(restAPIPrimitive.getDescription());
primitiveCreateParam.setFriendlyName(restAPIPrimitive.getName());
primitiveCreateParam.setAttributes(new HashMap<String, String>());
primitiveCreateParam.getAttributes().put(CustomServicesConstants.PATH.toString(), restAPIPrimitive.getRequestURL());
if (restAPIPrimitive.getRawBody() == null) {
primitiveCreateParam.getAttributes().put(CustomServicesConstants.BODY.toString(), "");
} else {
primitiveCreateParam.getAttributes().put(CustomServicesConstants.BODY.toString(), restAPIPrimitive.getRawBody());
}
// Only supported protocol is "https". Once other protocols are supported this value should come from UI form
primitiveCreateParam.getAttributes().put(CustomServicesConstants.PROTOCOL.toString(), "https");
primitiveCreateParam.getAttributes().put(CustomServicesConstants.METHOD.toString(), restAPIPrimitive.getMethod());
primitiveCreateParam.getAttributes().put(CustomServicesConstants.AUTH_TYPE.toString(), restAPIPrimitive.getAuthType());
final ImmutableMap.Builder<String, InputCreateList> builder = ImmutableMap.<String, InputCreateList>builder();
// Add Input Groups
addInputs(restAPIPrimitive.getHeaders(), builder, CustomServicesConstants.HEADERS);
addInputs(restAPIPrimitive.getQueryParams(), builder, CustomServicesConstants.QUERY_PARAMS);
primitiveCreateParam.setInput(builder.build());
// Add Outputs
if (StringUtils.isNotEmpty(restAPIPrimitive.getOutputs())) {
primitiveCreateParam.setOutput(getListFromInputOutputString(restAPIPrimitive.getOutputs()));
}
final CustomServicesPrimitiveRestRep primitiveRestRep = getCatalogClient().customServicesPrimitives().createPrimitive(primitiveCreateParam);
if (primitiveRestRep != null) {
// add this to wf directory
addResourceToWFDirectory(primitiveRestRep.getId(), restAPIPrimitive.getWfDirID());
flash.success(MessagesUtils.get("wfBuilder.operation.save.success"));
} else {
flash.error("Error while creating primitive");
}
} catch (final Exception e) {
Logger.error(e.getMessage());
flash.error(e.getMessage());
}
}
use of com.emc.storageos.model.customservices.CustomServicesPrimitiveCreateParam.InputCreateList in project coprhd-controller by CoprHD.
the class WorkflowBuilder method createShellScriptPrimitive.
private static void createShellScriptPrimitive(final ShellScriptPrimitiveForm shellPrimitive) {
try {
final String filename = FilenameUtils.getBaseName(shellPrimitive.getScript().getName());
final CustomServicesPrimitiveResourceRestRep primitiveResourceRestRep = getCatalogClient().customServicesPrimitives().createPrimitiveResource("SCRIPT", shellPrimitive.getScript(), filename);
if (null != primitiveResourceRestRep) {
final CustomServicesPrimitiveCreateParam primitiveCreateParam = new CustomServicesPrimitiveCreateParam();
primitiveCreateParam.setType(StepType.SHELL_SCRIPT.toString());
primitiveCreateParam.setName(shellPrimitive.getName());
primitiveCreateParam.setFriendlyName(shellPrimitive.getName());
primitiveCreateParam.setDescription(shellPrimitive.getDescription());
primitiveCreateParam.setResource(primitiveResourceRestRep.getId());
if (StringUtils.isNotEmpty(shellPrimitive.getInputs())) {
final List<String> list = getListFromInputOutputString(shellPrimitive.getInputs());
final InputCreateList input = new InputCreateList();
input.setInput(list);
final ImmutableMap.Builder<String, InputCreateList> builder = ImmutableMap.<String, InputCreateList>builder().put(CustomServicesConstants.INPUT_PARAMS, input);
primitiveCreateParam.setInput(builder.build());
}
if (StringUtils.isNotEmpty(shellPrimitive.getOutputs())) {
primitiveCreateParam.setOutput(getListFromInputOutputString(shellPrimitive.getOutputs()));
}
final CustomServicesPrimitiveRestRep primitiveRestRep;
try {
primitiveRestRep = getCatalogClient().customServicesPrimitives().createPrimitive(primitiveCreateParam);
} catch (final Exception e1) {
if (primitiveResourceRestRep != null) {
// Resource was created but primitive creation failed
getCatalogClient().customServicesPrimitives().deletePrimitiveResource(primitiveResourceRestRep.getId());
}
throw e1;
}
if (primitiveRestRep != null) {
// add this to wf directory
addResourceToWFDirectory(primitiveRestRep.getId(), shellPrimitive.getWfDirID());
} else {
flash.error("Error while creating primitive");
}
flash.success(MessagesUtils.get("wfBuilder.operation.save.success"));
} else {
flash.error("Error while uploading primitive resource");
}
} catch (final Exception e) {
Logger.error(e.getMessage());
flash.error(e.getMessage());
}
}
Aggregations