- 31 Mar, 2014 40 commits
-
-
Christos Stavrakakis authored
Update the 'status' of images as returned in the Compute and Plankton API.
-
Christos Stavrakakis authored
snf-dispatcher supressed almost all exceptions and continued to process new messages. However, this caused snf-dispatcher to ignore Ctl+C when running in debug mode. This commit fixes this be exiting the retry loop if a EINTR code is returned.
-
Christos Stavrakakis authored
Snapshot "uuid" has been replaced with "id" to match with images.
-
Christos Stavrakakis authored
Update the status of snapshots based on notifications about the progress of Ganeti OP_INSTANCE_SNAPSHOT job. Extend snf-ganeti-eventd and snf-dispatcher to create and handle such notifications. Currently, we store the snapshot_id, in a hacky way as a reason in the OP_INSTANCE_SNAPSHOT job.
-
Christos Stavrakakis authored
Also, rename 'checksum' to 'mapfile'.
-
Christos Stavrakakis authored
Also check GANETI_CLONE_PROVIDERS.
-
Christos Stavrakakis authored
Extend Cyclades POST /servers API endpoint to support specifying volumes when creating a server. The call is extended with the 'block_device_mapping_v2' field that contains a list of dictionaries, each of which contains the following information about the devices that the server must have: * source_type: One of'image', 'snapshot', 'volume' or 'blank' * uuid: The UUID of the object that is specified by source_type (if source_type is not blank) * size: The size of the volume * delete_on_termination: Whether the volume will be preserved or automaticaly deleted when the server is deleted If no volume is specified, then a volume is automatically created with the size of the flavor and with source the image that is specified in the 'imageRef' field of the API call. The follow restrictions apply: * Source_type can be other than 'blank', only if the disk template is ext_ or if the volume is created as a root volume of a server, so it will be filled with data by snf-image. * The root volume cannot be blank. * In order to use a volume, it must be in AVAILABLE status. This will never happen until detachable volumes are implemented. However, the user can "clone" a user volume either by creating a new volume from cinder and then using this new volume, or by taking a snapshot and then use the snapshot as a source. * The size field is required if the source is image, snapshot or blank. Also, the size of the volume must be equal or bigger from the source size (if any). Finally, move some code from 'servers' module to 'server_attachments' and 'commands' to avoid cyclic imports.
-
Christos Stavrakakis authored
-
Christos Stavrakakis authored
Extend /servers API with 'os-volume_attachments' endpoint, containing API calls for attaching and detaching volumes to servers, and listing/showing the volumes of a server.
-
Christos Stavrakakis authored
Implement 'attach_volume' and 'detach_volume' server actions. Also, add 'GANETI_MAX_DISKS_PER_INSTANCE' setting, to force a hard limit on the maximum number of disks a server can have.
-
Christos Stavrakakis authored
Implement management command to import an existing Ganeti disk (that has been created directly in the Ganeti backend) to Cyclades, as a new Cyclades Volume.
-
Christos Stavrakakis authored
Extend the 'reconcile-servers' management command, to reconcile the state of Cyclades Volumes with the corresponding disks of instances in the Ganeti backends.
-
Christos Stavrakakis authored
Update snf-dispatcher to handle messages from snf-ganeti-eventd about the instance disks(volumes). Handling of disks is done almost exactly as for NICs.
-
Christos Stavrakakis authored
Extend snf-ganeti-eventd to send the disks of the instance when needed, exactly like it is doing for the NICs of the instance.
-
Christos Stavrakakis authored
-
Christos Stavrakakis authored
-
Christos Stavrakakis authored
* Rename 'name' and 'description' to 'display_name' and 'display_description' in the volume API. * Small refactoring in snapshots methods
-
Christos Stavrakakis authored
* Do not store source_{volume_id, image_id, snapshot_id} as seperate fields. Instead store them in the 'source' field, with a special prefix to indicate the source type. * Add 'origin' field to Volume model to contain the origin that will be passed to Ganeti disk * Check that 'source' option is used only for ext_* volumes * Check that if a volume is used as source, the volume is in 'AVAILABLE' state * Implement deleting a volume by detaching it from the corresponding server. Also, forbid detaching the root volume(index=0) of a server * Rename 'hotplug' to 'hotplug_if_possible' in Ganeti methods. * Rename 'name' and 'description' API attributes to 'display_name' and 'display_description'
-
Christos Stavrakakis authored
-
Christos Stavrakakis authored
-
Christos Stavrakakis authored
Do not allow taking a snapshot from a volume, if the disk template is not ext_*.
-
Christos Stavrakakis authored
Check that the size of the disk is big enough to fit the image.
-
Christos Stavrakakis authored
Update, snf-dispatcher callback functions to delete all volumes of an instance when the instance gets deleted.
-
Christos authored
Extend Ganeti RAPI client with 'SnapshotInstane' method.
-
Christos Stavrakakis authored
-
Christos Stavrakakis authored
Add the 'is_snapshot' attribute to plankton images. Also add methods for getting or deleting a snapshot.
-
Christos Stavrakakis authored
Create tests for volumes.
-
Christos Stavrakakis authored
First implementation of volumes and snapshots.
-
Christos Stavrakakis authored
-
Christos Stavrakakis authored
Create new database models for 'volume' app: * Volume * Snapshot * VolumeMetadata * SnapshotMetadata Also add 'VolumeFactory' and 'SnapshotFactory' model factories.
-
Christos Stavrakakis authored
Initialize a new 'volume' app, which will implement the block storage API of Cyclades.
-
Christos Stavrakakis authored
Add design doc for Cyclades volumes. Also, add links to the design docs for volumes and volume snapshots.
-
Alex Pyrgiotis authored
-
Chrysostomos Nanakos authored
-
Chrysostomos Nanakos authored
-
Christos Stavrakakis authored
-
Chrysostomos Nanakos authored
-
Sofia Papagiannaki authored
-
Sofia Papagiannaki authored
-
Sofia Papagiannaki authored
-