Search in sources :

Example 26 with Interface

use of org.alien4cloud.tosca.model.definitions.Interface in project alien4cloud by alien4cloud.

the class TopologyUtils method filterInterfaces.

/**
 * Extract all interfaces that have given operations, and filter out all operations that are not in the includedOperations
 *
 * @param interfaces interfaces to filter
 * @param includedOperations operations that will be included in the result
 * @return filter interfaces
 */
public static Map<String, Interface> filterInterfaces(Map<String, Interface> interfaces, Set<String> includedOperations) {
    Map<String, Interface> result = Maps.newHashMap();
    for (Map.Entry<String, Interface> interfaceEntry : interfaces.entrySet()) {
        Map<String, Operation> operations = Maps.newHashMap();
        for (Map.Entry<String, Operation> operationEntry : interfaceEntry.getValue().getOperations().entrySet()) {
            if (includedOperations.contains(operationEntry.getKey())) {
                operations.put(operationEntry.getKey(), operationEntry.getValue());
            }
        }
        if (!operations.isEmpty()) {
            Interface inter = new Interface();
            inter.setDescription(interfaceEntry.getValue().getDescription());
            inter.setOperations(operations);
            result.put(interfaceEntry.getKey(), inter);
        }
    }
    return result;
}
Also used : Operation(org.alien4cloud.tosca.model.definitions.Operation) Map(java.util.Map) Interface(org.alien4cloud.tosca.model.definitions.Interface)

Example 27 with Interface

use of org.alien4cloud.tosca.model.definitions.Interface in project alien4cloud by alien4cloud.

the class ToscaSerializerUtils method formatRepositories.

public static String formatRepositories(String topologyArchiveName, String topologyArchiveVersion, Topology topology) {
    StringBuilder buffer = new StringBuilder();
    Set<String> repositoriesName = Sets.newHashSet();
    for (NodeTemplate node : safe(topology.getNodeTemplates()).values()) {
        for (DeploymentArtifact artifact : safe(node.getArtifacts()).values()) {
            // Only generate repositories for the current topology
            if (isInternalRepoArtifact(artifact, topologyArchiveName, topologyArchiveVersion)) {
                buffer.append("  ").append(artifact.getRepositoryName()).append(":");
                buffer.append("\n").append(formatRepository(artifact, 2)).append("\n");
            }
        }
        for (Interface anInterface : safe(node.getInterfaces()).values()) {
            for (Operation operation : safe(anInterface.getOperations()).values()) {
                if (operation.getImplementationArtifact() != null && isInternalRepoArtifact(operation.getImplementationArtifact(), topologyArchiveName, topologyArchiveVersion)) {
                    buffer.append("  ").append(operation.getImplementationArtifact().getRepositoryName()).append(":");
                    buffer.append("\n").append(formatRepository(operation.getImplementationArtifact(), 2)).append("\n");
                }
            }
        }
    }
    if (MapUtils.isNotEmpty(topology.getInputArtifacts())) {
        topology.getInputArtifacts().values().forEach(inputArtifact -> {
            if (StringUtils.isNotBlank(inputArtifact.getRepositoryURL()) && repositoriesName.add(inputArtifact.getRepositoryName())) {
                buffer.append("  ").append(inputArtifact.getRepositoryName()).append(":");
                buffer.append("\n").append(formatRepository(inputArtifact, 2)).append("\n");
            }
        });
    }
    buffer.setLength(buffer.length() - 1);
    return buffer.toString();
}
Also used : ServiceNodeTemplate(org.alien4cloud.tosca.model.templates.ServiceNodeTemplate) NodeTemplate(org.alien4cloud.tosca.model.templates.NodeTemplate) Operation(org.alien4cloud.tosca.model.definitions.Operation) DeploymentArtifact(org.alien4cloud.tosca.model.definitions.DeploymentArtifact) Interface(org.alien4cloud.tosca.model.definitions.Interface)

Example 28 with Interface

use of org.alien4cloud.tosca.model.definitions.Interface in project alien4cloud by alien4cloud.

the class InterfacesParser method addInterfaceFromType.

private void addInterfaceFromType(ScalarNode node, Map<String, Interface> interfaces, ParsingContextExecution context) {
    // FIXME look for interface type in the REPO
    String interfaceType = InterfaceParser.getInterfaceType(node.getValue());
    Interface interfaz = new Interface();
    interfaz.setType(interfaceType);
    interfaces.put(interfaceType, interfaz);
}
Also used : Interface(org.alien4cloud.tosca.model.definitions.Interface)

Aggregations

Interface (org.alien4cloud.tosca.model.definitions.Interface)28 Operation (org.alien4cloud.tosca.model.definitions.Operation)16 Test (org.junit.Test)7 NodeType (org.alien4cloud.tosca.model.types.NodeType)5 RelationshipType (org.alien4cloud.tosca.model.types.RelationshipType)5 ScalarNode (org.yaml.snakeyaml.nodes.ScalarNode)4 Map (java.util.Map)3 IValue (org.alien4cloud.tosca.model.definitions.IValue)3 NodeTemplate (org.alien4cloud.tosca.model.templates.NodeTemplate)3 RelationshipTemplate (org.alien4cloud.tosca.model.templates.RelationshipTemplate)3 ServiceNodeTemplate (org.alien4cloud.tosca.model.templates.ServiceNodeTemplate)3 AbstractInstantiableToscaType (org.alien4cloud.tosca.model.types.AbstractInstantiableToscaType)3 MappingNode (org.yaml.snakeyaml.nodes.MappingNode)3 NodeTuple (org.yaml.snakeyaml.nodes.NodeTuple)3 ArchiveRoot (alien4cloud.tosca.model.ArchiveRoot)2 INodeParser (alien4cloud.tosca.parser.INodeParser)2 ParsingError (alien4cloud.tosca.parser.ParsingError)2 MapParser (alien4cloud.tosca.parser.impl.base.MapParser)2 Set (java.util.Set)2 ImplementationArtifact (org.alien4cloud.tosca.model.definitions.ImplementationArtifact)2