Package org.jclouds.scriptbuilder

Examples of org.jclouds.scriptbuilder.ScriptBuilder


      assertEquals(keyPair.getKeyName(), keyName);
   }

   @Test(enabled = false, dependsOnMethods = { "testCreateKeyPair", "testCreateSecurityGroupIngressCidr" })
   public void testCreateRunningInstance() throws Exception {
      String script = new ScriptBuilder() // lamp install script
            .addStatement(exec("runurl run.alestic.com/apt/upgrade"))//
            .addStatement(exec("runurl run.alestic.com/install/lamp"))//
            .render(OsFamily.UNIX);

      RunningInstance instance = null;
View Full Code Here


  // Need to be able to specify base URL
  // Perhaps make these scripts parameterizable?
  // e.g. just java/install then base url is .../openjdk or .../sun or
  // .../apache or .../cloudera
  public static byte[] runUrls(String... urls) throws MalformedURLException {
    ScriptBuilder scriptBuilder = new ScriptBuilder().addStatement(
      exec("wget -qO/usr/bin/runurl run.alestic.com/runurl")).addStatement(
      exec("chmod 755 /usr/bin/runurl"));

    // Note that the runurl scripts should be checked in to whirr/scripts/
    String runUrlBase = System.getProperty("whirr.runurl.base", "http://whirr.s3.amazonaws.com/");
    for (String url : urls) {
      scriptBuilder.addStatement(exec("runurl " + new URL(new URL(runUrlBase), url)));
    }

    return scriptBuilder.build(org.jclouds.scriptbuilder.domain.OsFamily.UNIX)
      .getBytes();
  }
View Full Code Here

     return functions;
  }

  @Override
  public String render(OsFamily family) {
    ScriptBuilder scriptBuilder = new ScriptBuilder();
    for (Statement statement : statements) {
      scriptBuilder.addStatement(statement);
    }
    return scriptBuilder.build(family);
  }
View Full Code Here

   * @param urls The (possibly relative) URLs to build the runurls from.
   * @return
   * @throws MalformedURLException
   */
  public static String runUrls(String runUrlBase, String... urls) throws MalformedURLException {
    ScriptBuilder scriptBuilder = new ScriptBuilder().addStatement(
      exec("wget -qO/usr/bin/runurl run.alestic.com/runurl")).addStatement(
      exec("chmod 755 /usr/bin/runurl"));
    for (String url : urls) {
      String runUrl = new URL(new URL(runUrlBase), url).toExternalForm();
      scriptBuilder.addStatement(exec("runurl " + runUrl));
    }
    return scriptBuilder.build(OsFamily.UNIX);
  }
View Full Code Here

     return functions;
  }

  @Override
  public String render(OsFamily family) {
    ScriptBuilder scriptBuilder = new ScriptBuilder();
    for (Statement statement : statements) {
      scriptBuilder.addStatement(statement);
    }
    return scriptBuilder.render(family);
  }
View Full Code Here

       return functions;
    }

    @Override
    public String render(OsFamily family) {
      ScriptBuilder scriptBuilder = new ScriptBuilder();
      Map<String, String> metadataMap = Maps.newLinkedHashMap();
      metadataMap.putAll(
        ImmutableMap.of(
          "clusterName", clusterSpec.getClusterName(),
          "cloudProvider", clusterSpec.getProvider()
        )
      );
      if (instance != null) {
        metadataMap.putAll(
          ImmutableMap.of(
            "roles", Joiner.on(",").join(instance.getRoles()),
            "publicIp", instance.getPublicIp(),
            "privateIp", instance.getPrivateIp()
          )
        );
        if (!clusterSpec.isStub()) {
          try {
            metadataMap.putAll(
              ImmutableMap.of(
                "publicHostName", instance.getPublicHostName(),
                "privateHostName", instance.getPrivateHostName()
              )
            );
          } catch (IOException e) {
            LOG.warn("Could not resolve hostname for " + instance, e);
          }
        }
      }
      for (Iterator<?> it = clusterSpec.getConfiguration().getKeys("whirr.env"); it.hasNext(); ) {
        String key = (String)it.next();
        String value = clusterSpec.getConfiguration().getString(key);
        metadataMap.put(key.substring("whirr.env.".length()), value);
      }
      metadataMap.putAll(exports);
     
      // Write export statements out directly
      // Using InitBuilder would be a possible improvement
      String writeVariableExporters = Utils.writeVariableExporters(metadataMap, family);
      scriptBuilder.addStatement(exec(writeVariableExporters));
      for (Statement statement : statements) {
        scriptBuilder.addStatement(statement);
      }

      return scriptBuilder.render(family);
    }
View Full Code Here

   * @param forOs
   *            The operating system for which to render the script.
   * @return The script, rendered for a particular operating system.
   */
  public static String renderScript(String script, OsFamily forOs) {
    ScriptBuilder builder = new ScriptBuilder();
    Scanner scriptScanner = new Scanner(script);
    while (scriptScanner.hasNextLine()) {
      builder.addStatement(Statements.exec(scriptScanner.nextLine()));
    }
    scriptScanner.close();
    return builder.render(forOs);
  }
View Full Code Here

      assertEquals(keyPair.getKeyName(), keyName);
   }

   @Test(enabled = false, dependsOnMethods = { "testCreateKeyPair", "testCreateSecurityGroupIngressCidr" })
   public void testCreateRunningInstance() throws Exception {
      String script = new ScriptBuilder() // lamp install script
            .addStatement(exec("runurl run.alestic.com/apt/upgrade"))//
            .addStatement(exec("runurl run.alestic.com/install/lamp"))//
            .render(OsFamily.UNIX);

      RunningInstance instance = null;
View Full Code Here

    * Make sure you've unmounted the volume first. Failure to do so could result in failure or data loss.
    */
   private void unmountVolume(VolumeAttachment volumeAttachment) {
      System.out.println("Unmount Volume");

      String script = new ScriptBuilder().addStatement(exec("umount /mnt")).render(OsFamily.UNIX);

      RunScriptOptions options = RunScriptOptions.Builder
            .overrideLoginUser(Constants.ROOT)
            .overrideLoginPassword(Constants.PASSWORD)
            .blockOnComplete(true);
View Full Code Here

         .append("Hello from ").append(nodeMetadata.getHostname())
         .append(" @ ").append(publicAddress).append("/").append(privateAddress)
         .append(" in ").append(nodeMetadata.getLocation().getParent().getId())
         .toString();

         String script = new ScriptBuilder().addStatement(exec("yum -y install httpd"))
               .addStatement(exec("/usr/sbin/apachectl start"))
               .addStatement(exec("iptables -I INPUT -p tcp --dport 80 -j ACCEPT"))
               .addStatement(exec("echo '" + message + "' > /var/www/html/index.html"))
               .render(OsFamily.UNIX);
View Full Code Here

TOP

Related Classes of org.jclouds.scriptbuilder.ScriptBuilder

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.