Search in sources :

Example 11 with BootstrapParams

use of com.sequenceiq.cloudbreak.orchestrator.model.BootstrapParams in project cloudbreak by hortonworks.

the class SaltBootstrapTest method restartNeededFalseAndFlagSupportedBySaltBootstrap.

@Test
public void restartNeededFalseAndFlagSupportedBySaltBootstrap() throws Exception {
    List<Map<String, JsonNode>> result = new ArrayList<>();
    Map<String, JsonNode> ipAddressesForMinions = new HashMap<>();
    ipAddressesForMinions.put("10-0-0-1.example.com", JsonUtil.readTree("[\"10.0.0.1\"]"));
    ipAddressesForMinions.put("10-0-0-2.example.com", JsonUtil.readTree("[\"10.0.0.2\"]"));
    ipAddressesForMinions.put("10-0-0-3.example.com", JsonUtil.readTree("[\"10.0.0.3\"]"));
    result.add(ipAddressesForMinions);
    minionIpAddressesResponse.setResult(result);
    Set<Node> targets = new HashSet<>();
    targets.add(new Node("10.0.0.1", null, null, "hg"));
    targets.add(new Node("10.0.0.2", null, null, "hg"));
    targets.add(new Node("10.0.0.3", null, null, "hg"));
    BootstrapParams params = new BootstrapParams();
    params.setRestartNeeded(false);
    params.setRestartNeededFlagSupported(true);
    SaltBootstrap saltBootstrap = new SaltBootstrap(saltConnector, List.of(saltConnector), Collections.singletonList(gatewayConfig), targets, params);
    saltBootstrap = spy(saltBootstrap);
    doReturn(mock(MinionAcceptor.class)).when(saltBootstrap).createMinionAcceptor();
    saltBootstrap.call();
    ArgumentCaptor<SaltAction> captor = ArgumentCaptor.forClass(SaltAction.class);
    verify(saltConnector, times(1)).action(captor.capture());
    SaltAction saltAction = captor.getValue();
    List<Minion> minions = saltAction.getMinions();
    assertEquals(3, minions.size());
    assertEquals(Collections.singletonList("172.16.252.43"), minions.get(0).getServers());
    assertEquals(Collections.singletonList("172.16.252.43"), minions.get(1).getServers());
    assertEquals(Collections.singletonList("172.16.252.43"), minions.get(2).getServers());
    assertFalse(minions.get(0).isRestartNeeded());
    assertFalse(minions.get(1).isRestartNeeded());
    assertFalse(minions.get(2).isRestartNeeded());
}
Also used : HashMap(java.util.HashMap) JsonNode(com.fasterxml.jackson.databind.JsonNode) Node(com.sequenceiq.cloudbreak.common.orchestration.Node) ArrayList(java.util.ArrayList) JsonNode(com.fasterxml.jackson.databind.JsonNode) StringContains.containsString(org.hamcrest.core.StringContains.containsString) SaltAction(com.sequenceiq.cloudbreak.orchestrator.salt.domain.SaltAction) Minion(com.sequenceiq.cloudbreak.orchestrator.salt.domain.Minion) BootstrapParams(com.sequenceiq.cloudbreak.orchestrator.model.BootstrapParams) HashMap(java.util.HashMap) Map(java.util.Map) HashSet(java.util.HashSet) MinionAcceptor(com.sequenceiq.cloudbreak.orchestrator.salt.poller.join.MinionAcceptor) Test(org.junit.Test)

Example 12 with BootstrapParams

use of com.sequenceiq.cloudbreak.orchestrator.model.BootstrapParams in project cloudbreak by hortonworks.

the class SaltBootstrapTest method restartNeededTrueButFlagNotSupportedBySaltBootstrap.

