Search in sources :

Example 1 with ComputeServiceContextFactory

use of org.jclouds.compute.ComputeServiceContextFactory in project whirr by apache.

the class ComputeServiceContextBuilder method build.

public static ComputeServiceContext build(ClusterSpec spec) throws IOException {
    Set<AbstractModule> wiring = ImmutableSet.of(new JschSshClientModule(), new Log4JLoggingModule());
    ComputeServiceContext context = new ComputeServiceContextFactory().createContext(spec.getProvider(), spec.getIdentity(), spec.getCredential(), wiring);
    return context;
}
Also used : Log4JLoggingModule(org.jclouds.logging.log4j.config.Log4JLoggingModule) JschSshClientModule(org.jclouds.ssh.jsch.config.JschSshClientModule) ComputeServiceContext(org.jclouds.compute.ComputeServiceContext) ComputeServiceContextFactory(org.jclouds.compute.ComputeServiceContextFactory) AbstractModule(com.google.inject.AbstractModule)

Example 2 with ComputeServiceContextFactory

use of org.jclouds.compute.ComputeServiceContextFactory in project legacy-jclouds-examples by jclouds.

the class MainApp method main.

public static void main(String[] args) {
    if (args.length < PARAMETERS)
        throw new IllegalArgumentException(INVALID_SYNTAX);
    // Args
    String accesskeyid = args[0];
    String secretkey = args[1];
    String group = args[2];
    String command = args[3];
    // Init
    ComputeService compute = new ComputeServiceContextFactory().createContext("aws-ec2", accesskeyid, secretkey).getComputeService();
    // wait up to 60 seconds for ssh to be accessible
    RetryablePredicate<IPSocket> socketTester = new RetryablePredicate<IPSocket>(new InetSocketAddressConnect(), 60, 1, 1, TimeUnit.SECONDS);
    try {
        if (command.equals("create")) {
            Template template = compute.templateBuilder().build();
            template.getOptions().as(AWSEC2TemplateOptions.class).spotPrice(0.03f).authorizePublicKey(Files.toString(new File(System.getProperty("user.home") + "/.ssh/id_rsa.pub"), Charsets.UTF_8));
            System.out.printf(">> running one spot node type(%s) with ami(%s) in group(%s)%n", template.getHardware().getProviderId(), template.getImage().getId(), group);
            // run only a single node
            NodeMetadata node = Iterables.getOnlyElement(compute.createNodesInGroup(group, 1, template));
            System.out.printf("<< running node(%s)%n", node.getId());
            IPSocket socket = new IPSocket(Iterables.get(node.getPublicAddresses(), 0), node.getLoginPort());
            if (socketTester.apply(socket)) {
                System.out.printf("<< socket ready [%s] node(%s)%n", socket, node.getId());
                System.out.printf("ssh to node with the following command:%n ssh %s@%s%n", node.getCredentials().identity, socket.getAddress());
                System.exit(0);
            } else {
                System.out.printf("<< socket not ready [%s] node(%s)%n", socket, node.getId());
            }
        } else if (command.equals("destroy")) {
            System.out.printf(">> destroying nodes in group(%s)%n", group);
            Set<? extends NodeMetadata> destroyed = compute.destroyNodesMatching(NodePredicates.inGroup(group));
            System.out.printf("<< destroyed(%d)%n", destroyed.size());
            System.exit(0);
        } else {
            System.err.println(INVALID_SYNTAX);
            System.exit(1);
        }
    } catch (RunNodesException e) {
        System.err.println(e.getMessage());
        for (NodeMetadata node : e.getNodeErrors().keySet()) compute.destroyNode(node.getId());
        System.exit(1);
    } catch (IOException e) {
        System.err.println(e.getMessage());
        System.exit(1);
    } finally {
        compute.getContext().close();
    }
}
Also used : RetryablePredicate(org.jclouds.predicates.RetryablePredicate) Set(java.util.Set) InetSocketAddressConnect(org.jclouds.predicates.InetSocketAddressConnect) IOException(java.io.IOException) ComputeService(org.jclouds.compute.ComputeService) ComputeServiceContextFactory(org.jclouds.compute.ComputeServiceContextFactory) IPSocket(org.jclouds.net.IPSocket) Template(org.jclouds.compute.domain.Template) NodeMetadata(org.jclouds.compute.domain.NodeMetadata) RunNodesException(org.jclouds.compute.RunNodesException) File(java.io.File)

Aggregations

ComputeServiceContextFactory (org.jclouds.compute.ComputeServiceContextFactory)2 AbstractModule (com.google.inject.AbstractModule)1 File (java.io.File)1 IOException (java.io.IOException)1 Set (java.util.Set)1 ComputeService (org.jclouds.compute.ComputeService)1 ComputeServiceContext (org.jclouds.compute.ComputeServiceContext)1 RunNodesException (org.jclouds.compute.RunNodesException)1 NodeMetadata (org.jclouds.compute.domain.NodeMetadata)1 Template (org.jclouds.compute.domain.Template)1 Log4JLoggingModule (org.jclouds.logging.log4j.config.Log4JLoggingModule)1 IPSocket (org.jclouds.net.IPSocket)1 InetSocketAddressConnect (org.jclouds.predicates.InetSocketAddressConnect)1 RetryablePredicate (org.jclouds.predicates.RetryablePredicate)1 JschSshClientModule (org.jclouds.ssh.jsch.config.JschSshClientModule)1