/** * Rename formattedOldNodeName node template of a topology. * * @param topology * @param nodeTemplateName * @param newNodeTemplateName */ public static void renameNodeTemplate(Topology topology, String nodeTemplateName, String newNodeTemplateName) { Map<String, NodeTemplate> nodeTemplates = getNodeTemplates(topology); NodeTemplate nodeTemplate = getNodeTemplate(topology.getId(), nodeTemplateName, nodeTemplates); nodeTemplate.setName(newNodeTemplateName); nodeTemplates.put(newNodeTemplateName, nodeTemplate); nodeTemplates.remove(nodeTemplateName); refreshNodeTempNameInRelationships(nodeTemplateName, newNodeTemplateName, nodeTemplates); updateOnNodeTemplateNameChange(nodeTemplateName, newNodeTemplateName, topology); updateGroupMembers(topology, nodeTemplate, nodeTemplateName, newNodeTemplateName); updatePolicyMembers(topology, nodeTemplateName, newNodeTemplateName); }
@Override protected void processNodeOperation(Csar csar, Topology topology, DeleteNodeOperation operation, NodeTemplate template) { Map<String, NodeTemplate> nodeTemplates = TopologyUtils.getNodeTemplates(topology); // Prepare to cleanup files (store artifacts reference in the operation and process deletion on before commit operation). Map<String, DeploymentArtifact> artifacts = template.getArtifacts(); operation.setArtifacts(artifacts); List<String> typesTobeUnloaded = Lists.newArrayList(); // Clean up dependencies of the topology removeRelationShipReferences(operation.getNodeName(), csar, topology, typesTobeUnloaded); topologyService.unloadType(topology, typesTobeUnloaded.toArray(new String[typesTobeUnloaded.size()])); // Cleanup from policies removeNodeFromPolicies(operation.getNodeName(), topology); nodeTemplates.remove(operation.getNodeName()); removeOutputs(operation.getNodeName(), topology); if (topology.getSubstitutionMapping() != null) { removeNodeTemplateSubstitutionTargetMapEntry(operation.getNodeName(), topology.getSubstitutionMapping().getCapabilities()); removeNodeTemplateSubstitutionTargetMapEntry(operation.getNodeName(), topology.getSubstitutionMapping().getRequirements()); } // group members removal TopologyUtils.updateGroupMembers(topology, template, operation.getNodeName(), null); // update the workflows workflowBuilderService.removeNode(topology, csar, operation.getNodeName()); log.debug("Removed node template [ {} ] from the topology [ {} ] .", operation.getNodeName(), topology.getId()); }