Search in sources :

Example 6 with Page

use of com.google.api.gax.paging.Page in project google-cloud-java by GoogleCloudPlatform.

the class ITDnsTest method testListChangesBatch.

@Test
public void testListChangesBatch() {
    try {
        DnsBatch batch = DNS.batch();
        DnsBatchResult<Page<ChangeRequest>> result = batch.listChangeRequests(ZONE1.getName());
        batch.submit();
        try {
            result.get();
            fail("Zone does not exist yet");
        } catch (DnsException ex) {
            // expected
            assertEquals(404, ex.getCode());
            assertFalse(ex.isRetryable());
        }
        // zone exists but has no changes
        DNS.create(ZONE1);
        batch = DNS.batch();
        result = batch.listChangeRequests(ZONE1.getName());
        batch.submit();
        // default change creating SOA and NS
        assertEquals(1, Iterables.size(result.get().getValues()));
        // zone has changes
        ChangeRequest change = DNS.applyChangeRequest(ZONE1.getName(), CHANGE_ADD_ZONE1);
        waitForChangeToComplete(ZONE1.getName(), change.getGeneratedId());
        change = DNS.applyChangeRequest(ZONE1.getName(), CHANGE_DELETE_ZONE1);
        waitForChangeToComplete(ZONE1.getName(), change.getGeneratedId());
        batch = DNS.batch();
        result = batch.listChangeRequests(ZONE1.getName());
        DnsBatchResult<Page<ChangeRequest>> errorPageSize = batch.listChangeRequests(ZONE1.getName(), Dns.ChangeRequestListOption.pageSize(0));
        DnsBatchResult<Page<ChangeRequest>> errorPageNegative = batch.listChangeRequests(ZONE1.getName(), Dns.ChangeRequestListOption.pageSize(-1));
        DnsBatchResult<Page<ChangeRequest>> resultAscending = batch.listChangeRequests(ZONE1.getName(), Dns.ChangeRequestListOption.sortOrder(Dns.SortingOrder.ASCENDING));
        DnsBatchResult<Page<ChangeRequest>> resultDescending = batch.listChangeRequests(ZONE1.getName(), Dns.ChangeRequestListOption.sortOrder(Dns.SortingOrder.DESCENDING));
        DnsBatchResult<Page<ChangeRequest>> resultAdditions = batch.listChangeRequests(ZONE1.getName(), Dns.ChangeRequestListOption.sortOrder(Dns.SortingOrder.ASCENDING), Dns.ChangeRequestListOption.fields(ChangeRequestField.ADDITIONS));
        DnsBatchResult<Page<ChangeRequest>> resultDeletions = batch.listChangeRequests(ZONE1.getName(), Dns.ChangeRequestListOption.sortOrder(Dns.SortingOrder.ASCENDING), Dns.ChangeRequestListOption.fields(ChangeRequestField.DELETIONS));
        DnsBatchResult<Page<ChangeRequest>> resultId = batch.listChangeRequests(ZONE1.getName(), Dns.ChangeRequestListOption.sortOrder(Dns.SortingOrder.ASCENDING), Dns.ChangeRequestListOption.fields(ChangeRequestField.ID));
        DnsBatchResult<Page<ChangeRequest>> resultTime = batch.listChangeRequests(ZONE1.getName(), Dns.ChangeRequestListOption.sortOrder(Dns.SortingOrder.ASCENDING), Dns.ChangeRequestListOption.fields(ChangeRequestField.START_TIME));
        DnsBatchResult<Page<ChangeRequest>> resultStatus = batch.listChangeRequests(ZONE1.getName(), Dns.ChangeRequestListOption.sortOrder(Dns.SortingOrder.ASCENDING), Dns.ChangeRequestListOption.fields(ChangeRequestField.STATUS));
        batch.submit();
        assertEquals(3, Iterables.size(result.get().getValues()));
        // error in options
        try {
            errorPageSize.get();
            fail();
        } catch (DnsException ex) {
            // expected
            assertEquals(400, ex.getCode());
            assertFalse(ex.isRetryable());
        }
        try {
            errorPageNegative.get();
            fail();
        } catch (DnsException ex) {
            // expected
            assertEquals(400, ex.getCode());
            assertFalse(ex.isRetryable());
        }
        // sorting order
        ImmutableList<ChangeRequest> ascending = ImmutableList.copyOf(resultAscending.get().iterateAll());
        ImmutableList<ChangeRequest> descending = ImmutableList.copyOf(resultDescending.get().iterateAll());
        int size = 3;
        assertEquals(size, descending.size());
        assertEquals(size, ascending.size());
        for (int i = 0; i < size; i++) {
            assertEquals(descending.get(i), ascending.get(size - i - 1));
        }
        // field options
        change = Iterables.get(resultAdditions.get().getValues(), 1);
        assertEquals(CHANGE_ADD_ZONE1.getAdditions(), change.getAdditions());
        assertTrue(change.getDeletions().isEmpty());
        assertNotNull(change.getGeneratedId());
        assertNull(change.getStartTimeMillis());
        assertNull(change.status());
        change = Iterables.get(resultDeletions.get().getValues(), 2);
        assertTrue(change.getAdditions().isEmpty());
        assertNotNull(change.getDeletions());
        assertNotNull(change.getGeneratedId());
        assertNull(change.getStartTimeMillis());
        assertNull(change.status());
        change = Iterables.get(resultId.get().getValues(), 1);
        assertTrue(change.getAdditions().isEmpty());
        assertTrue(change.getDeletions().isEmpty());
        assertNotNull(change.getGeneratedId());
        assertNull(change.getStartTimeMillis());
        assertNull(change.status());
        change = Iterables.get(resultTime.get().getValues(), 1);
        assertTrue(change.getAdditions().isEmpty());
        assertTrue(change.getDeletions().isEmpty());
        assertNotNull(change.getGeneratedId());
        assertNotNull(change.getStartTimeMillis());
        assertNull(change.status());
        change = Iterables.get(resultStatus.get().getValues(), 1);
        assertTrue(change.getAdditions().isEmpty());
        assertTrue(change.getDeletions().isEmpty());
        assertNotNull(change.getGeneratedId());
        assertNull(change.getStartTimeMillis());
        assertEquals(ChangeRequest.Status.DONE, change.status());
    } finally {
        clear();
    }
}
Also used : DnsException(com.google.cloud.dns.DnsException) Page(com.google.api.gax.paging.Page) DnsBatch(com.google.cloud.dns.DnsBatch) ChangeRequest(com.google.cloud.dns.ChangeRequest) Test(org.junit.Test)