@Test
public void restartNeededTrueButFlagNotSupportedBySaltBootstrap() throws Exception {
    List<Map<String, JsonNode>> result = new ArrayList<>();
    Map<String, JsonNode> ipAddressesForMinions = new HashMap<>();
    ipAddressesForMinions.put("10-0-0-1.example.com", JsonUtil.readTree("[\"10.0.0.1\"]"));
    ipAddressesForMinions.put("10-0-0-2.example.com", JsonUtil.readTree("[\"10.0.0.2\"]"));
    ipAddressesForMinions.put("10-0-0-3.example.com", JsonUtil.readTree("[\"10.0.0.3\"]"));
    result.add(ipAddressesForMinions);
    minionIpAddressesResponse.setResult(result);
    Set<Node> targets = new HashSet<>();
    targets.add(new Node("10.0.0.1", null, null, "hg"));
    targets.add(new Node("10.0.0.2", null, null, "hg"));
    targets.add(new Node("10.0.0.3", null, null, "hg"));
    BootstrapParams params = new BootstrapParams();
    params.setRestartNeeded(true);
    params.setRestartNeededFlagSupported(false);
    SaltBootstrap saltBootstrap = new SaltBootstrap(saltConnector, List.of(saltConnector), Collections.singletonList(gatewayConfig), targets, params);
    saltBootstrap = spy(saltBootstrap);
    doReturn(mock(MinionAcceptor.class)).when(saltBootstrap).createMinionAcceptor();
    saltBootstrap.call();
    ArgumentCaptor<SaltAction> captor = ArgumentCaptor.forClass(SaltAction.class);
    verify(saltConnector, times(1)).action(captor.capture());
    SaltAction saltAction = captor.getValue();
    List<Minion> minions = saltAction.getMinions();
    assertEquals(3, minions.size());
    assertEquals(Collections.singletonList("127.0.0.1"), minions.get(0).getServers());
    assertEquals(Collections.singletonList("127.0.0.1"), minions.get(1).getServers());
    assertEquals(Collections.singletonList("127.0.0.1"), minions.get(2).getServers());
    assertTrue(minions.get(0).isRestartNeeded());
    assertTrue(minions.get(1).isRestartNeeded());
    assertTrue(minions.get(2).isRestartNeeded());
}
Also used : HashMap(java.util.HashMap) JsonNode(com.fasterxml.jackson.databind.JsonNode) Node(com.sequenceiq.cloudbreak.common.orchestration.Node) ArrayList(java.util.ArrayList) JsonNode(com.fasterxml.jackson.databind.JsonNode) StringContains.containsString(org.hamcrest.core.StringContains.containsString) SaltAction(com.sequenceiq.cloudbreak.orchestrator.salt.domain.SaltAction) Minion(com.sequenceiq.cloudbreak.orchestrator.salt.domain.Minion) BootstrapParams(com.sequenceiq.cloudbreak.orchestrator.model.BootstrapParams) HashMap(java.util.HashMap) Map(java.util.Map) HashSet(java.util.HashSet) MinionAcceptor(com.sequenceiq.cloudbreak.orchestrator.salt.poller.join.MinionAcceptor) Test(org.junit.Test)

Example 13 with BootstrapParams

use of com.sequenceiq.cloudbreak.orchestrator.model.BootstrapParams in project cloudbreak by hortonworks.

the class SaltBootstrapTest method restartNeededTrueAndFlagSupportedBySaltBootstrap.

@Test
public void restartNeededTrueAndFlagSupportedBySaltBootstrap() throws Exception {
    List<Map<String, JsonNode>> result = new ArrayList<>();
    Map<String, JsonNode> ipAddressesForMinions = new HashMap<>();
    ipAddressesForMinions.put("10-0-0-1.example.com", JsonUtil.readTree("[\"10.0.0.1\"]"));
    ipAddressesForMinions.put("10-0-0-2.example.com", JsonUtil.readTree("[\"10.0.0.2\"]"));
    ipAddressesForMinions.put("10-0-0-3.example.com", JsonUtil.readTree("[\"10.0.0.3\"]"));
    result.add(ipAddressesForMinions);
    minionIpAddressesResponse.setResult(result);
    Set<Node> targets = new HashSet<>();
    targets.add(new Node("10.0.0.1", null, null, "hg"));
    targets.add(new Node("10.0.0.2", null, null, "hg"));
    targets.add(new Node("10.0.0.3", null, null, "hg"));
    BootstrapParams params = new BootstrapParams();
    params.setRestartNeeded(true);
    params.setRestartNeededFlagSupported(true);
    SaltBootstrap saltBootstrap = new SaltBootstrap(saltConnector, List.of(saltConnector), Collections.singletonList(gatewayConfig), targets, params);
    saltBootstrap = spy(saltBootstrap);
    doReturn(mock(MinionAcceptor.class)).when(saltBootstrap).createMinionAcceptor();
    saltBootstrap.call();
    ArgumentCaptor<SaltAction> captor = ArgumentCaptor.forClass(SaltAction.class);
    verify(saltConnector, times(1)).action(captor.capture());
    SaltAction saltAction = captor.getValue();
    List<Minion> minions = saltAction.getMinions();
    assertEquals(3, minions.size());
    assertEquals(Collections.singletonList("172.16.252.43"), minions.get(0).getServers());
    assertEquals(Collections.singletonList("172.16.252.43"), minions.get(1).getServers());
    assertEquals(Collections.singletonList("172.16.252.43"), minions.get(2).getServers());
    assertTrue(minions.get(0).isRestartNeeded());
    assertTrue(minions.get(1).isRestartNeeded());
    assertTrue(minions.get(2).isRestartNeeded());
}
Also used : HashMap(java.util.HashMap) JsonNode(com.fasterxml.jackson.databind.JsonNode) Node(com.sequenceiq.cloudbreak.common.orchestration.Node) ArrayList(java.util.ArrayList) JsonNode(com.fasterxml.jackson.databind.JsonNode) StringContains.containsString(org.hamcrest.core.StringContains.containsString) SaltAction(com.sequenceiq.cloudbreak.orchestrator.salt.domain.SaltAction) Minion(com.sequenceiq.cloudbreak.orchestrator.salt.domain.Minion) BootstrapParams(com.sequenceiq.cloudbreak.orchestrator.model.BootstrapParams) HashMap(java.util.HashMap) Map(java.util.Map) HashSet(java.util.HashSet) MinionAcceptor(com.sequenceiq.cloudbreak.orchestrator.salt.poller.join.MinionAcceptor) Test(org.junit.Test)

