public static List<TPolicyTemplate> getPolicyTemplates(TNodeTemplate nodeTemplate) { List<TPolicyTemplate> policyTemplates = new ArrayList<>(); if (nodeTemplate.getPolicies() != null) { List<TPolicy> tPolicies = nodeTemplate.getPolicies().getPolicy(); for (TPolicy tPolicy : tPolicies) { policyTemplates.add(toPolicyTemplate(tPolicy)); } } return policyTemplates; }
public boolean isPoliciesCompatible(ToscaNode left, ToscaNode right) { if (left.getTemplate().getPolicies() != null) { if (right.getTemplate().getPolicies() != null) { return mapToStringList(right.getTemplate().getPolicies().getPolicy()).containsAll(mapToStringList(left.getTemplate().getPolicies().getPolicy())); } else { return false; } } return true; }
/** * Get policy templates by names specified in GUI. * The Policy Template names are used as IDs -> have to be unique. */ private Map<TNodeTemplate, List<PolicyWrapper>> getPoliciesForNTs(TopologyWrapper topology, JsonNode params) { Map<TNodeTemplate, List<PolicyWrapper>> policiesForNTs = new HashMap<>(); for (TNodeTemplate topLevelNT : topology.getTopLevelNTs()) { policiesForNTs.put(topLevelNT, new ArrayList<>()); if (topLevelNT.getPolicies() == null) { continue; } for (JsonNode policyWithOperator : params.get("policySelection")) { String propertyKey = policyWithOperator.get("property").asText(); String operator = policyWithOperator.get("operator").asText(); for (TPolicy policy : topLevelNT.getPolicies().getPolicy()) { if (policy.getName().equals(policyWithOperator.get("policy").asText())) { TPolicyTemplate policyTemplate = AllocationUtils.toPolicyTemplate(policy); policiesForNTs.get(topLevelNT).add(new PolicyWrapper(policyTemplate, propertyKey, operator)); } } } } return policiesForNTs; }
public static boolean containsPatterns(List<TNodeTemplate> topologyNodes, Map<QName, TNodeType> nodeTypes) { NamespaceManager namespaceManager = RepositoryFactory.getRepository().getNamespaceManager(); return topologyNodes.stream() .anyMatch(nodeTemplate -> { TNodeType tNodeType = nodeTypes.get(nodeTemplate.getType()); boolean isPattern = namespaceManager.isPatternNamespace(tNodeType.getTargetNamespace()); boolean isAnnotatedByPattern = false; if (Objects.nonNull(nodeTemplate.getPolicies())) { isAnnotatedByPattern = nodeTemplate.getPolicies().getPolicy() .stream() .anyMatch(tPolicy -> namespaceManager.isPatternNamespace(tPolicy.getPolicyType().getNamespaceURI())); } return isPattern || isAnnotatedByPattern; }); } }
@Override public void visit(TNodeTemplate nodeTemplate) { final TNodeTemplate.Requirements requirements = nodeTemplate.getRequirements(); if ((requirements != null) && requirements.getRequirement().isEmpty()) { nodeTemplate.setRequirements(null); } final TNodeTemplate.Capabilities capabilities = nodeTemplate.getCapabilities(); if ((capabilities != null) && capabilities.getCapability().isEmpty()) { nodeTemplate.setCapabilities(null); } final TDeploymentArtifacts deploymentArtifacts = nodeTemplate.getDeploymentArtifacts(); if ((deploymentArtifacts != null) && deploymentArtifacts.getDeploymentArtifact().isEmpty()) { nodeTemplate.setDeploymentArtifacts(null); } final TPolicies policies = nodeTemplate.getPolicies(); if ((policies != null) && policies.getPolicy().isEmpty()) { nodeTemplate.setPolicies(null); } super.visit(nodeTemplate); }
TPolicies policies = n.getPolicies(); if (policies != null) { for (TPolicy pol : policies.getPolicy()) {
TPolicies policies = n.getPolicies(); if (policies != null) { for (TPolicy pol : policies.getPolicy()) {
public void visit(TNodeTemplate nodeTemplate) { this.visit((RelationshipSourceOrTarget) nodeTemplate); final TNodeTemplate.Requirements requirements = nodeTemplate.getRequirements(); if (requirements != null) { requirements.accept(this); } final TNodeTemplate.Capabilities capabilities = nodeTemplate.getCapabilities(); if (capabilities != null) { capabilities.accept(this); } final TDeploymentArtifacts deploymentArtifacts = nodeTemplate.getDeploymentArtifacts(); if (deploymentArtifacts != null) { for (TDeploymentArtifact deploymentArtifact : deploymentArtifacts.getDeploymentArtifact()) { deploymentArtifact.accept(this); } } final TPolicies policies = nodeTemplate.getPolicies(); if (policies != null) { for (TPolicy policy : policies.getPolicy()) { policy.accept(this); } } // meta model does not offer more children }
/** * @param nodeTemplate which should be cloned * @return copy of nodeTemplate */ public static TNodeTemplate clone(TNodeTemplate nodeTemplate) { TNodeTemplate nodeTemplateClone = new TNodeTemplate(); nodeTemplateClone.setType(nodeTemplate.getType()); nodeTemplateClone.setId(nodeTemplate.getId()); nodeTemplateClone.setDeploymentArtifacts(nodeTemplate.getDeploymentArtifacts()); // returns 1 if null -> !original.equals(cloned) nodeTemplateClone.setMaxInstances(nodeTemplate.getMaxInstances()); nodeTemplateClone.setMinInstances(nodeTemplate.getMinInstances()); nodeTemplateClone.setName(nodeTemplate.getName()); nodeTemplateClone.setPolicies(nodeTemplate.getPolicies()); nodeTemplateClone.setRequirements(nodeTemplate.getRequirements()); nodeTemplateClone.setCapabilities(nodeTemplate.getCapabilities()); nodeTemplateClone.setProperties(nodeTemplate.getProperties()); nodeTemplateClone.setPropertyConstraints(nodeTemplate.getPropertyConstraints()); nodeTemplateClone.setX(nodeTemplate.getX()); nodeTemplateClone.setY(nodeTemplate.getY()); if (ModelUtilities.getTargetLabel(nodeTemplate).isPresent()) { ModelUtilities.setTargetLabel(nodeTemplateClone, ModelUtilities.getTargetLabel(nodeTemplate).get()); } return nodeTemplateClone; }