Search in sources :

Example 6 with Volume

use of org.openstack4j.model.storage.block.Volume in project camel by apache.

the class VolumeProducer method doUpdate.

private void doUpdate(Exchange exchange) {
    final Message msg = exchange.getIn();
    final String id = msg.getHeader(OpenstackConstants.ID, msg.getHeader(CinderConstants.VOLUME_ID, String.class), String.class);
    final Volume vol = messageToVolume(msg);
    ObjectHelper.notEmpty(id, "Cinder Volume ID");
    ObjectHelper.notEmpty(vol.getDescription(), "Cinder Volume Description");
    ObjectHelper.notEmpty(vol.getName(), "Cinder Volume Name");
    final ActionResponse out = os.blockStorage().volumes().update(id, vol.getName(), vol.getDescription());
    checkFailure(out, msg, "Update volume " + id);
}
Also used : Message(org.apache.camel.Message) Volume(org.openstack4j.model.storage.block.Volume) ActionResponse(org.openstack4j.model.common.ActionResponse)

Example 7 with Volume

use of org.openstack4j.model.storage.block.Volume in project openstack4j by ContainX.

the class VolumeTests method getVolumeV1.

@SuppressWarnings("unchecked")
@Test
public void getVolumeV1() throws Exception {
    // Check get volume
    respondWith("/storage/v1/volume.json");
    Volume volume = osv3().blockStorage().volumes().get("8a9287b7-4f4d-4213-8d75-63470f19f27c");
    RecordedRequest getRequest = server.takeRequest();
    assertTrue(getRequest.getPath().matches("/v[12]/\\p{XDigit}*/volumes/8a9287b7-4f4d-4213-8d75-63470f19f27c"));
    assertEquals(volume.getId(), "8a9287b7-4f4d-4213-8d75-63470f19f27c");
    assertEquals(volume.getName(), "vol-test");
    assertEquals(volume.getDescription(), "a description");
    assertNotNull(volume.getCreated());
    assertEquals(volume.getZone(), "nova");
    assertEquals(volume.getSize(), 100);
    assertEquals(volume.getStatus(), Volume.Status.IN_USE);
    assertEquals(volume.getSnapshotId(), "22222222-2222-2222-2222-222222222222");
    assertEquals(volume.getSourceVolid(), "11111111-1111-1111-1111-111111111111");
    assertEquals(volume.getVolumeType(), "Gold");
    assertNotNull(volume.getMetaData());
    Map<String, String> metadata = volume.getMetaData();
    assertEquals(metadata.get("readonly"), "False");
    assertEquals(metadata.get("attached_mode"), "rw");
    assertNotNull(volume.getAttachments());
    List<VolumeAttachment> attachments = (List<VolumeAttachment>) volume.getAttachments();
    assertEquals(attachments.get(0).getDevice(), "/dev/vdd");
    assertEquals(attachments.get(0).getHostname(), "myhost");
    assertEquals(attachments.get(0).getId(), "8a9287b7-4f4d-4213-8d75-63470f19f27c");
    assertEquals(attachments.get(0).getServerId(), "eaa6a54d-35c1-40ce-831d-bb61f991e1a9");
    assertEquals(attachments.get(0).getVolumeId(), "8a9287b7-4f4d-4213-8d75-63470f19f27c");
    assertEquals(volume.getTenantId(), "b0b5ed7ae06049688349fe43737796d4");
}
Also used : RecordedRequest(okhttp3.mockwebserver.RecordedRequest) VolumeAttachment(org.openstack4j.model.storage.block.VolumeAttachment) Volume(org.openstack4j.model.storage.block.Volume) List(java.util.List) AbstractTest(org.openstack4j.api.AbstractTest) SkipTest(org.openstack4j.api.SkipTest) Test(org.testng.annotations.Test)

Example 8 with Volume

use of org.openstack4j.model.storage.block.Volume in project cloudbreak by hortonworks.

the class OpenStackAttachedDiskResourceBuilder method checkStatus.

@Override
protected boolean checkStatus(OpenStackContext context, AuthenticatedContext auth, CloudResource resource) {
    CloudContext cloudContext = auth.getCloudContext();
    OSClient<?> osClient = createOSClient(auth);
    Volume osVolume = osClient.blockStorage().volumes().get(resource.getReference());
    if (osVolume != null && context.isBuild()) {
        Status volumeStatus = osVolume.getStatus();
        if (Status.ERROR == volumeStatus || Status.ERROR_DELETING == volumeStatus || Status.ERROR_RESTORING == osVolume.getStatus()) {
            throw new OpenStackResourceException("Volume in failed state", resource.getType(), resource.getName(), cloudContext.getId(), volumeStatus.name());
        }
        return volumeStatus == Status.AVAILABLE;
    } else {
        return osVolume == null && !context.isBuild();
    }
}
Also used : Status(org.openstack4j.model.storage.block.Volume.Status) Volume(org.openstack4j.model.storage.block.Volume) CloudContext(com.sequenceiq.cloudbreak.cloud.context.CloudContext) OpenStackResourceException(com.sequenceiq.cloudbreak.cloud.openstack.nativ.OpenStackResourceException)

Aggregations

Volume (org.openstack4j.model.storage.block.Volume)8 Message (org.apache.camel.Message)3 OpenStackResourceException (com.sequenceiq.cloudbreak.cloud.openstack.nativ.OpenStackResourceException)2 List (java.util.List)2 RecordedRequest (okhttp3.mockwebserver.RecordedRequest)2 AbstractTest (org.openstack4j.api.AbstractTest)2 SkipTest (org.openstack4j.api.SkipTest)2 VolumeAttachment (org.openstack4j.model.storage.block.VolumeAttachment)2 Test (org.testng.annotations.Test)2 CloudContext (com.sequenceiq.cloudbreak.cloud.context.CloudContext)1 CloudResource (com.sequenceiq.cloudbreak.cloud.model.CloudResource)1 CinderVolumeView (com.sequenceiq.cloudbreak.cloud.openstack.view.CinderVolumeView)1 ArrayList (java.util.ArrayList)1 Map (java.util.Map)1 Future (java.util.concurrent.Future)1 OS4JException (org.openstack4j.api.exceptions.OS4JException)1 ActionResponse (org.openstack4j.model.common.ActionResponse)1 Status (org.openstack4j.model.storage.block.Volume.Status)1 VolumeBuilder (org.openstack4j.model.storage.block.builder.VolumeBuilder)1