Search in sources :

Example 66 with Node

use of com.sequenceiq.cloudbreak.common.orchestration.Node in project cloudbreak by hortonworks.

the class UpgradeCcmOrchestratorService method createStateParams.

private OrchestratorStateParams createStateParams(Long stackId, String saltState) {
    Stack stack = stackService.getByIdWithListsInTransaction(stackId);
    Set<Node> gatewayNodes = stackUtil.collectGatewayNodes(stack);
    OrchestratorStateParams stateParams = new OrchestratorStateParams();
    stateParams.setState(saltState);
    stateParams.setPrimaryGatewayConfig(gatewayConfigService.getPrimaryGatewayConfig(stack));
    stateParams.setTargetHostNames(gatewayNodes.stream().map(Node::getHostname).collect(Collectors.toSet()));
    stateParams.setAllNodes(gatewayNodes);
    stateParams.setExitCriteriaModel(new ClusterDeletionBasedExitCriteriaModel(stack.getId(), stack.getCluster().getId()));
    return stateParams;
}
Also used : Node(com.sequenceiq.cloudbreak.common.orchestration.Node) ClusterDeletionBasedExitCriteriaModel(com.sequenceiq.cloudbreak.core.bootstrap.service.ClusterDeletionBasedExitCriteriaModel) OrchestratorStateParams(com.sequenceiq.cloudbreak.orchestrator.host.OrchestratorStateParams) Stack(com.sequenceiq.cloudbreak.domain.stack.Stack)

Example 67 with Node

use of com.sequenceiq.cloudbreak.common.orchestration.Node in project cloudbreak by hortonworks.

the class CloudStorageValidationServiceTest method testValidationWithIdbrokerAndRandomHost.