Example 7 with Page

use of com.google.api.gax.paging.Page in project google-cloud-java by GoogleCloudPlatform.

the class ITDnsTest method testListZonesBatch.

@Test
public void testListZonesBatch() {
    try {
        DnsBatch batch = DNS.batch();
        DnsBatchResult<Page<Zone>> result = batch.listZones();
        batch.submit();
        List<Zone> zones = filter(result.get().iterateAll().iterator());
        assertEquals(0, zones.size());
        // some zones exists
        Zone firstZone = DNS.create(ZONE1);
        batch = DNS.batch();
        result = batch.listZones();
        batch.submit();
        zones = filter(result.get().iterateAll().iterator());
        assertEquals(1, zones.size());
        assertEquals(firstZone, zones.get(0));
        Zone created = DNS.create(ZONE_EMPTY_DESCRIPTION);
        batch = DNS.batch();
        result = batch.listZones();
        DnsBatchResult<Page<Zone>> zeroSizeError = batch.listZones(Dns.ZoneListOption.pageSize(0));
        DnsBatchResult<Page<Zone>> negativeSizeError = batch.listZones(Dns.ZoneListOption.pageSize(-1));
        DnsBatchResult<Page<Zone>> okSize = batch.listZones(Dns.ZoneListOption.pageSize(1));
        DnsBatchResult<Page<Zone>> nameError = batch.listZones(Dns.ZoneListOption.dnsName("aaaaa"));
        DnsBatchResult<Page<Zone>> okName = batch.listZones(Dns.ZoneListOption.dnsName(ZONE1.getDnsName()));
        DnsBatchResult<Page<Zone>> idResult = batch.listZones(Dns.ZoneListOption.dnsName(ZONE1.getDnsName()), Dns.ZoneListOption.fields(ZoneField.ZONE_ID));
        DnsBatchResult<Page<Zone>> timeResult = batch.listZones(Dns.ZoneListOption.dnsName(ZONE1.getDnsName()), Dns.ZoneListOption.fields(ZoneField.CREATION_TIME));
        DnsBatchResult<Page<Zone>> dnsNameResult = batch.listZones(Dns.ZoneListOption.dnsName(ZONE1.getDnsName()), Dns.ZoneListOption.fields(ZoneField.DNS_NAME));
        DnsBatchResult<Page<Zone>> descriptionResult = batch.listZones(Dns.ZoneListOption.dnsName(ZONE1.getDnsName()), Dns.ZoneListOption.fields(ZoneField.DESCRIPTION));
        DnsBatchResult<Page<Zone>> nameServersResult = batch.listZones(Dns.ZoneListOption.dnsName(ZONE1.getDnsName()), Dns.ZoneListOption.fields(ZoneField.NAME_SERVERS));
        DnsBatchResult<Page<Zone>> nameServerSetResult = batch.listZones(Dns.ZoneListOption.dnsName(ZONE1.getDnsName()), Dns.ZoneListOption.fields(ZoneField.NAME_SERVER_SET));
        DnsBatchResult<Page<Zone>> combinationResult = batch.listZones(Dns.ZoneListOption.fields(ZoneField.ZONE_ID, ZoneField.DESCRIPTION), Dns.ZoneListOption.pageSize(1));
        batch.submit();
        zones = filter(result.get().iterateAll().iterator());
        assertEquals(2, zones.size());
        assertTrue(zones.contains(firstZone));
        assertTrue(zones.contains(created));
        // error in options
        try {
            zeroSizeError.get();
            fail();
        } catch (DnsException ex) {
            // expected
            assertEquals(400, ex.getCode());
            assertFalse(ex.isRetryable());
        }
        try {
            negativeSizeError.get();
            fail();
        } catch (DnsException ex) {
            // expected
            assertEquals(400, ex.getCode());
            assertFalse(ex.isRetryable());
        }
        // ok size
        assertEquals(1, Iterables.size(okSize.get().getValues()));
        // dns name problems
        try {
            nameError.get();
            fail();
        } catch (DnsException ex) {
            // expected
            assertEquals(400, ex.getCode());
            assertFalse(ex.isRetryable());
        }
        // ok name
        zones = filter(okName.get().iterateAll().iterator());
        assertEquals(1, zones.size());
        // field options
        Iterator<Zone> zoneIterator = idResult.get().iterateAll().iterator();
        Zone zone = zoneIterator.next();
        assertNull(zone.getCreationTimeMillis());
        assertNotNull(zone.getName());
        assertNull(zone.getDnsName());
        assertNull(zone.getDescription());
        assertNull(zone.getNameServerSet());
        assertTrue(zone.getNameServers().isEmpty());
        assertNotNull(zone.getGeneratedId());
        assertFalse(zoneIterator.hasNext());
        zoneIterator = timeResult.get().iterateAll().iterator();
        zone = zoneIterator.next();
        assertNotNull(zone.getCreationTimeMillis());
        assertNotNull(zone.getName());
        assertNull(zone.getDnsName());
        assertNull(zone.getDescription());
        assertNull(zone.getNameServerSet());
        assertTrue(zone.getNameServers().isEmpty());
        assertNull(zone.getGeneratedId());
        assertFalse(zoneIterator.hasNext());
        zoneIterator = dnsNameResult.get().iterateAll().iterator();
        zone = zoneIterator.next();
        assertNull(zone.getCreationTimeMillis());
        assertNotNull(zone.getName());
        assertNotNull(zone.getDnsName());
        assertNull(zone.getDescription());
        assertNull(zone.getNameServerSet());
        assertTrue(zone.getNameServers().isEmpty());
        assertNull(zone.getGeneratedId());
        assertFalse(zoneIterator.hasNext());
        zoneIterator = descriptionResult.get().iterateAll().iterator();
        zone = zoneIterator.next();
        assertNull(zone.getCreationTimeMillis());
        assertNotNull(zone.getName());
        assertNull(zone.getDnsName());
        assertNotNull(zone.getDescription());
        assertNull(zone.getNameServerSet());
        assertTrue(zone.getNameServers().isEmpty());
        assertNull(zone.getGeneratedId());
        assertFalse(zoneIterator.hasNext());
        zoneIterator = nameServersResult.get().iterateAll().iterator();
        zone = zoneIterator.next();
        assertNull(zone.getCreationTimeMillis());
        assertNotNull(zone.getName());
        assertNull(zone.getDnsName());
        assertNull(zone.getDescription());
        assertNull(zone.getNameServerSet());
        assertFalse(zone.getNameServers().isEmpty());
        assertNull(zone.getGeneratedId());
        assertFalse(zoneIterator.hasNext());
        zoneIterator = nameServerSetResult.get().iterateAll().iterator();
        zone = zoneIterator.next();
        assertNull(zone.getCreationTimeMillis());
        assertNotNull(zone.getName());
        assertNull(zone.getDnsName());
        assertNull(zone.getDescription());
        // we cannot set it using google-cloud
        assertNull(zone.getNameServerSet());
        assertTrue(zone.getNameServers().isEmpty());
        assertNull(zone.getGeneratedId());
        assertFalse(zoneIterator.hasNext());
        // several combined
        zones = filter(combinationResult.get().iterateAll().iterator());
        assertEquals(2, zones.size());
        for (Zone current : zones) {
            assertNull(current.getCreationTimeMillis());
            assertNotNull(current.getName());
            assertNull(current.getDnsName());
            assertNotNull(current.getDescription());
            assertNull(current.getNameServerSet());
            assertTrue(zone.getNameServers().isEmpty());
            assertNotNull(current.getGeneratedId());
        }
    } finally {
        DNS.delete(ZONE1.getName());
        DNS.delete(ZONE_EMPTY_DESCRIPTION.getName());
    }
}
Also used : DnsException(com.google.cloud.dns.DnsException) Zone(com.google.cloud.dns.Zone) Page(com.google.api.gax.paging.Page) DnsBatch(com.google.cloud.dns.DnsBatch) Test(org.junit.Test)