Example 14 with BootstrapParams

use of com.sequenceiq.cloudbreak.orchestrator.model.BootstrapParams in project cloudbreak by hortonworks.

the class SaltOrchestrator method bootstrapNewNodes.

@Override
public void bootstrapNewNodes(List<GatewayConfig> allGatewayConfigs, Set<Node> targets, Set<Node> allNodes, byte[] stateConfigZip, BootstrapParams params, ExitCriteriaModel exitModel) throws CloudbreakOrchestratorException {
    LOGGER.info("Bootstrap new nodes: {}", targets);
    GatewayConfig primaryGateway = saltService.getPrimaryGatewayConfig(allGatewayConfigs);
    Set<String> gatewayTargets = allGatewayConfigs.stream().filter(gc -> targets.stream().anyMatch(n -> gc.getPrivateAddress().equals(n.getPrivateIp()))).map(GatewayConfig::getPrivateAddress).collect(Collectors.toSet());
    List<SaltConnector> saltConnectors = saltService.createSaltConnector(allGatewayConfigs);
    try (SaltConnector sc = saltService.createSaltConnector(primaryGateway)) {
        if (!gatewayTargets.isEmpty()) {
            LOGGER.info("Gateway targets are not empty, upload salt config: {}", gatewayTargets);
            uploadSaltConfig(sc, gatewayTargets, stateConfigZip, exitModel);
            params.setRestartNeeded(true);
        }
        uploadSignKey(sc, primaryGateway, gatewayTargets, targets.stream().map(Node::getPrivateIp).collect(Collectors.toSet()), exitModel);
        // if there is a new salt master then re-bootstrap all nodes
        Set<Node> nodes = gatewayTargets.isEmpty() ? targets : allNodes;
        OrchestratorBootstrap saltBootstrap = new SaltBootstrap(sc, saltConnectors, allGatewayConfigs, nodes, params);
        Callable<Boolean> saltBootstrapRunner = saltRunner.runner(saltBootstrap, exitCriteria, exitModel);
        saltBootstrapRunner.call();
    } catch (Exception e) {
        LOGGER.info("Error occurred during salt upscale", e);
        throw new CloudbreakOrchestratorFailedException(e.getMessage(), e);
    } finally {
        saltConnectors.forEach(SaltConnector::close);
    }
}
Also used : GrainOperation(com.sequenceiq.cloudbreak.orchestrator.host.GrainOperation) FileReaderUtils.readFileFromClasspath(com.sequenceiq.cloudbreak.util.FileReaderUtils.readFileFromClasspath) SaltCommandRunner(com.sequenceiq.cloudbreak.orchestrator.salt.runner.SaltCommandRunner) Target(com.sequenceiq.cloudbreak.orchestrator.salt.client.target.Target) SaltBootstrap(com.sequenceiq.cloudbreak.orchestrator.salt.poller.SaltBootstrap) SaltJobIdTracker(com.sequenceiq.cloudbreak.orchestrator.salt.poller.SaltJobIdTracker) SyncAllRunner(com.sequenceiq.cloudbreak.orchestrator.salt.poller.checker.SyncAllRunner) LoggerFactory(org.slf4j.LoggerFactory) HostList(com.sequenceiq.cloudbreak.orchestrator.salt.client.target.HostList) SaltUploadWithPermission(com.sequenceiq.cloudbreak.orchestrator.salt.poller.SaltUploadWithPermission) HighStateRunner(com.sequenceiq.cloudbreak.orchestrator.salt.poller.checker.HighStateRunner) HighStateAllRunner(com.sequenceiq.cloudbreak.orchestrator.salt.poller.checker.HighStateAllRunner) StringUtils(org.apache.commons.lang3.StringUtils) PillarSave(com.sequenceiq.cloudbreak.orchestrator.salt.poller.PillarSave) BootstrapParams(com.sequenceiq.cloudbreak.orchestrator.model.BootstrapParams) Map(java.util.Map) JsonNode(com.fasterxml.jackson.databind.JsonNode) HostAndRoleTarget(com.sequenceiq.cloudbreak.orchestrator.salt.client.target.HostAndRoleTarget) OrchestratorBootstrap(com.sequenceiq.cloudbreak.orchestrator.OrchestratorBootstrap) StateAllRunner(com.sequenceiq.cloudbreak.orchestrator.salt.poller.checker.StateAllRunner) NotFoundException(com.sequenceiq.cloudbreak.common.exception.NotFoundException) CloudbreakOrchestratorTimeoutException(com.sequenceiq.cloudbreak.orchestrator.exception.CloudbreakOrchestratorTimeoutException) HostOrchestrator(com.sequenceiq.cloudbreak.orchestrator.host.HostOrchestrator) MineUpdateRunner(com.sequenceiq.cloudbreak.orchestrator.salt.poller.checker.MineUpdateRunner) ModifyGrainBase(com.sequenceiq.cloudbreak.orchestrator.salt.poller.checker.ModifyGrainBase) SaltPillarProperties(com.sequenceiq.cloudbreak.orchestrator.model.SaltPillarProperties) Collection(java.util.Collection) Set(java.util.Set) CloudbreakOrchestratorException(com.sequenceiq.cloudbreak.orchestrator.exception.CloudbreakOrchestratorException) Retry(com.sequenceiq.cloudbreak.service.Retry) RecipeExecutionPhase.convert(com.sequenceiq.cloudbreak.common.type.RecipeExecutionPhase.convert) Collectors(java.util.stream.Collectors) Backoff(org.springframework.retry.annotation.Backoff) TemporaryStorage(com.sequenceiq.cloudbreak.common.type.TemporaryStorage) GrainRemoveRunner(com.sequenceiq.cloudbreak.orchestrator.salt.poller.checker.GrainRemoveRunner) StandardCharsets(java.nio.charset.StandardCharsets) Sets(com.google.common.collect.Sets) ParameterizedStateRunner(com.sequenceiq.cloudbreak.orchestrator.salt.poller.checker.ParameterizedStateRunner) SALT(com.sequenceiq.cloudbreak.common.type.OrchestratorConstants.SALT) List(java.util.List) MinionStatusSaltResponse(com.sequenceiq.cloudbreak.orchestrator.salt.domain.MinionStatusSaltResponse) SaltStates(com.sequenceiq.cloudbreak.orchestrator.salt.states.SaltStates) CloudbreakOrchestratorFailedException(com.sequenceiq.cloudbreak.orchestrator.exception.CloudbreakOrchestratorFailedException) CollectionUtils(org.springframework.util.CollectionUtils) Entry(java.util.Map.Entry) GatewayConfig(com.sequenceiq.cloudbreak.orchestrator.model.GatewayConfig) Optional(java.util.Optional) NodeVolumes(com.sequenceiq.cloudbreak.common.orchestration.NodeVolumes) Predicate.not(java.util.function.Predicate.not) RecipeExecutionPhase(com.sequenceiq.cloudbreak.common.type.RecipeExecutionPhase) SuppressFBWarnings(edu.umd.cs.findbugs.annotations.SuppressFBWarnings) Joiner(com.google.common.base.Joiner) SaltUpload(com.sequenceiq.cloudbreak.orchestrator.salt.poller.SaltUpload) OrchestratorGrainRunnerParams(com.sequenceiq.cloudbreak.orchestrator.host.OrchestratorGrainRunnerParams) HashMap(java.util.HashMap) Callable(java.util.concurrent.Callable) CompressUtil(com.sequenceiq.cloudbreak.util.CompressUtil) SimpleImmutableEntry(java.util.AbstractMap.SimpleImmutableEntry) ArrayList(java.util.ArrayList) RecipeModel(com.sequenceiq.cloudbreak.orchestrator.model.RecipeModel) HashSet(java.util.HashSet) Inject(javax.inject.Inject) Value(org.springframework.beans.factory.annotation.Value) GrainAddRunner(com.sequenceiq.cloudbreak.orchestrator.salt.poller.checker.GrainAddRunner) OrchestratorStateRetryParams(com.sequenceiq.cloudbreak.orchestrator.host.OrchestratorStateRetryParams) CmAgentStopFlags(com.sequenceiq.cloudbreak.orchestrator.model.CmAgentStopFlags) KeytabModel(com.sequenceiq.cloudbreak.orchestrator.model.KeytabModel) OrchestratorStateParams(com.sequenceiq.cloudbreak.orchestrator.host.OrchestratorStateParams) Retryable(org.springframework.retry.annotation.Retryable) Glob(com.sequenceiq.cloudbreak.orchestrator.salt.client.target.Glob) ConcurrentParameterizedStateRunner(com.sequenceiq.cloudbreak.orchestrator.salt.poller.checker.ConcurrentParameterizedStateRunner) ExitCriteria(com.sequenceiq.cloudbreak.orchestrator.state.ExitCriteria) StateRunner(com.sequenceiq.cloudbreak.orchestrator.salt.poller.checker.StateRunner) Logger(org.slf4j.Logger) PackageInfo(com.sequenceiq.cloudbreak.common.model.PackageInfo) OrchestratorAware(com.sequenceiq.cloudbreak.common.orchestration.OrchestratorAware) NodeReachabilityResult(com.sequenceiq.cloudbreak.orchestrator.model.NodeReachabilityResult) GrainUploader(com.sequenceiq.cloudbreak.orchestrator.salt.grain.GrainUploader) Node(com.sequenceiq.cloudbreak.common.orchestration.Node) ExitCriteriaModel(com.sequenceiq.cloudbreak.orchestrator.state.ExitCriteriaModel) IOException(java.io.IOException) PRE_CLOUDERA_MANAGER_START(com.sequenceiq.cloudbreak.common.type.RecipeExecutionPhase.PRE_CLOUDERA_MANAGER_START) ExecutionException(java.util.concurrent.ExecutionException) GrainsJsonPropertyUtil(com.sequenceiq.cloudbreak.orchestrator.salt.utils.GrainsJsonPropertyUtil) HttpStatus(org.springframework.http.HttpStatus) Component(org.springframework.stereotype.Component) BaseSaltJobRunner(com.sequenceiq.cloudbreak.orchestrator.salt.poller.BaseSaltJobRunner) SaltRunner(com.sequenceiq.cloudbreak.orchestrator.salt.runner.SaltRunner) CloudbreakServiceException(com.sequenceiq.cloudbreak.common.exception.CloudbreakServiceException) Collections(java.util.Collections) SaltConnector(com.sequenceiq.cloudbreak.orchestrator.salt.client.SaltConnector) SaltConfig(com.sequenceiq.cloudbreak.orchestrator.model.SaltConfig) OrchestratorBootstrap(com.sequenceiq.cloudbreak.orchestrator.OrchestratorBootstrap) JsonNode(com.fasterxml.jackson.databind.JsonNode) Node(com.sequenceiq.cloudbreak.common.orchestration.Node) SaltConnector(com.sequenceiq.cloudbreak.orchestrator.salt.client.SaltConnector) NotFoundException(com.sequenceiq.cloudbreak.common.exception.NotFoundException) CloudbreakOrchestratorTimeoutException(com.sequenceiq.cloudbreak.orchestrator.exception.CloudbreakOrchestratorTimeoutException) CloudbreakOrchestratorException(com.sequenceiq.cloudbreak.orchestrator.exception.CloudbreakOrchestratorException) CloudbreakOrchestratorFailedException(com.sequenceiq.cloudbreak.orchestrator.exception.CloudbreakOrchestratorFailedException) IOException(java.io.IOException) ExecutionException(java.util.concurrent.ExecutionException) CloudbreakServiceException(com.sequenceiq.cloudbreak.common.exception.CloudbreakServiceException) CloudbreakOrchestratorFailedException(com.sequenceiq.cloudbreak.orchestrator.exception.CloudbreakOrchestratorFailedException) SaltBootstrap(com.sequenceiq.cloudbreak.orchestrator.salt.poller.SaltBootstrap) GatewayConfig(com.sequenceiq.cloudbreak.orchestrator.model.GatewayConfig)