@Test
void testValidationWithIdbrokerAndRandomHost() throws CloudbreakOrchestratorException {
    Stack stack = getStack();
    when(stackService.getByIdWithClusterInTransaction(STACK_ID)).thenReturn(stack);
    when(entitlementService.cloudStorageValidationOnVmEnabled(anyString())).thenReturn(true);
    DetailedEnvironmentResponse environment = getEnvironment();
    when(environmentClientService.getByCrn(ENV_CRN)).thenReturn(environment);
    List<GatewayConfig> gatewayConfigs = getGatewayConfigs();
    when(gatewayConfigService.getAllGatewayConfigs(stack)).thenReturn(gatewayConfigs);
    Set<Node> nodes = getNodes();
    when(stackUtil.collectNodes(stack)).thenReturn(nodes);
    when(diagnosticCloudStorageConverter.loggingResponseToCloudStorageDiagnosticsParameters(environment.getTelemetry().getLogging(), REGION)).thenReturn(new AwsDiagnosticParameters());
    underTest.validateCloudStorage(STACK_ID);
    ArgumentCaptor<Set<String>> targetHostnamesCaptor = ArgumentCaptor.forClass(Set.class);
    verify(telemetryOrchestrator, times(2)).validateCloudStorage(anyList(), anySet(), targetHostnamesCaptor.capture(), anyMap(), any());
    List<Set<String>> capturedTargetHostnames = targetHostnamesCaptor.getAllValues();
    List<String> idbrokerTargets = capturedTargetHostnames.stream().flatMap(Collection::stream).filter(s -> s.equals(IDBROKER_HOSTNAME)).collect(Collectors.toList());
    List<String> nonIdbrokerTargets = capturedTargetHostnames.stream().flatMap(Collection::stream).filter(s -> !s.equals(IDBROKER_HOSTNAME)).collect(Collectors.toList());
    assertEquals(1, idbrokerTargets.size());
    assertEquals(1, nonIdbrokerTargets.size());
}
Also used : Assertions.assertThrows(org.junit.jupiter.api.Assertions.assertThrows) ArgumentMatchers.any(org.mockito.ArgumentMatchers.any) Stack(com.sequenceiq.cloudbreak.domain.stack.Stack) Cluster(com.sequenceiq.cloudbreak.domain.stack.cluster.Cluster) ArgumentMatchers.anySet(org.mockito.ArgumentMatchers.anySet) ArgumentMatchers.anyLong(org.mockito.ArgumentMatchers.anyLong) EntitlementService(com.sequenceiq.cloudbreak.auth.altus.EntitlementService) Mock(org.mockito.Mock) ArgumentMatchers.anyMap(org.mockito.ArgumentMatchers.anyMap) TelemetryOrchestrator(com.sequenceiq.cloudbreak.orchestrator.host.TelemetryOrchestrator) Mockito.verifyNoInteractions(org.mockito.Mockito.verifyNoInteractions) Mockito.doThrow(org.mockito.Mockito.doThrow) FeaturesResponse(com.sequenceiq.common.api.telemetry.response.FeaturesResponse) ArgumentCaptor(org.mockito.ArgumentCaptor) CloudbreakEventService(com.sequenceiq.cloudbreak.structuredevent.event.CloudbreakEventService) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) AwsDiagnosticParameters(com.sequenceiq.common.model.diagnostics.AwsDiagnosticParameters) DetailedEnvironmentResponse(com.sequenceiq.environment.api.v1.environment.model.response.DetailedEnvironmentResponse) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) TelemetryResponse(com.sequenceiq.common.api.telemetry.response.TelemetryResponse) InjectMocks(org.mockito.InjectMocks) LoggingResponse(com.sequenceiq.common.api.telemetry.response.LoggingResponse) MockitoExtension(org.mockito.junit.jupiter.MockitoExtension) Collection(java.util.Collection) Node(com.sequenceiq.cloudbreak.common.orchestration.Node) Set(java.util.Set) S3CloudStorageV1Parameters(com.sequenceiq.common.api.cloudstorage.old.S3CloudStorageV1Parameters) Mockito.times(org.mockito.Mockito.times) EnvironmentClientService(com.sequenceiq.cloudbreak.service.environment.EnvironmentClientService) FeatureSetting(com.sequenceiq.common.api.type.FeatureSetting) Mockito.when(org.mockito.Mockito.when) ArgumentMatchers.anyList(org.mockito.ArgumentMatchers.anyList) CloudbreakOrchestratorException(com.sequenceiq.cloudbreak.orchestrator.exception.CloudbreakOrchestratorException) Collectors(java.util.stream.Collectors) Mockito.verify(org.mockito.Mockito.verify) Test(org.junit.jupiter.api.Test) GatewayConfigService(com.sequenceiq.cloudbreak.service.GatewayConfigService) DiagnosticCloudStorageConverter(com.sequenceiq.cloudbreak.telemetry.converter.DiagnosticCloudStorageConverter) List(java.util.List) StackUtil(com.sequenceiq.cloudbreak.util.StackUtil) CloudbreakOrchestratorFailedException(com.sequenceiq.cloudbreak.orchestrator.exception.CloudbreakOrchestratorFailedException) GatewayConfig(com.sequenceiq.cloudbreak.orchestrator.model.GatewayConfig) StackService(com.sequenceiq.cloudbreak.service.stack.StackService) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) ArgumentMatchers.anySet(org.mockito.ArgumentMatchers.anySet) Set(java.util.Set) Node(com.sequenceiq.cloudbreak.common.orchestration.Node) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) Stack(com.sequenceiq.cloudbreak.domain.stack.Stack) AwsDiagnosticParameters(com.sequenceiq.common.model.diagnostics.AwsDiagnosticParameters) DetailedEnvironmentResponse(com.sequenceiq.environment.api.v1.environment.model.response.DetailedEnvironmentResponse) Collection(java.util.Collection) GatewayConfig(com.sequenceiq.cloudbreak.orchestrator.model.GatewayConfig) Test(org.junit.jupiter.api.Test)

Example 68 with Node

use of com.sequenceiq.cloudbreak.common.orchestration.Node in project cloudbreak by hortonworks.

the class CloudStorageValidationServiceTest method getNodes.

private Set<Node> getNodes() {
    Node idBrokerNode = new Node("ip0", "ip0", "id0", "type0", IDBROKER_HOSTNAME, "idbroker");
    Node node1 = new Node("ip1", "ip1", "id1", "type1", "fqdn1", "master");
    Node node2 = new Node("ip2", "ip2", "id2", "type2", "fqdn2", "worker");
    Node node3 = new Node("ip3", "ip3", "id3", "type3", "fqdn3", "compute");
    return Set.of(idBrokerNode, node1, node2, node3);
}
Also used : Node(com.sequenceiq.cloudbreak.common.orchestration.Node)

