use of com.sequenceiq.cloudbreak.ccm.cloudinit.CcmParameters in project cloudbreak by hortonworks.
the class CcmUserDataService method getCcmConnectivityParameters.
private CcmConnectivityParameters getCcmConnectivityParameters(Stack stack, String keyId) {
CcmConnectivityParameters ccmConnectivityParameters;
String actorCrn = Objects.requireNonNull(crnService.getUserCrn(), "userCrn is null");
int gatewayPort = Optional.ofNullable(stack.getGatewayport()).orElse(ServiceFamilies.GATEWAY.getDefaultPort());
Map<KnownServiceIdentifier, Integer> tunneledServicePorts = Collections.singletonMap(KnownServiceIdentifier.GATEWAY, gatewayPort);
CcmParameters ccmV1Parameters = ccmParameterSupplier.getCcmParameters(actorCrn, stack.getAccountId(), keyId, tunneledServicePorts).orElse(null);
ccmConnectivityParameters = new CcmConnectivityParameters(ccmV1Parameters);
saveCcmV1Config(stack.getId(), ccmV1Parameters);
return ccmConnectivityParameters;
}
use of com.sequenceiq.cloudbreak.ccm.cloudinit.CcmParameters in project cloudbreak by hortonworks.
the class CcmUserDataService method getCcmConnectivityParameters.
private CcmConnectivityParameters getCcmConnectivityParameters(Stack stack) {
CcmConnectivityParameters ccmConnectivityParameters;
String userCrn = ThreadBasedUserCrnProvider.getUserCrn();
String actorCrn = Objects.requireNonNull(userCrn, "userCrn is null");
ImmutableMap.Builder<KnownServiceIdentifier, Integer> builder = ImmutableMap.builder();
int gatewayPort = Optional.ofNullable(stack.getGatewayPort()).orElse(ServiceFamilies.GATEWAY.getDefaultPort());
builder.put(KnownServiceIdentifier.GATEWAY, gatewayPort);
// Optionally configure a tunnel for (nginx fronting) Knox
if (stack.getCluster().getGateway() != null) {
// JSA TODO Do we support a non-default port for the nginx that fronts Knox?
builder.put(KnownServiceIdentifier.KNOX, ServiceFamilies.KNOX.getDefaultPort());
}
Map<KnownServiceIdentifier, Integer> tunneledServicePorts = builder.build();
CcmParameters ccmV1Parameters = ccmParameterSupplier.getCcmParameters(actorCrn, ThreadBasedUserCrnProvider.getAccountId(), CcmResourceUtil.getKeyId(stack.getResourceCrn()), tunneledServicePorts).orElse(null);
ccmConnectivityParameters = new CcmConnectivityParameters(ccmV1Parameters);
saveCcmV1Config(stack.getId(), ccmV1Parameters);
return ccmConnectivityParameters;
}
use of com.sequenceiq.cloudbreak.ccm.cloudinit.CcmParameters in project cloudbreak by hortonworks.
the class UserDataBuilderTest method testBuildUserDataWithCCM.
@Test
public void testBuildUserDataWithCCM() throws IOException {
BaseServiceEndpoint serviceEndpoint = new BaseServiceEndpoint(new HostEndpoint("ccm.cloudera.com"));
DefaultServerParameters serverParameters = new DefaultServerParameters(serviceEndpoint, "pub-key", "mina-id");
DefaultInstanceParameters instanceParameters = new DefaultInstanceParameters("tunnel-id", "key-id", "private-key");
DefaultTunnelParameters nginxTunnel = new DefaultTunnelParameters(KnownServiceIdentifier.GATEWAY, 9443);
DefaultTunnelParameters knoxTunnel = new DefaultTunnelParameters(KnownServiceIdentifier.KNOX, 8443);
CcmParameters ccmParameters = new DefaultCcmParameters(serverParameters, instanceParameters, List.of(nginxTunnel, knoxTunnel));
CcmConnectivityParameters ccmConnectivityParameters = new CcmConnectivityParameters(ccmParameters);
Map<InstanceGroupType, String> userdata = underTest.buildUserData(Platform.platform("AZURE"), "priv-key".getBytes(), "cloudbreak", getPlatformParameters(), "pass", "cert", ccmConnectivityParameters, null);
String expectedGwScript = FileReaderUtils.readFileFromClasspath("azure-gateway-ccm-init.sh");
String expectedCoreScript = FileReaderUtils.readFileFromClasspath("azure-core-ccm-init.sh");
Assert.assertEquals(expectedGwScript, userdata.get(InstanceGroupType.GATEWAY));
Assert.assertEquals(expectedCoreScript, userdata.get(InstanceGroupType.CORE));
}
use of com.sequenceiq.cloudbreak.ccm.cloudinit.CcmParameters in project cloudbreak by hortonworks.
the class UserDataBuilderTest method testBuildUserDataWithCCMParams.
@Test
@DisplayName("test if CCM parameters are passed the user data contains them")
void testBuildUserDataWithCCMParams() throws IOException {
BaseServiceEndpoint serviceEndpoint = new BaseServiceEndpoint(new HostEndpoint("ccm.cloudera.com"));
DefaultServerParameters serverParameters = new DefaultServerParameters(serviceEndpoint, "pub-key", "mina-id");
DefaultInstanceParameters instanceParameters = new DefaultInstanceParameters("tunnel-id", "key-id", "private-key");
DefaultTunnelParameters nginxTunnel = new DefaultTunnelParameters(KnownServiceIdentifier.GATEWAY, 9443);
CcmParameters ccmParameters = new DefaultCcmParameters(serverParameters, instanceParameters, List.of(nginxTunnel));
CcmConnectivityParameters ccmConnectivityParameters = new CcmConnectivityParameters(ccmParameters);
ProxyAuthentication proxyAuthentication = ProxyAuthentication.builder().withUserName("user").withPassword("pwd").build();
ProxyConfig proxyConfig = ProxyConfig.builder().withServerHost("proxy.host").withServerPort(1234).withProxyAuthentication(proxyAuthentication).withNoProxyHosts("noproxy.com").withProtocol("https").build();
PlatformParameters platformParameters = mock(PlatformParameters.class);
ScriptParams scriptParams = mock(ScriptParams.class);
when(scriptParams.getDiskPrefix()).thenReturn("sd");
when(scriptParams.getStartLabel()).thenReturn(98);
when(platformParameters.scriptParams()).thenReturn(scriptParams);
String userData = underTest.buildUserData(ACCOUNT_ID, environment, Platform.platform("AZURE"), "priv-key".getBytes(), "cloudbreak", platformParameters, "pass", "cert", ccmConnectivityParameters, proxyConfig);
String expectedUserData = FileReaderUtils.readFileFromClasspath("azure-ccm-init.sh");
assertEquals(expectedUserData, userData);
}
Aggregations