Example 15 with BootstrapParams

use of com.sequenceiq.cloudbreak.orchestrator.model.BootstrapParams in project cloudbreak by hortonworks.

the class SaltOrchestratorTest method bootstrapNewNodesTest.

@Test
public void bootstrapNewNodesTest() throws Exception {
    whenNew(SaltBootstrap.class).withAnyArguments().thenReturn(mock(SaltBootstrap.class));
    whenNew(OrchestratorBootstrapRunner.class).withArguments(any(OrchestratorBootstrap.class), any(ExitCriteria.class), any(ExitCriteriaModel.class), isNull(), anyInt(), anyInt(), anyInt()).thenReturn(mock(OrchestratorBootstrapRunner.class));
    BootstrapParams bootstrapParams = mock(BootstrapParams.class);
    when(compressUtil.generateCompressedOutputFromFolders("salt-common", "salt")).thenReturn(new byte[] {});
    saltOrchestrator.bootstrapNewNodes(Collections.singletonList(gatewayConfig), targets, targets, null, bootstrapParams, exitCriteriaModel);
    verify(saltRunner, times(4)).runner(any(OrchestratorBootstrap.class), any(ExitCriteria.class), any(ExitCriteriaModel.class));
    verifyNew(SaltBootstrap.class, times(1)).withArguments(eq(saltConnector), eq(saltConnectors), eq(Collections.singletonList(gatewayConfig)), eq(targets), eq(bootstrapParams));
}
Also used : ExitCriteriaModel(com.sequenceiq.cloudbreak.orchestrator.state.ExitCriteriaModel) OrchestratorBootstrap(com.sequenceiq.cloudbreak.orchestrator.OrchestratorBootstrap) ExitCriteria(com.sequenceiq.cloudbreak.orchestrator.state.ExitCriteria) BootstrapParams(com.sequenceiq.cloudbreak.orchestrator.model.BootstrapParams) SaltBootstrap(com.sequenceiq.cloudbreak.orchestrator.salt.poller.SaltBootstrap) OrchestratorBootstrapRunner(com.sequenceiq.cloudbreak.orchestrator.OrchestratorBootstrapRunner) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest) Test(org.junit.Test)

