use of com.sequenceiq.freeipa.api.v1.dns.model.AddDnsARecordRequest in project cloudbreak by hortonworks.
the class DnsRecordServiceTest method testARecordExistsDifferentValue.
@Test
public void testARecordExistsDifferentValue() throws FreeIpaClientException {
AddDnsARecordRequest request = new AddDnsARecordRequest();
request.setEnvironmentCrn(ENV_CRN);
request.setHostname("Asdf");
request.setIp("1.1.1.2");
request.setCreateReverse(true);
Stack stack = createStack();
when(stackService.getByEnvironmentCrnAndAccountId(ENV_CRN, ACCOUNT_ID)).thenReturn(stack);
FreeIpa freeIpa = createFreeIpa();
when(freeIpaService.findByStack(stack)).thenReturn(freeIpa);
when(freeIpaClientFactory.getFreeIpaClientForStack(stack)).thenReturn(freeIpaClient);
DnsRecord dnsRecord = new DnsRecord();
dnsRecord.setArecord(List.of("asdf"));
dnsRecord.setIdnsname(request.getHostname());
when(freeIpaClient.showDnsRecord(DOMAIN, request.getHostname())).thenReturn(dnsRecord);
Assertions.assertThrows(DnsRecordConflictException.class, () -> underTest.addDnsARecord(ACCOUNT_ID, request));
}
use of com.sequenceiq.freeipa.api.v1.dns.model.AddDnsARecordRequest in project cloudbreak by hortonworks.
the class FreeIPAEndpointManagementService method sendAddDnsARecordRequest.
private void sendAddDnsARecordRequest(Stack stack, LoadBalancer loadBalancer) {
String ip = loadBalancer.getIp();
String endpoint = loadBalancer.getEndpoint();
AddDnsARecordRequest request = new AddDnsARecordRequest();
request.setHostname(endpoint);
request.setIp(ip);
request.setEnvironmentCrn(stack.getEnvironmentCrn());
request.setCreateReverse(true);
LOGGER.debug("Registering load balancer with target IP {} in FreeIPA with A record {}", ip, endpoint);
String accountId = ThreadBasedUserCrnProvider.getAccountId();
ThreadBasedUserCrnProvider.doAsInternalActor(regionAwareInternalCrnGeneratorFactory.iam().getInternalCrnForServiceAsString(), () -> dnsV1Endpoint.addDnsARecordInternal(accountId, request));
}
use of com.sequenceiq.freeipa.api.v1.dns.model.AddDnsARecordRequest in project cloudbreak by hortonworks.
the class DnsRecordServiceTest method testARecordExistsNotA.
@Test
public void testARecordExistsNotA() throws FreeIpaClientException {
AddDnsARecordRequest request = new AddDnsARecordRequest();
request.setEnvironmentCrn(ENV_CRN);
request.setHostname("Asdf");
request.setIp("1.1.1.2");
request.setCreateReverse(true);
Stack stack = createStack();
when(stackService.getByEnvironmentCrnAndAccountId(ENV_CRN, ACCOUNT_ID)).thenReturn(stack);
FreeIpa freeIpa = createFreeIpa();
when(freeIpaService.findByStack(stack)).thenReturn(freeIpa);
when(freeIpaClientFactory.getFreeIpaClientForStack(stack)).thenReturn(freeIpaClient);
DnsRecord dnsRecord = new DnsRecord();
dnsRecord.setPtrrecord(List.of("asdf"));
dnsRecord.setIdnsname(request.getHostname());
when(freeIpaClient.showDnsRecord(DOMAIN, request.getHostname())).thenReturn(dnsRecord);
Assertions.assertThrows(DnsRecordConflictException.class, () -> underTest.addDnsARecord(ACCOUNT_ID, request));
}
use of com.sequenceiq.freeipa.api.v1.dns.model.AddDnsARecordRequest in project cloudbreak by hortonworks.
the class DnsRecordServiceTest method testARecordAddEmptyModListIgnored.
@Test
public void testARecordAddEmptyModListIgnored() throws FreeIpaClientException {
AddDnsARecordRequest request = new AddDnsARecordRequest();
request.setEnvironmentCrn(ENV_CRN);
request.setHostname("Asdf");
request.setIp("1.1.1.2");
request.setCreateReverse(true);
Stack stack = createStack();
when(stackService.getByEnvironmentCrnAndAccountId(ENV_CRN, ACCOUNT_ID)).thenReturn(stack);
FreeIpa freeIpa = createFreeIpa();
when(freeIpaService.findByStack(stack)).thenReturn(freeIpa);
when(freeIpaClientFactory.getFreeIpaClientForStack(stack)).thenReturn(freeIpaClient);
JsonRpcClientException noModEx = new JsonRpcClientException(FreeIpaErrorCodes.EMPTY_MODLIST.getValue(), "no modifications to be performed", null);
when(freeIpaClient.addDnsARecord(DOMAIN, request.getHostname(), request.getIp(), request.isCreateReverse())).thenThrow(new FreeIpaClientException("can't create", noModEx));
underTest.addDnsARecord(ACCOUNT_ID, request);
verify(freeIpaClient).addDnsARecord(DOMAIN, request.getHostname(), request.getIp(), request.isCreateReverse());
}
use of com.sequenceiq.freeipa.api.v1.dns.model.AddDnsARecordRequest in project cloudbreak by hortonworks.
the class DnsRecordServiceTest method testARecordAddDifferentDomainMissing.
@Test
public void testARecordAddDifferentDomainMissing() throws FreeIpaClientException {
AddDnsARecordRequest request = new AddDnsARecordRequest();
request.setEnvironmentCrn(ENV_CRN);
request.setHostname("Asdf");
request.setIp("1.1.1.2");
request.setDnsZone(DOMAIN2);
Stack stack = createStack();
when(stackService.getByEnvironmentCrnAndAccountId(ENV_CRN, ACCOUNT_ID)).thenReturn(stack);
FreeIpa freeIpa = createFreeIpa();
when(freeIpaService.findByStack(stack)).thenReturn(freeIpa);
when(freeIpaClientFactory.getFreeIpaClientForStack(stack)).thenReturn(freeIpaClient);
when(freeIpaClient.findAllDnsZone()).thenReturn(createDnsZones(DOMAIN));
Assertions.assertThrows(BadRequestException.class, () -> underTest.addDnsARecord(ACCOUNT_ID, request));
}
Aggregations