org.jclouds.scriptbuilder.domain.Statements类的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(11.1k)|赞(0)|评价(0)|浏览(103)

本文整理了Java中org.jclouds.scriptbuilder.domain.Statements类的一些代码示例,展示了Statements类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Statements类的具体详情如下:
包路径:org.jclouds.scriptbuilder.domain.Statements
类名称:Statements

Statements介绍

[英]Statements used in shell scripts.
[中]shell脚本中使用的语句。

代码示例

代码示例来源:origin: jclouds/legacy-jclouds

@VisibleForTesting
void createRolesIfNecessary(ImmutableList.Builder<Statement> statements) {
 // The roles directory must contain one file for each role definition
 if (roles.isPresent() && !roles.get().isEmpty()) {
   statements.add(exec("{md} " + rolePath));
   for (Role role : roles.get()) {
    statements.add(createOrOverwriteFile(rolePath + "/" + role.getName() + ".json",
       ImmutableSet.of(role.toJsonString())));
   }
 }
}

代码示例来源:origin: org.apache.jclouds/jclouds-scriptbuilder

public InstallChefUsingOmnibus(String chefVersion) {
   super(call("setupPublicCurl"), saveHttpResponseTo(URI.create(OMNIBUS_INSTALLER), "/tmp", "install-chef.sh"),
      exec("sh /tmp/install-chef.sh -v " + chefVersion));
  }
}

代码示例来源:origin: jclouds/legacy-jclouds

public String render(OsFamily family) {
 String linesToPrepend = Joiner.on('\n').withKeyValueSeparator(" ").join(params);
 Statement prependSshdConfig = exec(String.format(
      "exec 3<> %1$s && awk -v TEXT=\"%2$s\n\" 'BEGIN {print TEXT}{print}' %1$s >&3", sshdConfig,
      linesToPrepend));
 Statement reloadSshdConfig = exec("hash service 2>&- && service ssh reload 2>&- || /etc/init.d/ssh* reload");
 return newStatementList(prependSshdConfig, reloadSshdConfig).render(family);
}

代码示例来源:origin: io.brooklyn/brooklyn-locations-jclouds

public static Statement addAuthorizedKeysToRoot(String publicKey) {
   return newStatementList(
       appendFile("/root/.ssh/authorized_keys", Splitter.on('\n').split(publicKey)),
       interpret("chmod 600 /root/.ssh/authorized_keys"));
}

代码示例来源:origin: jclouds/legacy-jclouds

public void testCreateDefaultNodeConfiguration() {
 ImmutableList.Builder<Statement> statements = ImmutableList.builder();
 ChefSolo solo = ChefSolo.builder().build();
 solo.createNodeConfiguration(statements);
 ImmutableList<Statement> statementList = statements.build();
 Statement expected = createOrOverwriteFile(ChefSolo.DEFAULT_SOLO_PATH + "/node.json",
    ImmutableSet.of("{\"run_list\":[]}"));
 assertEquals(statementList.size(), 1);
 assertEquals(statementList.get(0).render(OsFamily.UNIX), expected.render(OsFamily.UNIX));
}

代码示例来源:origin: jclouds/legacy-jclouds

public void testCreateNewKeyPairUnlessUserSpecifiedOtherwise_reusesKeyWhenToldToWithRunScriptAndCredentialsAlreadyInMap() {
 // setup constants
 String region = Region.AP_SOUTHEAST_1;
 String group = "group";
 String userSuppliedKeyPair = "myKeyPair";
 // create mocks
 CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = setupStrategy();
 EC2TemplateOptions options = createMock(EC2TemplateOptions.class);
 KeyPair keyPair = createMock(KeyPair.class);
 // setup expectations
 expect(options.getKeyPair()).andReturn(userSuppliedKeyPair);
 expect(options.getLoginPrivateKey()).andReturn(null);
 expect(options.getRunScript()).andReturn(Statements.exec("echo foo"));
 expect(strategy.credentialsMap.containsKey(new RegionAndName(region, userSuppliedKeyPair))).andReturn(true);
 // replay mocks
 replay(options);
 replay(keyPair);
 replayStrategy(strategy);
 // run
 assertEquals(strategy.createNewKeyPairUnlessUserSpecifiedOtherwise(region, group, options), userSuppliedKeyPair);
 // verify mocks
 verify(options);
 verify(keyPair);
 verifyStrategy(strategy);
}

代码示例来源:origin: jclouds/legacy-jclouds