Aggregations

BootstrapParams (com.sequenceiq.cloudbreak.orchestrator.model.BootstrapParams)15 Node (com.sequenceiq.cloudbreak.common.orchestration.Node)11 Test (org.junit.Test)8 JsonNode (com.fasterxml.jackson.databind.JsonNode)7 GatewayConfig (com.sequenceiq.cloudbreak.orchestrator.model.GatewayConfig)7 ArrayList (java.util.ArrayList)7 HashMap (java.util.HashMap)7 HashSet (java.util.HashSet)7 Map (java.util.Map)7 MinionAcceptor (com.sequenceiq.cloudbreak.orchestrator.salt.poller.join.MinionAcceptor)6 StringContains.containsString (org.hamcrest.core.StringContains.containsString)6 ExitCriteriaModel (com.sequenceiq.cloudbreak.orchestrator.state.ExitCriteriaModel)5 CloudbreakOrchestratorFailedException (com.sequenceiq.cloudbreak.orchestrator.exception.CloudbreakOrchestratorFailedException)4 Minion (com.sequenceiq.cloudbreak.orchestrator.salt.domain.Minion)4 SaltAction (com.sequenceiq.cloudbreak.orchestrator.salt.domain.SaltAction)4 IOException (java.io.IOException)4 Set (java.util.Set)4 OrchestratorBootstrap (com.sequenceiq.cloudbreak.orchestrator.OrchestratorBootstrap)3 CloudbreakOrchestratorException (com.sequenceiq.cloudbreak.orchestrator.exception.CloudbreakOrchestratorException)3 SaltBootstrap (com.sequenceiq.cloudbreak.orchestrator.salt.poller.SaltBootstrap)3