Преглед на файлове

fix progress meter incorrect reset. update web

tags/v0.14.2
Jonathan Cobb преди 4 години
родител
ревизия
781027b2d8
променени са 3 файла, в които са добавени 10 реда и са изтрити 8 реда
  1. +7
    -5
      bubble-server/src/main/java/bubble/service/cloud/NodeProgressMeter.java
  2. +2
    -2
      bubble-server/src/main/java/bubble/service/cloud/StandardNetworkService.java
  3. +1
    -1
      bubble-web

+ 7
- 5
bubble-server/src/main/java/bubble/service/cloud/NodeProgressMeter.java Целия файл

@@ -5,6 +5,7 @@
package bubble.service.cloud;

import bubble.notify.NewNodeNotification;
import lombok.Getter;
import lombok.experimental.Accessors;
import lombok.extern.slf4j.Slf4j;
import org.cobbzilla.wizard.cache.redis.RedisService;
@@ -38,7 +39,7 @@ public class NodeProgressMeter extends PipedOutputStream implements Runnable {
private final BufferedReader reader;
private final BufferedWriter writer;
private final List<NodeProgressMeterTick> ticks;
private int tickPos = 0;
@Getter private int tickPos = 0;
private final AtomicBoolean error = new AtomicBoolean(false);
private final AtomicBoolean closed = new AtomicBoolean(false);
private final AtomicBoolean success = new AtomicBoolean(false);
@@ -127,15 +128,15 @@ public class NodeProgressMeter extends PipedOutputStream implements Runnable {
}

public void resetToPreAnsible() {
reset(standardTicks.size());
resetToTick(standardTicks.size());
_setCurrentTick(lastStandardTick);
}

public void fullReset() {
reset(0);
resetToTick(0);
}

private void reset(int tickPos) {
public void resetToTick(int tickPos) {
if (closed.get()) die("reset: progress meter is closed, cannot reset");
error.set(false);
this.tickPos = tickPos;
@@ -176,7 +177,8 @@ public class NodeProgressMeter extends PipedOutputStream implements Runnable {
log.warn("_setCurrentTick (closed, not setting): "+json);
return;
}
if (log.isTraceEnabled()) log.trace("_setCurrentTick: "+json+" from: "+stacktrace());
// if (log.isTraceEnabled()) log.trace("_setCurrentTick: "+json+" from: "+stacktrace());
if (log.isInfoEnabled()) log.info("_setCurrentTick: "+json+" from: "+stacktrace());
redis.set(getProgressMeterKey(key, nn.getAccount()), json, EX, TICK_REDIS_EXPIRATION);
}



+ 2
- 2
bubble-server/src/main/java/bubble/service/cloud/StandardNetworkService.java Целия файл

@@ -324,7 +324,7 @@ public class StandardNetworkService implements NetworkService {
nodeDAO.update(node);

log.info("newNode: running script:\n"+script);
for (int i=0; !setupOk && 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");
// Use .uncloseable() because it the command fails due to connection timeout/refused,
// the output stream is closed; if a retry succeeds, there's no output to the progressMeter
@@ -343,6 +343,7 @@ public class StandardNetworkService implements NetworkService {
log.info("newNode: started in " + formatDuration(now() - start));
log.info("newNode: initialized in " + formatDuration(now() - configStart));
setupOk = true;
break;
}
if (!setupOk) return launchFailureCanRetry(node, "newNode: error setting up, all retries failed for node: "+node.getUuid());

@@ -356,7 +357,6 @@ public class StandardNetworkService implements NetworkService {
while (now() - readyStart < NODE_READY_TIMEOUT) {
sleep(SECONDS.toMillis(2), "newNode: waiting for node (" + node.id() + ") to be ready");
log.debug("newNode: waiting for node (" + node.id() + ") to be ready via "+readyUri);
progressMeter.resetToPreAnsible();
progressMeter.write("READY-CHECK-"+(i++)+" /auth/ready for node: "+node.id());
launchMonitor.touch(network.getUuid());
try {


+ 1
- 1
bubble-web

@@ -1 +1 @@
Subproject commit 41d4ba6bc6bee2f9a99c8b85146969adbfdd12b9
Subproject commit 205b4a778a468ed45398f3a74ec5e71485ca31ee

Зареждане…
Отказ
Запис