Example 8 with Page

use of com.google.api.gax.paging.Page in project jetty-runtime by GoogleCloudPlatform.

the class LoggingIntegrationTest method testLogging.

@Test
@RemoteOnly
public void testLogging() throws Exception {
    // Create unique ID to relate request with log entries
    String id = Long.toHexString(System.nanoTime());
    // Hit the DumpServlet that will log the request path
    URI target = getUri().resolve("/dump/info/" + id);
    HttpURLConnection http = HttpUrlUtil.openTo(target);
    assertThat(http.getResponseCode(), is(200));
    String responseBody = HttpUrlUtil.getResponseBody(http);
    List<String> lines = new BufferedReader(new StringReader(responseBody)).lines().collect(Collectors.toList());
    assertThat(lines.stream().filter(s -> s.startsWith("requestURI=")).findFirst().get(), containsString(id));
    String traceId = lines.stream().filter(s -> s.startsWith("X-Cloud-Trace-Context: ")).findFirst().get().split("[ /]")[1];
    assertThat(traceId, Matchers.notNullValue());
    LoggingOptions options = LoggingOptions.getDefaultInstance();
    String filter = "resource.type=gae_app AND resource.labels.module_id=smoke" + " AND textPayload:" + id;
    int expected = 2;
    try (Logging logging = options.getService()) {
        Page<LogEntry> entries = logging.listLogEntries(EntryListOption.filter(filter));
        for (LogEntry entry : entries.iterateAll()) {
            if (entry.getSeverity() == Severity.INFO) {
                assertThat(entry.getLogName(), is("gae_app.log"));
                assertThat(entry.getResource().getType(), is("gae_app"));
                assertThat(entry.getResource().getLabels().get("module_id"), is("smoke"));
                assertThat(entry.getResource().getLabels().get("zone"), Matchers.notNullValue());
                assertThat(entry.getLabels().get("appengine.googleapis.com/trace_id"), is(traceId));
                assertThat(entry.getLabels().get("appengine.googleapis.com/instance_name"), Matchers.notNullValue());
                if (entry.getPayload().toString().contains("JUL.info:/dump/info/")) {
                    expected--;
                    assertThat(entry.getPayload().toString(), Matchers.containsString(id));
                }
                if (entry.getPayload().toString().contains("ServletContext.log:/dump/info")) {
                    expected--;
                    assertThat(entry.getPayload().toString(), Matchers.containsString(id));
                }
            }
        }
        assertThat(expected, is(0));
    }
}
Also used : CoreMatchers.is(org.hamcrest.CoreMatchers.is) HttpURLConnection(java.net.HttpURLConnection) Page(com.google.api.gax.paging.Page) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) LogEntry(com.google.cloud.logging.LogEntry) HttpUrlUtil(com.google.cloud.runtime.jetty.util.HttpUrlUtil) Matchers(org.hamcrest.Matchers) Test(org.junit.Test) Severity(com.google.cloud.logging.Severity) Collectors(java.util.stream.Collectors) List(java.util.List) StringReader(java.io.StringReader) LoggingOptions(com.google.cloud.logging.LoggingOptions) EntryListOption(com.google.cloud.logging.Logging.EntryListOption) AbstractIntegrationTest(com.google.cloud.runtime.jetty.test.AbstractIntegrationTest) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) Logging(com.google.cloud.logging.Logging) BufferedReader(java.io.BufferedReader) URI(java.net.URI) Assert(org.junit.Assert) RemoteOnly(com.google.cloud.runtime.jetty.test.annotation.RemoteOnly) Logging(com.google.cloud.logging.Logging) HttpURLConnection(java.net.HttpURLConnection) BufferedReader(java.io.BufferedReader) StringReader(java.io.StringReader) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) LoggingOptions(com.google.cloud.logging.LoggingOptions) URI(java.net.URI) LogEntry(com.google.cloud.logging.LogEntry) RemoteOnly(com.google.cloud.runtime.jetty.test.annotation.RemoteOnly) Test(org.junit.Test) AbstractIntegrationTest(com.google.cloud.runtime.jetty.test.AbstractIntegrationTest)

