1. 27 Oct, 2015 19 commits
    • Alex Pyrgiotis's avatar
      3610d899
    • Alex Pyrgiotis's avatar
      cyclades: Add command for syncing helper servers · 1ce3f5d4
      Alex Pyrgiotis authored
      Add an snf-manage command that syncs helper servers across Ganeti
      backends. This script ensures that each Ganeti backend will have N
      helper VMs, and all VMs will be in STOPPED state.
      1ce3f5d4
    • Alex Pyrgiotis's avatar
      cyclades: Do not fail if disk name is UUID · 5b931d61
      Alex Pyrgiotis authored
      Some old Archipelago volumes do not have the usual name format
      (snf-vol-<id>).  Instead, they have a format that is similar to a UUID,
      and from which we cannot extract the volume id. In these cases, we need
      to make a query in order to obtain the volume's id.
      5b931d61
    • Alex Pyrgiotis's avatar
      cyclades: Add legacy_backend_volume_uuid field · eb1d2dc1
      Alex Pyrgiotis authored
      The rationale for this change is explained in the design document of
      detachable volumes, in the "Backend names of existing volumes" section.
      
      In a gist, volumes that were created prior to Archipelago version
      0.4.1-2 used the Ganeti parameter VOL_NAME as their name, instead of
      VOL_CNAME. Since we need a common name for a volume across Ganeti
      clusters and VOL_NAME changes after a detachment, we need a way to make
      VOL_CNAME evaluate to the initial VOL_NAME of the volume. To do so, we
      need an extra field ("legacy_backend_volume_uuid") to store that info.
      
      Moreover, we also need a schema migration to create a new column in the
      Cyclades DB, as well as a migration script that will get the necessary
      info from Ganeti and store them in this field.
      eb1d2dc1
    • Alex Pyrgiotis's avatar
      docs: Add Cyclades API extensions guide · cb013c96
      Alex Pyrgiotis authored
      The Cyclades API Extensions guide currently documents the
      **os-volume_attachments** API endpoint. The API is compatible with the
      OpenStack equivalent action, which can be seen in the OpenStack docs
      [1].
      
      [1] http://developer.openstack.org/api-ref-compute-v2-ext.html
      cb013c96
    • Alex Pyrgiotis's avatar
      cyclades: Extend delete volume action · 3c421d0d
      Alex Pyrgiotis authored
      Extend the delete volume action to handle two more cases:
      
      1) Uninitialized standalone volumes: These are volumes that have been
      created in the DB but have not been created in the backend yet. This is
      an easy case to handle, as we can delete the volume instantly.
      2) Detached volumes: These are volumes that have been created in the
      backend and are not currently attached to any server. In order to delete
      these volumes, we must first attach them to a helper server and then
      issue a delete.
      3c421d0d
    • Alex Pyrgiotis's avatar
      cyclades: Create helper servers using snf-manage · 011ac48f
      Alex Pyrgiotis authored
      Use the `server-create` snf-manage command to create a helper server.
      The process of creating a helper server is the same as the process of
      creating a normal server, with the exception that the administrator must
      specify the `--helper` switch to `server-create`.
      011ac48f
    • Alex Pyrgiotis's avatar
      cyclades: Implement detach volume action · 795bb9c2
      Alex Pyrgiotis authored
      The detach functionality is available for detachable volumes which are
      in "IN USE" status. In order to make the detach work, we send to Ganeti
      a remove action and with that, a parameter called "keep_disks". This
      parameter exists only in snf-ganeti and when passed to Ganeti, it skips
      the removal of the disk.
      
      Moreover, re-implement the delete functionality, which previously was in
      the place of the detach action (since the volume was deleted after being
      detached). The re-implemented delete function will have the same
      capabilities as before, meaning that it will not be able to delete
      detached volumes. This will be available in the following commits.
      795bb9c2
    • Alex Pyrgiotis's avatar
      cyclades: Implement attach volume action · f07aa6d0
      Alex Pyrgiotis authored
      The attach functionality is available for detachable volumes which are
      in "AVAILABLE" status. In order to make the attach work, we send to
      Ganeti an ExtStorage parameter called "reuse_data", which hints the
      storage backend to not create a new disk but reuse an existing one,
      provided that the volume has been initialized.
      f07aa6d0
    • Alex Pyrgiotis's avatar
      cyclades: Implement creation of standalone volumes · bcf6381f
      Alex Pyrgiotis authored
      Allow the creation of volumes that are not attached to any server. Such
      volumes can be created only from detachable volume types.
      
      The API changes for this feature are trivial; we simply do not require a
      server id when creating a volume, which is after all compatible with the
      OpenStack API. If the user does provide a server id after all, then we
      retain backwards compatibility by creating and attaching this volume to
      the server in one action.
      bcf6381f
    • Alex Pyrgiotis's avatar
      cyclades: Wrap volume assignment in a function · 4acfe317
      Alex Pyrgiotis authored
      Add helper function `assign_volume_to_server` that works at DB level and
      associates the volume with a server. In a nutshell, this function
      ensures that the proper index will be assigned to the volume and that
      the `machine` field of the volume will point to the server.
      4acfe317
    • Alex Pyrgiotis's avatar
      cyclades: Add checks for detachable volume types · 64d2e78c
      Alex Pyrgiotis authored
      Add two checks for detachable volume types, one that returns a Boolean
      value and an assertion that raises BadRequest if the volume is not
      detachable.
      
      Also, add some unit tests for these checks.
      64d2e78c
    • Alex Pyrgiotis's avatar
      cyclades: Add detachable volume types in settings · c1970087
      Alex Pyrgiotis authored
      Add `CYCLADES_DETACHABLE_VOLUME_TYPES` setting, in order to separate the
      detachable volume types from the rest.
      c1970087
    • Alex Pyrgiotis's avatar
      cyclades: Add `origin_size` in Volume fields · 3a6b7f5e
      Alex Pyrgiotis authored
      Add the `origin_size` parameter as a field of the Volume model. This
      parameter is passed during volume creation to Ganeti and is used only
      for that operation. Also, create a schema migration for this field.
      
      There is no need for data migration for this field since if a volume has
      already been created, `origin_size` is no longer necessary and we can
      carry on using the `size` parameter.
      3a6b7f5e
    • Alex Pyrgiotis's avatar
      cyclades: Import volume module as volume_actions · 13cdcae1
      Alex Pyrgiotis authored
      Import the "volume" module as "volume_actions", in order not to clash
      with any variables called "volume" in the code.
      13cdcae1
    • Alex Pyrgiotis's avatar
      cyclades: Fix wrong function call · c0121575
      Alex Pyrgiotis authored
      c0121575
    • Alex Pyrgiotis's avatar
      cyclades: Fix typo · 73d48f54
      Alex Pyrgiotis authored
      73d48f54
    • Alex Pyrgiotis's avatar
      ci: Add option to upload local packages to server · 76191ed0
      Alex Pyrgiotis authored
      Add an option (--local-package-dir) to upload local Debian packages to
      the snf-deploy local packages directory. These packages will be used
      during the "deploy" phase of snf-ci.
      
      Note that the target package directory will be
      "/var/lib/snf-deploy/packages", which is used by snf-deploy to install
      custom packages.
      76191ed0
    • Alex Pyrgiotis's avatar
      0cf94800
  2. 21 Oct, 2015 1 commit
  3. 20 Oct, 2015 4 commits
  4. 24 Jul, 2015 4 commits
  5. 16 Jul, 2015 3 commits
  6. 14 Jul, 2015 9 commits