Search in sources :

Example 1 with PublicKeyRegisterRequest

use of com.sequenceiq.cloudbreak.cloud.model.publickey.PublicKeyRegisterRequest in project cloudbreak by hortonworks.

the class AwsPublicKeyConnectorTest method registerExisting.

@Test
void registerExisting() {
    PublicKeyRegisterRequest request = generateRegisterRequest();
    when(ec2client.describeKeyPairs(any())).thenReturn(new DescribeKeyPairsResult());
    underTest.register(request);
    verifyNoMoreInteractions(ec2client);
}
Also used : PublicKeyRegisterRequest(com.sequenceiq.cloudbreak.cloud.model.publickey.PublicKeyRegisterRequest) DescribeKeyPairsResult(com.amazonaws.services.ec2.model.DescribeKeyPairsResult) Test(org.junit.jupiter.api.Test)

Example 2 with PublicKeyRegisterRequest

use of com.sequenceiq.cloudbreak.cloud.model.publickey.PublicKeyRegisterRequest in project cloudbreak by hortonworks.

the class AwsPublicKeyConnectorTest method registerProviderException.

@Test
void registerProviderException() {
    PublicKeyRegisterRequest request = generateRegisterRequest();
    when(ec2client.describeKeyPairs(any())).thenThrow(new AmazonServiceException("no such key"));
    when(ec2client.importKeyPair(any())).thenThrow(new RuntimeException(RUNTIME_EXCEPTION));
    assertThatThrownBy(() -> underTest.register(request)).isInstanceOf(CloudConnectorException.class).hasMessage(RUNTIME_EXCEPTION);
    verifyNoMoreInteractions(ec2client);
}
Also used : PublicKeyRegisterRequest(com.sequenceiq.cloudbreak.cloud.model.publickey.PublicKeyRegisterRequest) CloudConnectorException(com.sequenceiq.cloudbreak.cloud.exception.CloudConnectorException) AmazonServiceException(com.amazonaws.AmazonServiceException) Test(org.junit.jupiter.api.Test)

Example 3 with PublicKeyRegisterRequest

use of com.sequenceiq.cloudbreak.cloud.model.publickey.PublicKeyRegisterRequest in project cloudbreak by hortonworks.

the class EnvironmentResourceService method createPublicKey.

private boolean createPublicKey(Environment environment, String publicKeyId) {
    try {
        PublicKeyConnector publicKeyConnector = getPublicKeyConnector(environment.getCloudPlatform()).orElseThrow(() -> new BadRequestException("No network connector for cloud platform: " + environment.getCloudPlatform()));
        PublicKeyRegisterRequest request = createPublicKeyRegisterRequest(environment, publicKeyId);
        publicKeyConnector.register(request);
        LOGGER.info("Public key id is registered with name of {}", publicKeyId);
        return true;
    } catch (UnsupportedOperationException e) {
        LOGGER.info("Cloud platform {} does not support public key services", environment.getCloudPlatform());
    } catch (Exception e) {
        LOGGER.info("Public key could not be registered. {}", e.getMessage(), e);
    }
    return false;
}
Also used : PublicKeyRegisterRequest(com.sequenceiq.cloudbreak.cloud.model.publickey.PublicKeyRegisterRequest) BadRequestException(javax.ws.rs.BadRequestException) PublicKeyConnector(com.sequenceiq.cloudbreak.cloud.PublicKeyConnector) BadRequestException(javax.ws.rs.BadRequestException) NotFoundException(com.sequenceiq.cloudbreak.common.exception.NotFoundException)

Example 4 with PublicKeyRegisterRequest

use of com.sequenceiq.cloudbreak.cloud.model.publickey.PublicKeyRegisterRequest in project cloudbreak by hortonworks.

the class AwsPublicKeyConnectorTest method registerNew.

@Test
void registerNew() {
    PublicKeyRegisterRequest request = generateRegisterRequest();
    when(ec2client.describeKeyPairs(any())).thenThrow(new AmazonServiceException("no such key"));
    underTest.register(request);
    ArgumentCaptor<ImportKeyPairRequest> captor = ArgumentCaptor.forClass(ImportKeyPairRequest.class);
    verify(ec2client).importKeyPair(captor.capture());
    ImportKeyPairRequest result = captor.getValue();
    assertThat(result.getKeyName()).isEqualTo(PUBLIC_KEY_ID);
    assertThat(result.getPublicKeyMaterial()).isEqualTo(PUBLIC_KEY);
    verifyNoMoreInteractions(ec2client);
}
Also used : PublicKeyRegisterRequest(com.sequenceiq.cloudbreak.cloud.model.publickey.PublicKeyRegisterRequest) ImportKeyPairRequest(com.amazonaws.services.ec2.model.ImportKeyPairRequest) AmazonServiceException(com.amazonaws.AmazonServiceException) Test(org.junit.jupiter.api.Test)

Aggregations

PublicKeyRegisterRequest (com.sequenceiq.cloudbreak.cloud.model.publickey.PublicKeyRegisterRequest)4 Test (org.junit.jupiter.api.Test)3 AmazonServiceException (com.amazonaws.AmazonServiceException)2 DescribeKeyPairsResult (com.amazonaws.services.ec2.model.DescribeKeyPairsResult)1 ImportKeyPairRequest (com.amazonaws.services.ec2.model.ImportKeyPairRequest)1 PublicKeyConnector (com.sequenceiq.cloudbreak.cloud.PublicKeyConnector)1 CloudConnectorException (com.sequenceiq.cloudbreak.cloud.exception.CloudConnectorException)1 NotFoundException (com.sequenceiq.cloudbreak.common.exception.NotFoundException)1 BadRequestException (javax.ws.rs.BadRequestException)1