1. 01 Sep, 2014 1 commit
    • Buildbot's avatar
      cyclades: Add GANETI_DISKS_WAIT_FOR_SYNC option · d70e2040
      Buildbot authored
      Add new setting to denote whether Ganeti will wait for the disk mirror to
      sync (DRBD). This setting is used when creating a new instance or adding
      a new disk to an existing Ganeti instance.
      d70e2040
  2. 25 Aug, 2014 1 commit
  3. 07 Aug, 2014 1 commit
    • Christos Stavrakakis's avatar
      cyclades: Fix small issues with snapshots · c677ddae
      Christos Stavrakakis authored
      * fix IndexError in snf-ganeti-event when processing an
        OP_INSTANCE_SNAPSHOT operation without defining --disk option.
      * fix TypeError in snf-dispatcher when processing an
        OP_INSTANCE_SNAPSHOT without snapshot information.
      
      Both issues are caused by using directly the 'gnt-instance snaspshot'
      command.
      c677ddae
  4. 05 Aug, 2014 1 commit
    • Christos Stavrakakis's avatar
      cyclades: Pass the size of volume's origin · 1716bb42
      Christos Stavrakakis authored
      ..to Archipelago, as 'origin_size' parameter.
      
      Currently, the volume object is annotated with the size of the origin,
      but this information is not stored in DB. This will have to be changed
      when Synnefo supports detachable volumes.
      1716bb42
  5. 08 Jul, 2014 4 commits
    • Christos Stavrakakis's avatar
      cyclades: Delete volumes after quota handling · db8afb92
      Christos Stavrakakis authored
      When processing an 'OP_INSTANCE_REMOVE' job, delete the volumes after
      handling of the quotas. Otherwise, the quota mechanism will see no
      active volumes and the quotas will get unsynchronized.
      db8afb92
    • Christos Stavrakakis's avatar
      cyclades: Extra disk params when attaching volumes · a151e001
      Christos Stavrakakis authored
      When attaching a volume to an instance, use the
      'GANETI_DISK_PROVIDER_KWARGS' setting to let the administrator pass
      extra parameters to the Ganeti ExtStorage provider (exactly like in
      instance creation).
      a151e001
    • Christos Stavrakakis's avatar
      cyclades: Rename 'backend_id' to 'pithosmap' · 01e9f6d6
      Christos Stavrakakis authored
      Rename the 'backend_id' attribute of images to 'pithosmap'.
      01e9f6d6
    • Christos Stavrakakis's avatar
      Make Cyclades work with Archipelago v2 and Pithos · c650a03e
      Christos Stavrakakis authored
      Recent commits have integrated Archipelago v2 mapfiles to Pithos. This
      commit updates Cyclades to go along with the recent changes in Pithos.
      Specifically, this commit makes the following changes:
      
      * Use the 'mapfile' attribute of the Pithos objects, instead of the old 'hash'
        attribute. Also, this attribute needs no custom prefixing
        ('archip:' or 'pithos:').
      * Do not store 'is_snapshot' and 'status' attributes as plankton
        properties. The 'is_snapshot' attribute is now provided from Pithos.
        Also, the 'status' attribute can be derived from the 'available'
        attribute.
      * Remove code from 'snf-dispatcher' that used to update the 'status'
        plankton property when the OP_INSTANCE_SNAPSHOT Ganeti job completed.
        This functionality is now covered internally from Pithos.
      c650a03e
  6. 01 Jul, 2014 2 commits
    • Christos Stavrakakis's avatar
      cyclades: Fix corner case when updating vm disks · 3c70f692
      Christos Stavrakakis authored
      Fix a corner case when updating the disks of an instance, in
      snf-dispatcher and reconciliation. This corner case is when a VM has both:
      
      * unknown Ganeti instances (without a unique Synnefo ID)
      * volumes that exist in DB but not in Ganeti
      
      Such a case cannot be fixed automatically, and should be resolved by the
      administrator. This case will also appear during the upgrade to version
      0.16.
      3c70f692
    • Christos Stavrakakis's avatar
      cyclades: Automatically adopt unknown Ganeti disks · dd17d1ae
      Christos Stavrakakis authored
      Update 'snf-dispatcher' and 'reconciliation' mechanism to automatically
      adopt unknown disks of Ganeti instances. Adoption is performed by
      creating a Cyclades Volume and then renaming the instance's disk with
      the volume's uuid (snf-vol-%id). The quotas for the new volume are
      charged to the server's project.
      dd17d1ae
  7. 26 Jun, 2014 1 commit
  8. 24 Jun, 2014 1 commit
    • Dimitris Aragiorgis's avatar
      cyclades: Fix backend logic wrt ConnectNetwork · d1283222
      Dimitris Aragiorgis authored
      Since Ganeti 2.10, networks are connected to nodegroups with mode,
      link and vlan info.
      
      As a result group_list in GetNetwork() response include four fields
      per group and not three. Fix reconciliation to be aware of it.
      
      Additionally the OpNetworkConnect() takes an extra parameter;
      network_vlan. This currently is not optional. Therefore let
      ConnectNetwork() RAPI method pass an empty string as vlan info.
      
      This will change as soon as synnefo will support private networks on
      top of openvswitch.
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      d1283222
  9. 23 Jun, 2014 1 commit
  10. 02 Jun, 2014 1 commit
  11. 14 May, 2014 1 commit
  12. 14 Apr, 2014 1 commit
    • Vangelis Koukis's avatar
      Switch license to GPLv3 · 02071b96
      Vangelis Koukis authored
      According to the decision of the GRNET Board of Directors,
      switch license to GPLv3.
      
      This commit will be propagated to the release
      and master branches based on git flow, and the next
      release will be licensed as GPLv3.
      02071b96
  13. 04 Apr, 2014 1 commit
  14. 31 Mar, 2014 14 commits
    • Christos Stavrakakis's avatar
      cyclades: Check GanetiApiError exception code · 3da74f51
      Christos Stavrakakis authored
      Fix bug when quering Ganeti to check if a VM, NIC or Network is stale.
      The code wrongly regarded every Ganeti API error as the resource to be
      missing from Ganeti (404 code). This commit fixes this issue by
      explicitly checking the exception code.
      3da74f51
    • Christos Stavrakakis's avatar
      cyclades: Update volume and snapshots commands · c736bef3
      Christos Stavrakakis authored
      Create new management commands:
      
      * snapshot-modify
      * snapshot-show
      * volume-modify
      
      Also, fix various small issues in other commands.
      c736bef3
    • Christos Stavrakakis's avatar
      cyclades: Count quotas for volumes · 16578880
      Christos Stavrakakis authored
      Update Cyclades quotas to count the size of the Volumes in the
      'cyclades.disk' resources:
      
      * Update server creation to count disk quota, not based on the server
        flavor, but on the newly created volumes (those volume which are in
        'CREATING' status)
      * Update volume attach/detach server commands to pass a list of quotable
        volume changes
      * Update snf-dispatcher to check if an unexpected Ganeti job changes the
        disks of an instance. Only disks from which the Synnefo is aware (and
        so the exist in DB as Volumes) are taken into account.
      * Update quota reconciliation mechanism to count 'cyclades.disk' based
        on user volumes.
      16578880
    • Christos Stavrakakis's avatar
      042f07c3
    • Christos Stavrakakis's avatar
      cyclades: Process the progress of snapshots · bf40d735
      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.
      bf40d735
    • Christos Stavrakakis's avatar
      cyclades: Add 'disk_template' to Volumes · 57469aaa
      Christos Stavrakakis authored
      Also check GANETI_CLONE_PROVIDERS.
      57469aaa
    • Christos Stavrakakis's avatar
      cyclades: Create servers with volumes · fc96f8c6
      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.
      fc96f8c6
    • Christos Stavrakakis's avatar
      cyclades: Implement reconciliation for volumes · 4244dfba
      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.
      4244dfba
    • Christos Stavrakakis's avatar
      cyclades: Make snf-dispatcher handle volumes · d9f13745
      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.
      d9f13745
    • Christos Stavrakakis's avatar
      cyclades: Various fixes relative for volumes · 6487b4f5
      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'
      6487b4f5
    • Christos Stavrakakis's avatar
      cyclades: Delete volumes together with instance · a7617c40
      Christos Stavrakakis authored
      Update, snf-dispatcher callback functions to delete all volumes of
      an instance when the instance gets deleted.
      a7617c40
    • Christos's avatar
      cyclades: Add SnapshotInstance RAPI method · a8732cfd
      Christos authored
      Extend Ganeti RAPI client with 'SnapshotInstane' method.
      a8732cfd
    • Christos Stavrakakis's avatar
      b1cdaeab
    • Christos Stavrakakis's avatar
      cyclades: Implement volumes and snapshots · b7a83431
      Christos Stavrakakis authored
      First implementation of volumes and snapshots.
      b7a83431
  15. 10 Mar, 2014 1 commit
  16. 05 Mar, 2014 1 commit
    • Christos Stavrakakis's avatar
      cyclades: Check VM state when getting vnc console · a8110fa2
      Christos Stavrakakis authored
      vncauthproxy will return error status if the instance is not running.
      Cyclades check that the VM in marked as started in DB before allowing a
      console action. However, the VM may be stopped without Cyclades knowing
      it (unsynced state). This commit fixes this issue by checking the VM is
      actually running, by looking the 'oper_state' field in the result of the
      query, that is already performed to get the instance host and port. In
      case the VM is stopped, state is reconciled by issuing a mocked
      'OP_INSTANCE_SHUTDOWN' Ganeti job, that will take care of state and
      quotas.
      
      Also, remove use of 'TEST' setting that was used for unittests. Instead,
      properly mock Ganeti and vncauthproxy responses.
      a8110fa2
  17. 23 Jan, 2014 1 commit
  18. 20 Jan, 2014 1 commit
    • Christos Stavrakakis's avatar
      cyclades: Fix quota bug in snf-dispatcher · 6cb9dfa0
      Christos Stavrakakis authored
      Clear the 'vm.serial' field after processing a job that was not
      expected. When processing such a job, we reject the pending commission
      and issue a new one that reflects the unexpected job. However, since we
      reject the commission that is associated with the 'vm.task_job_id' job,
      we must also clear the expected serial. Otherwise, when the
      'vm.task_job_id' completes, we will not issue a new commission as it is
      needed.
      6cb9dfa0
  19. 10 Jan, 2014 1 commit
  20. 20 Dec, 2013 1 commit
  21. 19 Dec, 2013 2 commits
  22. 16 Dec, 2013 1 commit