Search in sources :

Example 11 with Record

use of com.globo.globodns.client.model.Record in project cloudstack by apache.

the class GloboDnsResourceTest method testCreateRecordAndReverseWhenDomainDoesNotExistAndOverrideIsFalse.

@Test
public void testCreateRecordAndReverseWhenDomainDoesNotExistAndOverrideIsFalse() throws Exception {
    String recordName = "recordname";
    String recordIp = "40.30.20.10";
    String domainName = "domain.name.com";
    String reverseDomainName = "20.30.40.in-addr.arpa";
    String reverseRecordName = "10";
    String reverseRecordContent = recordName + "." + domainName;
    Domain domain = new Domain();
    domain.getDomainAttributes().setId(sequenceId++);
    Domain reverseDomain = new Domain();
    reverseDomain.getDomainAttributes().setId(sequenceId++);
    Record record = new Record();
    when(_domainApi.listByQuery(domainName)).thenReturn(new ArrayList<Domain>());
    when(_domainApi.createDomain(eq(domainName), eq(TEMPLATE_ID), eq("M"))).thenReturn(domain);
    when(_recordApi.createRecord(eq(domain.getId()), eq(recordName), eq(recordIp), eq("A"))).thenReturn(record);
    when(_domainApi.createReverseDomain(eq(reverseDomainName), eq(TEMPLATE_ID), eq("M"))).thenReturn(reverseDomain);
    when(_recordApi.createRecord(eq(reverseDomain.getId()), eq(reverseRecordName), eq(reverseRecordContent), eq("PTR"))).thenReturn(record);
    Answer answer = _globoDnsResource.execute(new CreateOrUpdateRecordAndReverseCommand(recordName, recordIp, domainName, TEMPLATE_ID, false));
    assertNotNull(answer);
    assertEquals(true, answer.getResult());
    verify(_exportApi, times(1)).scheduleExport();
}
Also used : Answer(com.cloud.agent.api.Answer) Record(com.globo.globodns.client.model.Record) Domain(com.globo.globodns.client.model.Domain) CreateOrUpdateRecordAndReverseCommand(com.globo.globodns.cloudstack.commands.CreateOrUpdateRecordAndReverseCommand) Test(org.junit.Test)

Example 12 with Record

use of com.globo.globodns.client.model.Record in project cloudstack by apache.

the class GloboDnsResourceTest method testRemoveDomainWithSuccessWhenDomainExistsAndThereAreRecordsAndOverrideIsTrue.

@Test
public void testRemoveDomainWithSuccessWhenDomainExistsAndThereAreRecordsAndOverrideIsTrue() throws Exception {
    String domainName = "domain.name.com";
    Domain domain = generateFakeDomain(domainName, false);
    List<Record> recordList = new ArrayList<Record>();
    for (int i = 0; i < 10; i++) {
        Record record = new Record();
        record.getTypeNSRecordAttributes().setDomainId(domain.getId());
        record.getTypeNSRecordAttributes().setId(sequenceId++);
        record.getTypeNSRecordAttributes().setType(new String[] { "A", "NS", "PTR" }[i % 3]);
        recordList.add(record);
    }
    when(_recordApi.listAll(domain.getId())).thenReturn(recordList);
    Answer answer = _globoDnsResource.execute(new RemoveDomainCommand(domainName, true));
    assertEquals(true, answer.getResult());
    verify(_domainApi, times(1)).removeDomain(eq(domain.getId()));
    verify(_exportApi, times(1)).scheduleExport();
}
Also used : Answer(com.cloud.agent.api.Answer) RemoveDomainCommand(com.globo.globodns.cloudstack.commands.RemoveDomainCommand) ArrayList(java.util.ArrayList) Record(com.globo.globodns.client.model.Record) Domain(com.globo.globodns.client.model.Domain) Test(org.junit.Test)

Example 13 with Record

use of com.globo.globodns.client.model.Record in project cloudstack by apache.

the class GloboDnsResourceTest method testRemoveDomainWithSuccessButDomainKeptWhenDomainExistsAndThereAreRecordsAndOverrideIsFalse.