public void testSwitchArgUNIX() {
 assertEquals(new SwitchArg(1, ImmutableMap.of("0", newStatementList(appendFile(
      "{tmp}{fs}{uid}{fs}scripttest{fs}temp.txt", ImmutableList.of("hello world")),
      interpret("echo hello zero{lf}")), "1", interpret("echo hello one{lf}"))).render(OsFamily.UNIX),
 "case $1 in\n"+
 "0)\n"+
 "   cat >> /tmp/$USER/scripttest/temp.txt <<-'END_OF_JCLOUDS_FILE'\n"+
 "\thello world\n"+
 "END_OF_JCLOUDS_FILE\n"+
 "   echo hello zero\n"+
 "   ;;\n"+
 "1)\n"+
 "   echo hello one\n"+
 "   ;;\n"+
 "esac\n");
}

代码示例来源:origin: jclouds/legacy-jclouds

@Test
public void testSwitchOn() {
 ScriptBuilder builder = new ScriptBuilder();
 builder.addStatement(switchArg(1,
    ImmutableMap.of("start", interpret("echo started{lf}"), "stop", interpret("echo stopped{lf}"))));
 assertEquals(builder.statements, ImmutableList.of(new SwitchArg(1, ImmutableMap.of("start",
    interpret("echo started{lf}"), "stop", interpret("echo stopped{lf}")))));
}

代码示例来源:origin: jclouds/legacy-jclouds

@Test(expectedExceptions = IllegalStateException.class)
public void testWithoutInitThrowsIllegalStateException() {
 Statement command = exec("doFoo");
 NodeMetadata node = new NodeMetadataBuilder().ids("id").status(Status.RUNNING).credentials(
      LoginCredentials.builder().user("tester").password("notalot").build()).build();
 SshClient sshClient = createMock(SshClient.class);
 replay(sshClient);
 RunScriptOnNodeAsInitScriptUsingSsh testMe = new RunScriptOnNodeAsInitScriptUsingSsh(Functions
      .forMap(ImmutableMap.of(node, sshClient)), eventBus, InitScriptConfigurationForTasks.create()
      .appendIncrementingNumberToAnonymousTaskNames(), node, command, new RunScriptOptions());
 testMe.call();
}

代码示例来源:origin: jclouds/legacy-jclouds

public void testSwitchArgWindows() {
   assertEquals(
        new SwitchArg(1, ImmutableMap.of("0", interpret("echo hello zero{lf}"), "1",
            interpret("echo hello one{lf}"))).render(OsFamily.WINDOWS),
        "if not \"%1\" == \"0\" if not \"%1\" == \"1\" (\r\n   set EXCEPTION=bad argument: %1 not in 0 1\r\n   goto abort\r\n)\r\ngoto CASE_%1\r\n:CASE_0\r\n   echo hello zero\r\n   GOTO END_SWITCH\r\n:CASE_1\r\n   echo hello one\r\n   GOTO END_SWITCH\r\n:END_SWITCH\r\n");
  }
}

代码示例来源:origin: jclouds/legacy-jclouds

private void addUnixRunScriptHeader(String runScript, StringBuilder builder) {
 builder.append("# create runscript header\n");
 Builder<String> beginningOfFile = ImmutableList.builder();
 beginningOfFile.addAll(Splitter.on(ShellToken.LF.to(OsFamily.UNIX)).split(
    ShellToken.BEGIN_SCRIPT.to(OsFamily.UNIX)));
 beginningOfFile.add(format("PROMPT_COMMAND='echo -ne \\\"\\033]0;%s\\007\\\"'", instanceName));
 beginningOfFile.add(Utils.writeZeroPath(OsFamily.UNIX));
 beginningOfFile.add(format("export INSTANCE_NAME='%s'", instanceName));
 builder.append(createOrOverwriteFile(runScript, beginningOfFile.build(), DELIMITER).render(OsFamily.UNIX));
    ImmutableMap.<String, String> of("abort", Utils.writeFunctionFromResource("abort", OsFamily.UNIX)),
    statements, OsFamily.UNIX);
   StringBuilder functions = new StringBuilder();
   ScriptBuilder.writeFunctions(functionsToWrite, OsFamily.UNIX, functions);
   builder.append(appendFile(runScript, functions.toString(), DELIMITER).render(OsFamily.UNIX));

代码示例来源:origin: jclouds/legacy-jclouds

public String render(OsFamily family) {
 checkNotNull(family, "family");
 if (family == OsFamily.WINDOWS)
   throw new UnsupportedOperationException("windows not yet implemented");
 Builder<Statement> statements = ImmutableList.builder();
 statements.add(createOrOverwriteFile(sudoers, ImmutableSet.of("root ALL = (ALL) ALL", "%wheel ALL = (ALL) NOPASSWD:ALL")));
 statements.add(exec("chmod 0440 " + sudoers));
 return new StatementList(statements.build()).render(family);
}

