DefaultTopologyContext(Topology topology) { super(); this.topology = topology; Csar topologyCsar = csarRepoSearchService.getArchive(topology.getArchiveName(), topology.getArchiveVersion()); if (topologyCsar == null) { throw new NotFoundException("Topology's csar " + topology.getArchiveName() + ":" + topology.getArchiveVersion() + " cannot be found"); } this.dslVersion = topologyCsar.getToscaDefinitionsVersion(); }
@Override @SneakyThrows public void process(Csar csar, Topology topology, DeleteTopologyVariableOperation operation) { // Find environments where the var is defined and delete from there List<ScopeVariableExpressionDTO> envVars = variableExpressionService.getInEnvironmentScope(operation.getName(), topology.getArchiveName(), topology.getArchiveVersion(), null); envVars.forEach(scopeVariableExpressionDTO -> deleteVariableFromEnvironment(operation, scopeVariableExpressionDTO.getScopeId(), csar, topology)); // Find environments types where the var is defined and delete from there List<ScopeVariableExpressionDTO> envTypeVars = variableExpressionService.getInEnvironmentTypeScope(operation.getName(), topology.getArchiveName(), topology.getArchiveVersion(), null); envTypeVars .forEach(scopeVariableExpressionDTO -> deleteVariableFromEnvironmentType(operation, scopeVariableExpressionDTO.getScopeId(), csar, topology)); }
private static void setArtifactToCorrectArchiveReference(AbstractArtifact artifact, Topology topology, Csar csar) { if (topology.getArchiveName().equals(artifact.getArchiveName()) && topology.getArchiveVersion().equals(artifact.getArchiveVersion())) { // Must migrate to new reference artifact.setArchiveName(csar.getName()); artifact.setArchiveVersion(csar.getVersion()); } }
protected void removeNode(Topology topology, NodeTemplate nodeTemplate) { // keep track of the hosted nodes List<NodeTemplate> hostedNodes = TopologyNavigationUtil.getHostedNodes(topology, nodeTemplate.getName()); Csar csar = new Csar(topology.getArchiveName(), topology.getArchiveVersion()); DeleteNodeOperation deleteNodeOperation = new DeleteNodeOperation(); deleteNodeOperation.setNodeName(nodeTemplate.getName()); deleteNodeProcessor.process(csar, topology, deleteNodeOperation); // remove all hosted node also safe(hostedNodes).forEach(hostedNodeTemplate -> removeNode(topology, hostedNodeTemplate)); } }
/** * Check that the user has enough rights for a given topology. * * @param topology The topology for which to check roles. * @param applicationRoles The roles required to edit the topology for an application. */ private void checkAuthorizations(Topology topology, ApplicationRole[] applicationRoles, Role[] roles) { Csar relatedCsar = ToscaContext.get().getArchive(topology.getArchiveName(), topology.getArchiveVersion()); if (Objects.equals(relatedCsar.getDelegateType(), ArchiveDelegateType.APPLICATION.toString())) { String applicationId = relatedCsar.getDelegateId(); Application application = appService.getOrFail(applicationId); AuthorizationUtil.checkAuthorizationForApplication(application, applicationRoles); } else { AuthorizationUtil.checkHasOneRoleIn(roles); } }
@Override public void process(Csar csar, Topology topology, ResetTopologyOperation operation) { Topology newTopology = new Topology(); newTopology.setArchiveName(topology.getArchiveName()); newTopology.setArchiveVersion(topology.getArchiveVersion()); newTopology.setWorkspace(topology.getWorkspace()); workflowBuilderService.initWorkflows(workflowBuilderService.buildTopologyContext(newTopology, csar)); 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); } } }
final String definitionVersion = parsingResult.getResult().getArchive().getToscaDefinitionsVersion(); if (!currentTopology.getArchiveName().equals(parsedTopology.getArchiveName()) || !currentTopology.getArchiveVersion().equals(parsedTopology.getArchiveVersion())) { throw new EditorToscaYamlNotSupportedException( "Template name and version must be set to [" + currentTopology.getArchiveName() + ":" + currentTopology.getArchiveVersion() + "] and cannot be updated to [" + parsedTopology.getArchiveName() + ":" + parsedTopology.getArchiveVersion() + "]");
@SneakyThrows private ApplicationTopologyVersion createTopologyVersion(String applicationId, String version, String qualifier, String description, Topology topology) { String oldArchiveName = topology.getArchiveName(); String oldArchiveVersion = topology.getArchiveVersion();
String serviceId = serviceResourceService.create(serviceName, environment.getTopologyVersion(), topology.getArchiveName(), environment.getTopologyVersion(), environmentId);