public Volume build() { return new Volume(region, id, size, snapshotId, availabilityZone, status, createTime, attachments); }
public Builder toBuilder() { return builder().fromVolume(this); }
public boolean apply(Volume volume) { logger.trace("looking for status on volume %s", volume.getId()); volume = Iterables.getOnlyElement(client.describeVolumesInRegion(volume.getRegion(), volume .getId())); logger.trace("%s: looking for status %s: currently: %s", volume, Volume.Status.AVAILABLE, volume.getStatus()); return volume.getStatus() == Volume.Status.AVAILABLE; }
@Test(dependsOnMethods = "testCreateVolumeFromSnapshotInAvailabilityZoneWithOptions") void testCreateVolumeFromSnapshotInAvailabilityZoneWithSize() { Volume volume = client.createVolumeFromSnapshotInAvailabilityZone(defaultZone, 2, snapshot.getId()); assertNotNull(volume); Predicate<Volume> availabile = retry(new VolumeAvailable(client), 600, 10, SECONDS); assert availabile.apply(volume); Volume result = Iterables.getOnlyElement(client.describeVolumesInRegion(defaultRegion, volume.getId())); assertEquals(volume.getId(), result.getId()); assertEquals(volume.getSnapshotId(), snapshot.getId()); assertEquals(volume.getAvailabilityZone(), defaultZone); assertEquals(volume.getSize(), 2); assertEquals(result.getStatus(), Volume.Status.AVAILABLE); client.deleteVolumeInRegion(defaultRegion, result.getId()); }
@Test(enabled = false, dependsOnMethods = "testBundleInstance") void testAMIFromBundle() { volume = Iterables.getOnlyElement(client.getElasticBlockStoreApi().get().describeVolumesInRegion( volume.getRegion(), volume.getId())); if (!volume.getAttachments().isEmpty()) { client.getElasticBlockStoreApi().get().detachVolumeInRegion(instance.getRegion(), volume.getId(), false); System.out.printf("%d: %s awaiting detachment to complete%n", System.currentTimeMillis(), volume.getId()); assert volumeTester.apply(volume); } else { snapshot = client.getElasticBlockStoreApi().get().createSnapshotInRegion(volume.getRegion(), volume.getId(), withDescription("EBS Ubuntu Hardy"));
@Test void testCreateVolumeInAvailabilityZoneWithVolumeType() { Volume expected = client.createVolumeInAvailabilityZone(defaultZone, volumeType("gp2"), withSize(1)); assertNotNull(expected); assertEquals(expected.getAvailabilityZone(), defaultZone); assertEquals(expected.getVolumeType(), "gp2"); Set<Volume> result = Sets.newLinkedHashSet(client.describeVolumesInRegion(defaultRegion, expected.getId())); assertNotNull(result); assertEquals(result.size(), 1); Volume volume = result.iterator().next(); assertEquals(volume.getId(), expected.getId()); assertEquals(volume.getVolumeType(), expected.getVolumeType()); client.deleteVolumeInRegion(volume.getRegion(), volume.getId()); }
Snapshot snapshot = ebsClient.createSnapshotInRegion(volume.getRegion(), volume.getId()); ebsClient.deleteVolumeInRegion(volume.getRegion(), volume.getId()); device.getVolumeId())); assertEquals(volumeSize, volume.getSize()); device.getVolumeId())); assertEquals(volumeSize, volume.getSize()); assertEquals(snapshot.getId(), volume.getSnapshotId());
client.getElasticBlockStoreApi().get().detachVolumeInRegion(volume.getRegion(), volume.getId(), true); assert volumeTester.apply(volume); } catch (Exception e) { client.getElasticBlockStoreApi().get().deleteVolumeInRegion(volume.getRegion(), volume.getId()); } catch (Exception e) { e.printStackTrace();
@Test void testDescribeVolumes() { String region = defaultRegion; SortedSet<Volume> allResults = Sets.newTreeSet(client.describeVolumesInRegion(region)); assertNotNull(allResults); assertFalse(allResults.isEmpty()); Volume volume = allResults.last(); SortedSet<Volume> result = Sets.newTreeSet(client.describeVolumesInRegion(region, volume.getId())); assertNotNull(result); Volume compare = result.last(); assertEquals(compare, volume); }
public boolean apply(Attachment attachment) { logger.trace("looking for volume %s", attachment.getVolumeId()); Volume volume = Iterables.getOnlyElement(client.describeVolumesInRegion(attachment .getRegion(), attachment.getVolumeId())); if (volume.getAttachments().size() == 0) { return false; } Attachment lastAttachment = Sets.newTreeSet(volume.getAttachments()).last(); logger.trace("%s: looking for status %s: currently: %s", lastAttachment, Attachment.Status.ATTACHED, lastAttachment.getStatus()); return lastAttachment.getStatus() == Attachment.Status.ATTACHED; }
@Test void testCreateVolumeInAvailabilityZone() { Volume expected = client.createVolumeInAvailabilityZone(defaultZone, withSize(1)); assertNotNull(expected); assertEquals(expected.getAvailabilityZone(), defaultZone); this.volumeId = expected.getId(); Set<Volume> result = Sets.newLinkedHashSet(client.describeVolumesInRegion(defaultRegion, expected.getId())); assertNotNull(result); assertEquals(result.size(), 1); Volume volume = result.iterator().next(); assertEquals(volume.getId(), expected.getId()); assertEquals(volume.getVolumeType(), expected.getVolumeType()); }
@Test void testCreateVolumeInAvailabilityZone() { Volume expected = client.createVolumeInAvailabilityZone(defaultZone, 1); assertNotNull(expected); assertEquals(expected.getAvailabilityZone(), defaultZone); this.volumeId = expected.getId(); Set<Volume> result = Sets.newLinkedHashSet(client.describeVolumesInRegion(defaultRegion, expected.getId())); assertNotNull(result); assertEquals(result.size(), 1); Volume volume = result.iterator().next(); assertEquals(volume.getId(), expected.getId()); }
@Test(dependsOnMethods = "testCreateSnapshotInRegion") void testDeleteVolumeInRegion() { client.deleteVolumeInRegion(defaultRegion, volumeId); Set<Volume> result = Sets.newLinkedHashSet(client.describeVolumesInRegion(defaultRegion, volumeId)); assertEquals(result.size(), 1); Volume volume = result.iterator().next(); assertEquals(volume.getStatus(), Volume.Status.DELETING); }
@Test(dependsOnMethods = "testCreateSnapshotInRegion") void testCreateVolumeFromSnapshotInAvailabilityZone() { Volume volume = client.createVolumeFromSnapshotInAvailabilityZone(defaultZone, snapshot.getId()); assertNotNull(volume); Predicate<Volume> availabile = retry(new VolumeAvailable(client), 600, 10, SECONDS); assert availabile.apply(volume); Volume result = Iterables.getOnlyElement(client.describeVolumesInRegion(defaultRegion, volume.getId())); assertEquals(volume.getId(), result.getId()); assertEquals(volume.getSnapshotId(), snapshot.getId()); assertEquals(volume.getAvailabilityZone(), defaultZone); assertEquals(result.getStatus(), Volume.Status.AVAILABLE); client.deleteVolumeInRegion(defaultRegion, result.getId()); }
@Test(enabled = false, dependsOnMethods = "testBundleInstance") void testAMIFromBundle() { volume = Iterables.getOnlyElement(client.getElasticBlockStoreServices().describeVolumesInRegion( volume.getRegion(), volume.getId())); if (volume.getAttachments().size() > 0) { client.getElasticBlockStoreServices().detachVolumeInRegion(instance.getRegion(), volume.getId(), false); System.out.printf("%d: %s awaiting detachment to complete%n", System.currentTimeMillis(), volume.getId()); assert volumeTester.apply(volume); } else { snapshot = client.getElasticBlockStoreServices().createSnapshotInRegion(volume.getRegion(), volume.getId(), withDescription("EBS Ubuntu Hardy"));
Snapshot snapshot = ebsClient.createSnapshotInRegion(volume.getRegion(), volume.getId()); ebsClient.deleteVolumeInRegion(volume.getRegion(), volume.getId()); device.getVolumeId())); assertEquals(volumeSize, volume.getSize()); device.getVolumeId())); assertEquals(volumeSize, volume.getSize()); assertEquals(snapshot.getId(), volume.getSnapshotId());
client.getElasticBlockStoreServices().detachVolumeInRegion(volume.getRegion(), volume.getId(), true); assert volumeTester.apply(volume); } catch (Exception e) { client.getElasticBlockStoreServices().deleteVolumeInRegion(volume.getRegion(), volume.getId()); } catch (Exception e) { e.printStackTrace();
@Test(expectedExceptions = AWSResponseException.class) void testDescribeVolumesWithInvalidFilter() { String region = defaultRegion; SortedSet<Volume> allResults = Sets.newTreeSet(client.describeVolumesInRegion(region)); assertNotNull(allResults); assertFalse(allResults.isEmpty()); Volume volume = allResults.last(); client.describeVolumesInRegionWithFilter(region, ImmutableMultimap.<String, String>builder() .put("invalid-filter", volume.getId()).build()); }
public boolean apply(Attachment attachment) { logger.trace("looking for volume %s", attachment.getVolumeId()); Volume volume = Iterables.getOnlyElement(client.describeVolumesInRegion(attachment .getRegion(), attachment.getVolumeId())); if (volume.getAttachments().size() == 0) { return false; } Attachment lastAttachment = Sets.newTreeSet(volume.getAttachments()).last(); logger.trace("%s: looking for status %s: currently: %s", lastAttachment, Attachment.Status.ATTACHED, lastAttachment.getStatus()); return lastAttachment.getStatus() == Attachment.Status.ATTACHED; }
@Test(dependsOnMethods = "testGetCreateVolumePermissionForSnapshot") void testDeleteVolumeInRegion() { client.deleteVolumeInRegion(defaultRegion, volumeId); Set<Volume> volumes = client.describeVolumesInRegionWithFilter(defaultRegion, ImmutableMultimap .<String, String> builder().put("volume-id", volumeId).build()); // The volume may not exist or remain in "deleting" state for a while Volume volume = getOnlyElement(volumes, null); assertTrue(volume == null || Status.DELETING == volume.getStatus()); }