/////////////////////////
// Remove Domain tests //
/////////////////////////
@Test
public void testRemoveDomainWithSuccessButDomainKeptWhenDomainExistsAndThereAreRecordsAndOverrideIsFalse() throws Exception {
    String recordName = "recordname";
    String recordIp = "40.30.20.10";
    String domainName = "domain.name.com";
    Domain domain = generateFakeDomain(domainName, false);
    Record record = generateFakeRecord(domain, recordName, "X", false);
    when(_recordApi.listAll(domain.getId())).thenReturn(Arrays.asList(record));
    Answer answer = _globoDnsResource.execute(new RemoveRecordCommand(recordName, recordIp, domainName, false));
    assertEquals(true, answer.getResult());
    verify(_domainApi, never()).removeDomain(any(Long.class));
    verify(_exportApi, never()).scheduleExport();
}
Also used : Answer(com.cloud.agent.api.Answer) Record(com.globo.globodns.client.model.Record) RemoveRecordCommand(com.globo.globodns.cloudstack.commands.RemoveRecordCommand) Domain(com.globo.globodns.client.model.Domain) Test(org.junit.Test)

Example 14 with Record

use of com.globo.globodns.client.model.Record in project cloudstack by apache.

the class GloboDnsResourceTest method testRemoveRecordWhenRecordExists.

/////////////////////////
// Remove Record tests //
/////////////////////////
@Test
public void testRemoveRecordWhenRecordExists() throws Exception {
    String recordName = "recordname";
    String recordIp = "40.30.20.10";
    String domainName = "domain.name.com";
    String reverseDomainName = "20.30.40.in-addr.arpa";
    String reverseRecordName = "10";
    String reverseRecordContent = recordName + "." + domainName;
    Domain domain = generateFakeDomain(domainName, false);
    Record record = generateFakeRecord(domain, recordName, recordIp, false);
    Domain reverseDomain = generateFakeDomain(reverseDomainName, true);
    Record reverseRecord = generateFakeRecord(reverseDomain, reverseRecordName, reverseRecordContent, true);
    Answer answer = _globoDnsResource.execute(new RemoveRecordCommand(recordName, recordIp, domainName, true));
    assertNotNull(answer);
    assertEquals(true, answer.getResult());
    verify(_recordApi, times(1)).removeRecord(eq(record.getId()));
    verify(_recordApi, times(1)).removeRecord(eq(reverseRecord.getId()));
    verify(_exportApi, times(1)).scheduleExport();
}
Also used : Answer(com.cloud.agent.api.Answer) Record(com.globo.globodns.client.model.Record) RemoveRecordCommand(com.globo.globodns.cloudstack.commands.RemoveRecordCommand) Domain(com.globo.globodns.client.model.Domain) Test(org.junit.Test)

Example 15 with Record

use of com.globo.globodns.client.model.Record in project cloudstack by apache.

the class GloboDnsResourceTest method testCreateRecordAndReverseWillFailWhenRecordAlreadyExistsAndOverrideIsFalse.

@Test
@SuppressWarnings("unused")
public void testCreateRecordAndReverseWillFailWhenRecordAlreadyExistsAndOverrideIsFalse() throws Exception {
    String recordName = "recordname";
    String newIp = "40.30.20.10";
    String oldIp = "50.40.30.20";
    String domainName = "domain.name.com";
    Domain domain = generateFakeDomain(domainName, false);
    Record record = generateFakeRecord(domain, recordName, oldIp, false);
    Answer answer = _globoDnsResource.execute(new CreateOrUpdateRecordAndReverseCommand(recordName, newIp, domainName, TEMPLATE_ID, false));
    assertNotNull(answer);
    assertEquals(false, answer.getResult());
}
Also used : Answer(com.cloud.agent.api.Answer) Record(com.globo.globodns.client.model.Record) Domain(com.globo.globodns.client.model.Domain) CreateOrUpdateRecordAndReverseCommand(com.globo.globodns.cloudstack.commands.CreateOrUpdateRecordAndReverseCommand) Test(org.junit.Test)

Aggregations

Record (com.globo.globodns.client.model.Record)17 Domain (com.globo.globodns.client.model.Domain)14 Answer (com.cloud.agent.api.Answer)13 Test (org.junit.Test)12 CreateOrUpdateRecordAndReverseCommand (com.globo.globodns.cloudstack.commands.CreateOrUpdateRecordAndReverseCommand)6 RemoveRecordCommand (com.globo.globodns.cloudstack.commands.RemoveRecordCommand)4 ArrayList (java.util.ArrayList)3 RemoveDomainCommand (com.globo.globodns.cloudstack.commands.RemoveDomainCommand)2 MaintainAnswer (com.cloud.agent.api.MaintainAnswer)1 ReadyAnswer (com.cloud.agent.api.ReadyAnswer)1 GloboDnsException (com.globo.globodns.client.GloboDnsException)1 InOrder (org.mockito.InOrder)1