Search in sources :

Example 1 with ComputeNodeFindingVisitor

use of org.opentosca.toscana.plugins.kubernetes.visitor.util.ComputeNodeFindingVisitor in project TOSCAna by StuPro-TOSCAna.

the class PrepareHandler method prepare.

public void prepare() {
    ComputeNodeFindingVisitor computeFinder = findComputeNodes();
    Set<RootNode> topLevelNodes = findTopLevelNodes(computeFinder);
    groupStacks(topLevelNodes);
    updateAddresses();
}
Also used : RootNode(org.opentosca.toscana.model.node.RootNode) ComputeNodeFindingVisitor(org.opentosca.toscana.plugins.kubernetes.visitor.util.ComputeNodeFindingVisitor)

Example 2 with ComputeNodeFindingVisitor

use of org.opentosca.toscana.plugins.kubernetes.visitor.util.ComputeNodeFindingVisitor in project TOSCAna by StuPro-TOSCAna.

the class PrepareHandler method findComputeNodes.

private ComputeNodeFindingVisitor findComputeNodes() {
    logger.debug("Collecting Compute Nodes in topology");
    ComputeNodeFindingVisitor computeFinder = new ComputeNodeFindingVisitor();
    lifecycle.model.getNodes().forEach(e -> {
        e.accept(computeFinder);
        KubernetesNodeContainer container = new KubernetesNodeContainer(e);
        lifecycle.nodes.put(e.getEntityName(), container);
    });
    computeFinder.getComputeNodes().forEach(e -> lifecycle.computeNodes.add(lifecycle.nodes.get(e.getEntityName())));
    return computeFinder;
}
Also used : KubernetesNodeContainer(org.opentosca.toscana.plugins.kubernetes.util.KubernetesNodeContainer) ComputeNodeFindingVisitor(org.opentosca.toscana.plugins.kubernetes.visitor.util.ComputeNodeFindingVisitor)

Example 3 with ComputeNodeFindingVisitor

use of org.opentosca.toscana.plugins.kubernetes.visitor.util.ComputeNodeFindingVisitor in project TOSCAna by StuPro-TOSCAna.

the class CloudFoundryLifecycle method prepare.

@Override
public void prepare() {
    logger.info("Begin preparation for transformation to Cloud Foundry");
    PrepareVisitor prepareVisitor = new PrepareVisitor(logger);
    for (RootNode node : context.getModel().getNodes()) {
        node.accept(prepareVisitor);
    }
    logger.debug("Collecting Compute Nodes in topology");
    ComputeNodeFindingVisitor computeFinder = new ComputeNodeFindingVisitor();
    model.getNodes().forEach(e -> {
        e.accept(computeFinder);
        KubernetesNodeContainer container = new KubernetesNodeContainer(e);
        nodes.put(e.getEntityName(), container);
    });
    computeFinder.getComputeNodes().forEach(e -> computeNodes.add(nodes.get(e.getEntityName())));
    logger.debug("Finding top Level Nodes");
    graph = model.getTopology();
    Set<RootNode> topLevelNodes = determineTopLevelNodes(context.getModel(), computeFinder.getComputeNodes().stream().map(Compute.class::cast).collect(Collectors.toList()), e -> nodes.get(e.getEntityName()).activateParentComputeNode());
    logger.debug("Building complete Topology stacks");
    this.stacks.addAll(buildTopologyStacks(model, topLevelNodes, nodes));
    // TODO: check how many different applications there are and fill list with them
    // probably there must be a combination of application and set of nodes
    applications = new ArrayList<>();
    int i = 1;
    for (NodeStack stack : stacks) {
        Application myApp = new Application(i, context);
        i++;
        myApp.setProvider(provider);
        myApp.setConnection(connection);
        myApp.setName(stack.getStackName());
        myApp.addStack(stack);
        applications.add(myApp);
    }
}
Also used : RootNode(org.opentosca.toscana.model.node.RootNode) Compute(org.opentosca.toscana.model.node.Compute) KubernetesNodeContainer(org.opentosca.toscana.plugins.kubernetes.util.KubernetesNodeContainer) NodeStack(org.opentosca.toscana.plugins.kubernetes.util.NodeStack) ComputeNodeFindingVisitor(org.opentosca.toscana.plugins.kubernetes.visitor.util.ComputeNodeFindingVisitor) PrepareVisitor(org.opentosca.toscana.plugins.cloudfoundry.visitor.PrepareVisitor) Application(org.opentosca.toscana.plugins.cloudfoundry.application.Application)

Aggregations

ComputeNodeFindingVisitor (org.opentosca.toscana.plugins.kubernetes.visitor.util.ComputeNodeFindingVisitor)3 RootNode (org.opentosca.toscana.model.node.RootNode)2 KubernetesNodeContainer (org.opentosca.toscana.plugins.kubernetes.util.KubernetesNodeContainer)2 Compute (org.opentosca.toscana.model.node.Compute)1 Application (org.opentosca.toscana.plugins.cloudfoundry.application.Application)1 PrepareVisitor (org.opentosca.toscana.plugins.cloudfoundry.visitor.PrepareVisitor)1 NodeStack (org.opentosca.toscana.plugins.kubernetes.util.NodeStack)1