代码示例来源:origin: jclouds/legacy-jclouds

private void addUnixRunScript(String runScript, StringBuilder builder) {
 builder.append("# add desired commands from the user\n");
 Builder<String> userCommands = ImmutableList.builder();
 userCommands.add("cd " + pwd);
 for (Statement statement : statements) {
   if (statement instanceof Call
      || (statement instanceof StatementList && any(StatementList.class.cast(statement).delegate(),
         instanceOf(Call.class)))) {
    statement = new ExitInsteadOfReturn(statement);
   }
   userCommands.addAll(Splitter.on('\n').split(statement.render(OsFamily.UNIX)));
 }
 builder.append(appendFile(runScript, userCommands.build(), DELIMITER).render(OsFamily.UNIX));
}

代码示例来源:origin: jclouds/legacy-jclouds

public void testWhenAdminAccessInsideList() {
 AdminAccess.Configuration configuration = createMock(AdminAccess.Configuration.class);
 AdminAccess statement = createMock(AdminAccess.class);
 Credentials creds = createMock(Credentials.class);
 expect(statement.getAdminCredentials()).andReturn(creds);
 replay(configuration);
 replay(statement);
 replay(creds);
 assertEquals(CredentialsFromAdminAccess.INSTANCE.apply(Statements.newStatementList(statement)), creds);
 verify(configuration);
 verify(statement);
 verify(creds);
}

代码示例来源:origin: jclouds/legacy-jclouds

@Override
  public String render(OsFamily family) {
   checkNotNull(family, "family");
   if (family == OsFamily.WINDOWS)
     throw new UnsupportedOperationException("windows not yet implemented");
   Builder<Statement> statements = ImmutableList.builder();
   statements.add(exec("mkdir -p " + sshDir));
   String authorizedKeys = sshDir + "{fs}authorized_keys";
   statements.add(appendFile(authorizedKeys, Splitter.on('\n').split(Joiner.on("\n\n").join(publicKeys))));
   statements.add(exec("chmod 600 " + authorizedKeys));
   return new StatementList(statements.build()).render(family);
  }
}

代码示例来源:origin: jclouds/legacy-jclouds

public void testExtractTargzIntoDirectoryUNIX() {
 Statement save = Statements
    .extractTargzIntoDirectory(
       URI.create("https://s3.amazonaws.com/MinecraftDownload/launcher/minecraft_server.tar.gz"),
       "/opt/minecraft");
 assertEquals(
    save.render(OsFamily.UNIX),
    "curl -q -s -S -L --connect-timeout 10 --max-time 600 --retry 20 -X GET  https://s3.amazonaws.com/MinecraftDownload/launcher/minecraft_server.tar.gz |(mkdir -p /opt/minecraft &&cd /opt/minecraft &&tar -xpzf -)\n");
}

代码示例来源:origin: jclouds/legacy-jclouds

public void testWhenNotAdminAccess() {
 Statement statement = Statements.exec("echo hello");
 assertEquals(CredentialsFromAdminAccess.INSTANCE.apply(statement), null);
 Statement statementList = Statements.newStatementList(statement);
 assertEquals(CredentialsFromAdminAccess.INSTANCE.apply(statementList), null);
}

代码示例来源:origin: jclouds/legacy-jclouds

public void testWhenNotAdminAccess() {
 AdminAccess.Configuration configuration = createMock(AdminAccess.Configuration.class);
 InitAdminAccess initAdminAccess = new InitAdminAccess(configuration);
 replay(configuration);
 initAdminAccess.visit(Statements.exec("echo hello"));
 initAdminAccess.visit(Statements.newStatementList(Statements.exec("echo hello")));
 verify(configuration);
}

代码示例来源:origin: apache/attic-whirr

/**
 * Record timestamps for this phase execution on the remote machine
 */
@Override
public void beforeBootstrap(ClusterActionEvent event) {
 addStatement(event, Statements.newStatementList(
  exec("date +%s > /tmp/bootstrap-start"),
  exec("sleep 60"), // 1 minute
  exec("date +%s > /tmp/bootstrap-end")
 ));
 recordTime("before-bootstrap");
}

代码示例来源:origin: jclouds/legacy-jclouds

@Override
public String render(OsFamily family) {
 if (family == OsFamily.UNIX) {
   return interpret(hereFile()).render(family);
 } else {
   return interpret(appendToWindowsFile()).render(family);
 }
}

相关文章