package org.alien4cloud.tosca.editor.processors; import java.io.IOException; import javax.inject.Inject; import org.alien4cloud.tosca.editor.EditionContextManager; import org.alien4cloud.tosca.editor.operations.ResetTopologyOperation; import org.alien4cloud.tosca.model.templates.Topology; import org.springframework.stereotype.Component; import alien4cloud.paas.wf.WorkflowsBuilderService; import lombok.extern.slf4j.Slf4j; /** * process {@link ResetTopologyOperation} * This will delete everything inside the topology, leaving it as if it is just created now. */ @Slf4j @Component public class ResetTopologyProcessor implements IEditorOperationProcessor<ResetTopologyOperation> { @Inject private WorkflowsBuilderService workflowBuilderService; @Override public void process(ResetTopologyOperation operation) { Topology topology = EditionContextManager.getTopology(); Topology newTopology = new Topology(); newTopology.setArchiveName(topology.getArchiveName()); newTopology.setArchiveVersion(topology.getArchiveVersion()); newTopology.setWorkspace(topology.getWorkspace()); workflowBuilderService.initWorkflows(workflowBuilderService.buildTopologyContext(newTopology)); try { EditionContextManager.get().reset(newTopology); } catch (IOException e) { // FIXME what to do here???? log.error("Error occurs when trying to reset the topology <" + topology.getId() + ">", e); } } }