package com.sequenceiq.cloudbreak.orchestrator.salt.poller;
import com.sequenceiq.cloudbreak.orchestrator.OrchestratorBootstrap;
import com.sequenceiq.cloudbreak.orchestrator.exception.CloudbreakOrchestratorFailedException;
import com.sequenceiq.cloudbreak.orchestrator.salt.client.SaltConnector;
public class SaltCommandTracker implements OrchestratorBootstrap {
private final SaltConnector saltConnector;
private SaltJobRunner saltJobRunner;
public SaltCommandTracker(SaltConnector saltConnector, SaltJobRunner saltJobRunner) {
this.saltConnector = saltConnector;
this.saltJobRunner = saltJobRunner;
}
@Override
public Boolean call() throws Exception {
saltJobRunner.submit(saltConnector);
if (!saltJobRunner.getTarget().isEmpty()) {
throw new CloudbreakOrchestratorFailedException("There are missing nodes from job result: " + saltJobRunner.getTarget());
}
return true;
}
@Override
public String toString() {
return "SaltCommandTracker{"
+ "saltJobRunner=" + saltJobRunner
+ '}';
}
}