@Override
public Topology createTopologyAsTemplate(String name, String description, String version, String workspace, String fromTopologyId) {
NameValidationUtils.validate("topologyTemplateName", name);
Csar csar = new Csar(name, StringUtils.isNotBlank(version) ? version : VersionUtil.DEFAULT_VERSION_NAME);
csar.setWorkspace(workspace);
csar.setDelegateType(ArchiveDelegateType.CATALOG.toString());
csar.setToscaDefinitionsVersion(ToscaParser.LATEST_DSL);
if (description == null) {
csar.setDescription("This archive has been created with alien4cloud.");
} else {
csar.setDescription("Enclosing archive for topology " + description);
}
Topology topology;
if (fromTopologyId != null) {
topology = alienDAO.findById(Topology.class, fromTopologyId);
} else {
topology = new Topology();
workflowBuilderService.initWorkflows(workflowBuilderService.buildTopologyContext(topology, csar));
}
topology.setDescription(description);
topology.setArchiveName(csar.getName());
topology.setArchiveVersion(csar.getVersion());
topology.setWorkspace(csar.getWorkspace());
archiveIndexer.importNewArchive(csar, topology, null);
return topology;
}