@Test public void testFragmentBetween() { Assert.assertEquals("ooba", Strings.getFragmentBetween("foobar", "f", "r")); Assert.assertEquals("oobar", Strings.getFragmentBetween("foobar", "f", "z")); Assert.assertEquals("oobar", Strings.getFragmentBetween("foobar", "f", null)); Assert.assertEquals("oba", Strings.getFragmentBetween("foobar", "o", "r")); Assert.assertEquals("\nba", Strings.getFragmentBetween("foo\nbar", "foo", "r")); Assert.assertEquals("fooba", Strings.getFragmentBetween("foobar", null, "r")); Assert.assertEquals(null, Strings.getFragmentBetween("foobar", "z", "r")); }
private String getHostnameFullyQualified(SshMachineLocation machine) { String hostnameStdout = execRequiringZeroAndReturningStdout(machine, "echo FOREMARKER; hostname --fqdn 2> /dev/null || hostname -f; echo AFTMARKER").get(); return Strings.getFragmentBetween(hostnameStdout, "FOREMARKER", "AFTMARKER").trim(); }
private String getHostnameNoArgs(SshMachineLocation machine) { String hostnameStdout = execRequiringZeroAndReturningStdout(machine, "echo FOREMARKER; hostname; echo AFTMARKER").get(); return Strings.getFragmentBetween(hostnameStdout, "FOREMARKER", "AFTMARKER").trim(); }
private String getHostnameUnqualified(SshMachineLocation machine) { String hostnameStdout = execRequiringZeroAndReturningStdout(machine, "echo FOREMARKER; hostname -s 2> /dev/null || hostname; echo AFTMARKER").get(); return Strings.getFragmentBetween(hostnameStdout, "FOREMARKER", "AFTMARKER").trim(); }
@Test(groups = {"Integration"}) public void testOutputAsExpected() throws Exception { final String CONTENTS = "hello world\n" + "bye bye\n"; execCommands("cat > "+Os.mergePaths(Os.tmp(), "test1")+" << X\n" + CONTENTS + "X\n"); String read = execCommands("echo START_FOO", "cat "+Os.mergePaths(Os.tmp(), "test1"), "echo END_FOO"); log.debug("read back data written, as:\n"+read); String contents = Strings.getFragmentBetween(read, "START_FOO", "END_FOO"); Assert.assertEquals(CONTENTS.trim(), contents.trim()); }
public void checkNoHostnameBug() { try { ProcessTaskWrapper<Integer> hostnameTask = DynamicTasks.queue(SshEffectorTasks.ssh("echo FOREMARKER; hostname; echo AFTMARKER")).block(); String stdout = Strings.getFragmentBetween(hostnameTask.getStdout(), "FOREMARKER", "AFTMARKER"); if (hostnameTask.getExitCode() == 0 && Strings.isNonBlank(stdout)) { String hostname = stdout.trim(); if (hostname.equals("(none)")) { String newHostname = "br-"+getEntity().getId().toLowerCase(); log.info("Detected no-hostname bug with hostname "+hostname+" for "+getEntity()+"; renaming "+getMachine()+" to hostname "+newHostname); DynamicTasks.queue(SshEffectorTasks.ssh(BashCommands.setHostname(newHostname, null))).block(); } } else { log.debug("Hostname could not be determined for location "+EffectorTasks.findSshMachine()+"; not doing no-hostname bug check"); } } catch (Exception e) { Exceptions.propagateIfFatal(e); log.warn("Error checking/fixing no-hostname bug (continuing): "+e, e); } }
public void checkJavaHostnameBug() { checkNoHostnameBug(); try { ProcessTaskWrapper<Integer> hostnameTask = DynamicTasks.queue(SshEffectorTasks.ssh("echo FOREMARKER; hostname -f; echo AFTMARKER")).block(); String stdout = Strings.getFragmentBetween(hostnameTask.getStdout(), "FOREMARKER", "AFTMARKER"); if (hostnameTask.getExitCode() == 0 && Strings.isNonBlank(stdout)) { String hostname = stdout.trim(); Integer len = hostname.length(); if (len > 63) { // likely to cause a java crash due to java bug 7089443 -- set a new short hostname // http://mail.openjdk.java.net/pipermail/net-dev/2012-July/004603.html String newHostname = "br-"+getEntity().getId().toLowerCase(); log.info("Detected likelihood of Java hostname bug with hostname length "+len+" for "+getEntity()+"; renaming "+getMachine()+" to hostname "+newHostname); DynamicTasks.queue(SshEffectorTasks.ssh(BashCommands.setHostname(newHostname, null))).block(); } } else { log.debug("Hostname length could not be determined for location "+EffectorTasks.findSshMachine()+"; not doing Java hostname bug check"); } } catch (Exception e) { Exceptions.propagateIfFatal(e); log.warn("Error checking/fixing Java hostname bug (continuing): "+e, e); } }
try { String line1 = Strings.getFirstLine(out); String ip = Strings.getFragmentBetween(line1, "(", ")"); if (Strings.isNonBlank(ip)) return ip;
.summary("initializing on-box base dir "+base).newTask(); DynamicTasks.queueIfPossible(baseTask).orSubmitAsync(entity); resolvedBase = Strings.getFragmentBetween(baseTask.block().getStdout(), "BASE_DIR_RESULT:", ":BASE_DIR_RESULT");
assertEquals(actualHostnameUnqualified, Strings.getFragmentBetween(newHostname, null, ".")); execRequiringZeroAndReturningStdout(loc, "ping -c1 -n -q "+actualHostnameUnqualified).get(); execRequiringZeroAndReturningStdout(loc, "ping -c1 -n -q "+actualHostnameFullyQualified).get();