Skip to content

Rackspace Cloud Block Storage Code Samples

Alan Quillin edited this page Apr 25, 2014 · 9 revisions

#CloudBlockStorageProvider Here we will provide samples for basic operation on CloudFilesProvider.

ScreenShot

CloudBlockStorageProvider requires we pass in CloudIdentity.

We can create CloudIdentity by passing any 2 combination. Username/Password or Username/APIKey.

var cloudIdentity = new CloudIdentity() { Username = "username", Password = "password" };

or

var cloudIdentity = new CloudIdentity() { APIKey = "apikey", Username = "username" };

For more information on IdentityProvider

There are 2 ways to pass in the identity credentials to CloudBlockStorageProvider:

  1. In the constructor.

  2. Into each method individually.

Our samples below will assume the identity has been passed into the constructor.

##Volumes

Create Volume

var provider = new CloudBlockStorageProvider();
bool volumeCreatedResponse = provider.CreateVolume(100, "Test Volume Description", 
                                 "Test Volume", null, "SATA", null, cloudIdentity);

List Volumes

var provider = new CloudBlockStorageProvider();
IEnumerable<Volume> volumeListResponse = provider.ListVolumes(null, cloudIdentity);

Show Volume

var provider = new CloudBlockStorageProvider();
Volume singleVolumeResponse = provider.ShowVolume({volume_id}, null, cloudIdentity);

Delete Volume

var provider = new CloudBlockStorageProvider();
bool deleteVolumeResult= provider.DeleteVolume({volume_id}, null, cloudIdentity);

Volume State Helper Methods

Wait For Volume To Be Available

var provider = new CloudBlockStorageProvider();
Volume volumeDetails = provider.WaitForVolumeAvailable({volume_id}, null, cloudIdentity);

Wait For Volume To Be Deleted

var provider = new CloudBlockStorageProvider();
bool volumeWaitForDeletedResult = provider.WaitForVolumeDeleted({volume_id}, null, cloudIdentity);

Wait For Volume Specific State

var provider = new CloudBlockStorageProvider();
Volume volumeWaitForStateResult = provider.WaitForVolumeState({volume_id}, VolumeState.AVAILABLE,
                                                                   new[] { VolumeState.ERROR, VolumeState.ERROR_DELETING }, 
                                                                   10, 5000, null, cloudIdentity);

##Volume Types

List Volume Types

var provider = new CloudBlockStorageProvider();
IEnumerable<VolumeType> volumeTypeListResponse = provider.ListVolumeTypes(null, cloudIdentity);

Describe Volume Type

var provider = new CloudBlockStorageProvider();
VolumeType describeVolumeTypeResponse = provider.DescribeVolumeType({volume_type_id}, null, cloudIdentity);

##Snapshots

Create Snapshot

var provider = new CloudBlockStorageProvider();
bool snapshotCreatedResponse = provider.CreateSnapshot({volume_id}, true, "Test Snapshot Name",
                                                                      "Test Snapshot Description", null,
                                                                      cloudIdentity);

List Snapshots

var provider = new CloudBlockStorageProvider();
IEnumerable<Snapshot> snapshotListResponse = provider.ListSnapshots(null, cloudIdentity);

Show Snapshot

var provider = new CloudBlockStorageProvider();
Snapshot singleSnapshotResponse = provider.ShowSnapshot({snapshot_id}, null, cloudIdentity);

Delete Snapshot

var provider = new CloudBlockStorageProvider();
bool deleteSnapshotResult = provider.DeleteSnapshot({snapshot_id}, null, cloudIdentity);

Snapshot State Helper Methods

Wait For Snapshot To Be Available

var provider = new CloudBlockStorageProvider();
Snapshot snapshotDetails = provider.WaitForSnapshotAvailable({snapshot_id}, null, cloudIdentity);

Wait For Snapshot To Be Deleted

var provider = new CloudBlockStorageProvider();
bool snapshotWaitForDeletedResult = provider.DeleteSnapshot({snapshot_id}, null, cloudIdentity);

Wait For Specific Snapshot State

var provider = new CloudBlockStorageProvider();
Snapshot snapshotWaitForStateResult = provider.WaitForSnapshotState({snapshot_id}, SnapshotState.AVAILABLE,
                                                                   new[] { SnapshotState.ERROR, SnapshotState.ERROR_DELETING }, 
                                                                   10, 5000, null, cloudIdentity);