Example 69 with Node

use of com.sequenceiq.cloudbreak.common.orchestration.Node in project cloudbreak by hortonworks.

the class CmDiagnosticsFlowServiceTest method nodes.

private Set<Node> nodes() {
    Set<Node> nodes = new HashSet<>();
    nodes.add(new Node("hostA", "publicHostA", null, null, "hostA", null, null));
    nodes.add(new Node("hostB", "publicHostB", null, null, "hostB", null, null));
    return nodes;
}
Also used : Node(com.sequenceiq.cloudbreak.common.orchestration.Node) HashSet(java.util.HashSet)

Example 70 with Node

use of com.sequenceiq.cloudbreak.common.orchestration.Node in project cloudbreak by hortonworks.

the class ClusterHostServiceRunnerTest method testDecoratePillarWithMountInfoAndTargetedSaltCall.

@Test
void testDecoratePillarWithMountInfoAndTargetedSaltCall() throws CloudbreakOrchestratorException {
    setupMocksForRunClusterServices();
    Set<Node> nodes = Sets.newHashSet(node("fqdn3"), node("gateway1"), node("gateway3"));
    when(stackUtil.collectReachableAndUnreachableCandidateNodes(any(), any())).thenReturn(new NodeReachabilityResult(nodes, Set.of()));
    underTest.runTargetedClusterServices(stack, cluster, Map.of("fqdn3", "1.1.1.1"));
    ArgumentCaptor<Set<Node>> reachableCandidates = ArgumentCaptor.forClass(Set.class);
    ArgumentCaptor<SaltConfig> saltConfig = ArgumentCaptor.forClass(SaltConfig.class);
    verify(hostOrchestrator).runService(any(), reachableCandidates.capture(), saltConfig.capture(), any());
    Set<Node> reachableNodes = reachableCandidates.getValue();
    assertTrue(reachableNodes.stream().anyMatch(node -> StringUtils.equals("gateway1", node.getHostname())));
    assertTrue(reachableNodes.stream().anyMatch(node -> StringUtils.equals("gateway2", node.getHostname())));
    assertTrue(reachableNodes.stream().anyMatch(node -> StringUtils.equals("gateway3", node.getHostname())));
    assertTrue(reachableNodes.stream().anyMatch(node -> StringUtils.equals("fqdn3", node.getHostname())));
    assertFalse(reachableNodes.stream().anyMatch(node -> StringUtils.equals("fqdn1", node.getHostname())));
    assertFalse(reachableNodes.stream().anyMatch(node -> StringUtils.equals("fqdn2", node.getHostname())));
    assertTrue(saltConfig.getValue().getServicePillarConfig().keySet().stream().allMatch(Objects::nonNull));
}
Also used : BeforeEach(org.junit.jupiter.api.BeforeEach) EntitlementService(com.sequenceiq.cloudbreak.auth.altus.EntitlementService) ArgumentMatchers.eq(org.mockito.ArgumentMatchers.eq) LoadBalancerSANProvider(com.sequenceiq.cloudbreak.san.LoadBalancerSANProvider) DatalakeService(com.sequenceiq.cloudbreak.service.sharedservice.DatalakeService) ComponentConfigProviderService(com.sequenceiq.cloudbreak.service.ComponentConfigProviderService) InstanceGroupService(com.sequenceiq.cloudbreak.service.stack.InstanceGroupService) StringUtils(org.apache.commons.lang3.StringUtils) ClusterPreCreationApi(com.sequenceiq.cloudbreak.cluster.api.ClusterPreCreationApi) KerberosConfigService(com.sequenceiq.cloudbreak.kerberos.KerberosConfigService) Assertions.assertFalse(org.junit.jupiter.api.Assertions.assertFalse) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) ServiceLocation(com.sequenceiq.cloudbreak.cluster.model.ServiceLocation) Map(java.util.Map) Secret(com.sequenceiq.cloudbreak.service.secret.domain.Secret) ExposedServiceCollector(com.sequenceiq.cloudbreak.api.service.ExposedServiceCollector) Blueprint(com.sequenceiq.cloudbreak.domain.Blueprint) HostAttributeDecorator(com.sequenceiq.cloudbreak.core.bootstrap.service.host.decorator.HostAttributeDecorator) RecipeEngine(com.sequenceiq.cloudbreak.service.cluster.flow.recipe.RecipeEngine) Tunnel(com.sequenceiq.common.api.type.Tunnel) HostOrchestrator(com.sequenceiq.cloudbreak.orchestrator.host.HostOrchestrator) MockitoExtension(org.mockito.junit.jupiter.MockitoExtension) DefaultClouderaManagerRepoService(com.sequenceiq.cloudbreak.service.DefaultClouderaManagerRepoService) SaltPillarProperties(com.sequenceiq.cloudbreak.orchestrator.model.SaltPillarProperties) Set(java.util.Set) ExposedService(com.sequenceiq.cloudbreak.api.service.ExposedService) CloudbreakOrchestratorException(com.sequenceiq.cloudbreak.orchestrator.exception.CloudbreakOrchestratorException) ClouderaManagerRepo(com.sequenceiq.cloudbreak.cloud.model.ClouderaManagerRepo) TemporaryStorage(com.sequenceiq.cloudbreak.common.type.TemporaryStorage) Sets(com.google.common.collect.Sets) Objects(java.util.Objects) Test(org.junit.jupiter.api.Test) IdBrokerService(com.sequenceiq.cloudbreak.service.idbroker.IdBrokerService) GatewayConfigService(com.sequenceiq.cloudbreak.service.GatewayConfigService) ProxyConfigProvider(com.sequenceiq.cloudbreak.service.proxy.ProxyConfigProvider) List(java.util.List) VirtualGroupService(com.sequenceiq.cloudbreak.auth.altus.VirtualGroupService) RdsConfigWithoutClusterService(com.sequenceiq.cloudbreak.service.rdsconfig.RdsConfigWithoutClusterService) StackUtil(com.sequenceiq.cloudbreak.util.StackUtil) CloudbreakOrchestratorFailedException(com.sequenceiq.cloudbreak.orchestrator.exception.CloudbreakOrchestratorFailedException) Assertions.assertTrue(org.junit.jupiter.api.Assertions.assertTrue) GatewayConfig(com.sequenceiq.cloudbreak.orchestrator.model.GatewayConfig) Optional(java.util.Optional) InstanceGroup(com.sequenceiq.cloudbreak.domain.stack.instance.InstanceGroup) StackService(com.sequenceiq.cloudbreak.service.stack.StackService) Mockito.mock(org.mockito.Mockito.mock) Assertions.fail(org.junit.jupiter.api.Assertions.fail) ArgumentMatchers.any(org.mockito.ArgumentMatchers.any) Strictness(org.mockito.quality.Strictness) Stack(com.sequenceiq.cloudbreak.domain.stack.Stack) Cluster(com.sequenceiq.cloudbreak.domain.stack.cluster.Cluster) CMLicenseParser(com.sequenceiq.cloudbreak.auth.CMLicenseParser) MockitoSettings(org.mockito.junit.jupiter.MockitoSettings) LoadBalancerConfigService(com.sequenceiq.cloudbreak.service.LoadBalancerConfigService) Mock(org.mockito.Mock) Assertions.assertNull(org.junit.jupiter.api.Assertions.assertNull) LdapConfigService(com.sequenceiq.cloudbreak.ldap.LdapConfigService) HashMap(java.util.HashMap) HostGroupService(com.sequenceiq.cloudbreak.service.hostgroup.HostGroupService) Mockito.lenient(org.mockito.Mockito.lenient) Captor(org.mockito.Captor) CloudPlatform(com.sequenceiq.cloudbreak.common.mappable.CloudPlatform) HashSet(java.util.HashSet) CsdParcelDecorator(com.sequenceiq.cloudbreak.core.bootstrap.service.host.decorator.CsdParcelDecorator) KerberosDetailService(com.sequenceiq.cloudbreak.template.kerberos.KerberosDetailService) ArgumentCaptor(org.mockito.ArgumentCaptor) Lists(com.google.common.collect.Lists) UserManagementProto(com.cloudera.thunderhead.service.usermanagement.UserManagementProto) FileReaderUtils(com.sequenceiq.cloudbreak.util.FileReaderUtils) InstanceMetaDataService(com.sequenceiq.cloudbreak.service.stack.InstanceMetaDataService) ClusterComponentConfigProvider(com.sequenceiq.cloudbreak.cluster.service.ClusterComponentConfigProvider) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) RdsConfigWithoutCluster(com.sequenceiq.cloudbreak.domain.view.RdsConfigWithoutCluster) TelemetryDecorator(com.sequenceiq.cloudbreak.core.bootstrap.service.host.decorator.TelemetryDecorator) InjectMocks(org.mockito.InjectMocks) DatabaseType(com.sequenceiq.cloudbreak.api.endpoint.v4.database.base.DatabaseType) NodeReachabilityResult(com.sequenceiq.cloudbreak.orchestrator.model.NodeReachabilityResult) EnvironmentConfigProvider(com.sequenceiq.cloudbreak.service.environment.EnvironmentConfigProvider) Node(com.sequenceiq.cloudbreak.common.orchestration.Node) ReflectionTestUtils(org.springframework.test.util.ReflectionTestUtils) IOException(java.io.IOException) PostgresConfigService(com.sequenceiq.cloudbreak.core.bootstrap.service.container.postgres.PostgresConfigService) Mockito.when(org.mockito.Mockito.when) ServiceLocationMap(com.sequenceiq.cloudbreak.cluster.model.ServiceLocationMap) GrpcUmsClient(com.sequenceiq.cloudbreak.auth.altus.GrpcUmsClient) Mockito.verify(org.mockito.Mockito.verify) Template(com.sequenceiq.cloudbreak.domain.Template) MountDisks(com.sequenceiq.cloudbreak.service.stack.flow.MountDisks) InstanceMetaData(com.sequenceiq.cloudbreak.domain.stack.instance.InstanceMetaData) ClusterApiConnectors(com.sequenceiq.cloudbreak.service.cluster.ClusterApiConnectors) Assertions(org.junit.jupiter.api.Assertions) CloudbreakServiceException(com.sequenceiq.cloudbreak.common.exception.CloudbreakServiceException) ComponentLocatorService(com.sequenceiq.cloudbreak.service.blueprint.ComponentLocatorService) NodesUnreachableException(com.sequenceiq.cloudbreak.util.NodesUnreachableException) SaltConfig(com.sequenceiq.cloudbreak.orchestrator.model.SaltConfig) Set(java.util.Set) HashSet(java.util.HashSet) Node(com.sequenceiq.cloudbreak.common.orchestration.Node) SaltConfig(com.sequenceiq.cloudbreak.orchestrator.model.SaltConfig) NodeReachabilityResult(com.sequenceiq.cloudbreak.orchestrator.model.NodeReachabilityResult) Test(org.junit.jupiter.api.Test)

