Bladeren bron

avoid closing progress meter prematurely

cobbzilla/introduce_packer
Jonathan Cobb 4 jaren geleden
bovenliggende
commit
68cbb82358
2 gewijzigde bestanden met toevoegingen van 17 en 3 verwijderingen
  1. +12
    -0
      bubble-server/src/main/java/bubble/service/cloud/NodeProgressMeter.java
  2. +5
    -3
      bubble-server/src/main/java/bubble/service/cloud/StandardNetworkService.java

+ 12
- 0
bubble-server/src/main/java/bubble/service/cloud/NodeProgressMeter.java Bestand weergeven

@@ -173,4 +173,16 @@ public class NodeProgressMeter extends PipedOutputStream implements Runnable {
.setPercent(100)); .setPercent(100));
} }


public NodeProgressMeter uncloseable() throws IOException {
return new UncloseableNodeProgressMeter(this);
}

private class UncloseableNodeProgressMeter extends NodeProgressMeter {
private NodeProgressMeter meter;
public UncloseableNodeProgressMeter(NodeProgressMeter meter) throws IOException {
super(meter.nn, meter.redis);
this.meter = meter;
}
@Override public void close() {}
}
} }

+ 5
- 3
bubble-server/src/main/java/bubble/service/cloud/StandardNetworkService.java Bestand weergeven

@@ -319,11 +319,13 @@ public class StandardNetworkService implements NetworkService {
for (int i=0; i<MAX_ANSIBLE_TRIES; i++) { for (int i=0; i<MAX_ANSIBLE_TRIES; i++) {
sleep((i+1) * SECONDS.toMillis(5), "waiting to try ansible setup"); sleep((i+1) * SECONDS.toMillis(5), "waiting to try ansible setup");
try { try {
final CommandResult result = ansibleSetup(script, progressMeter);
final CommandResult result = ansibleSetup(script, progressMeter.uncloseable());
// .... wait for ansible ... // .... wait for ansible ...
if (!result.isZeroExitStatus()) { if (!result.isZeroExitStatus()) {
if (result.getStderr().contains("Connection timed out") || result.getStderr().contains("SSH connection timeout")) {
log.warn("newNode: SSH connection timeout");
if (result.getStderr().contains("Connection timed out")
|| result.getStderr().contains("SSH connection timeout")
|| result.getStderr().contains("Connection refused")) {
log.warn("newNode: SSH connection error: "+result.getStderr());
continue; continue;
} }
return die("newNode: error in setup:\nstdout=" + result.getStdout() + "\nstderr=" + result.getStderr()); return die("newNode: error in setup:\nstdout=" + result.getStdout() + "\nstderr=" + result.getStderr());


Laden…
Annuleren
Opslaan