Aggregations

Page (com.google.api.gax.paging.Page)8 Test (org.junit.Test)8 DnsBatch (com.google.cloud.dns.DnsBatch)4 ChangeRequest (com.google.cloud.dns.ChangeRequest)3 DnsException (com.google.cloud.dns.DnsException)3 Zone (com.google.cloud.dns.Zone)3 DnsRpc (com.google.cloud.dns.spi.v1.DnsRpc)3 RpcBatch (com.google.cloud.dns.spi.v1.RpcBatch)3 Map (java.util.Map)3 ChangesListResponse (com.google.api.services.dns.model.ChangesListResponse)1 ManagedZone (com.google.api.services.dns.model.ManagedZone)1 ManagedZonesListResponse (com.google.api.services.dns.model.ManagedZonesListResponse)1 ResourceRecordSet (com.google.api.services.dns.model.ResourceRecordSet)1 ResourceRecordSetsListResponse (com.google.api.services.dns.model.ResourceRecordSetsListResponse)1 ProjectInfo (com.google.cloud.dns.ProjectInfo)1 RecordSet (com.google.cloud.dns.RecordSet)1 LogEntry (com.google.cloud.logging.LogEntry)1 Logging (com.google.cloud.logging.Logging)1 EntryListOption (com.google.cloud.logging.Logging.EntryListOption)1 LoggingOptions (com.google.cloud.logging.LoggingOptions)1