Aggregations

Node (com.sequenceiq.cloudbreak.common.orchestration.Node)126 GatewayConfig (com.sequenceiq.cloudbreak.orchestrator.model.GatewayConfig)57 HashSet (java.util.HashSet)42 Map (java.util.Map)32 JsonNode (com.fasterxml.jackson.databind.JsonNode)30 CloudbreakOrchestratorFailedException (com.sequenceiq.cloudbreak.orchestrator.exception.CloudbreakOrchestratorFailedException)29 Test (org.junit.Test)29 HashMap (java.util.HashMap)28 Stack (com.sequenceiq.cloudbreak.domain.stack.Stack)27 CloudbreakOrchestratorException (com.sequenceiq.cloudbreak.orchestrator.exception.CloudbreakOrchestratorException)26 ArrayList (java.util.ArrayList)26 InstanceMetaData (com.sequenceiq.cloudbreak.domain.stack.instance.InstanceMetaData)25 ExitCriteriaModel (com.sequenceiq.cloudbreak.orchestrator.state.ExitCriteriaModel)25 Set (java.util.Set)25 Test (org.junit.jupiter.api.Test)25 List (java.util.List)22 CloudbreakServiceException (com.sequenceiq.cloudbreak.common.exception.CloudbreakServiceException)21 IOException (java.io.IOException)21 Collectors (java.util.stream.Collectors)21 BootstrapParams (com.sequenceiq.cloudbreak.orchestrator.model.BootstrapParams)19