1. 06 Nov, 2014 1 commit
    • Christos Stavrakakis's avatar
      Set required umask for snf-manage commands · 2b9213a6
      Christos Stavrakakis authored
      In order to communicate with Archipelago, Pithos backend needs to create
      named pipes (under '/var/run/shm/posixfd') that can be read/written by the
      group that Archipelago is running. This is achieved by using 'setgid' in the
      specified directory combined with a proper 'umask'. For Gunicorn workers, the
      umask is set by gunicorn-hooks. However, snf-manage commands did not set the
      needed umask which resulted in wrong permissions.
      
      This commits includes an ugly workaround to bypass this issue by setting
      the needed umask in 'SynnefoManagementUtility' for subcommands that are
      handling images, snapshots and files and for subcommands that define
      the 'umask' class attribute.
      2b9213a6
  2. 22 Sep, 2014 2 commits
  3. 18 Sep, 2014 1 commit
    • Christos Stavrakakis's avatar
      cyclades: Reconciliation for stale snapshots · e73389ce
      Christos Stavrakakis authored
      Extend 'reconcile-servers' command to perform reconciliation for
      snapshots, which can occur if the Ganeti job failed but the
      corresponding message from eventd has never been processed. In order to
      make reconciliation possible, Cyclades store a special metadata on the
      snapshot that contains the Ganeti ID and the job ID that will create the
      snapshot.
      
      Closes grnet/synnefo#231
      e73389ce
  4. 04 Sep, 2014 1 commit
  5. 01 Sep, 2014 1 commit
  6. 05 Aug, 2014 1 commit
  7. 02 Jul, 2014 2 commits
    • Dionysis Grigoropoulos's avatar
      cyclades: Bug fixes in volume related commands · 4e0e6580
      Dionysis Grigoropoulos authored
      * Add a check to both name length and disk template length in
      snf-manage volume-type-create.
      * Add a check for the metadata length of snapshots.
      * Add a generic try/except clause to handle Pithos responses.
      * Add --user/--public options in snapshot-show/image-show.
      * Add a boolean "snapshot" field in image-list.
      * Remove unused user agrument from backend.get_snapshot().
      * Remove --wait option from snapshot-create.
      * Various typo fixes.
      4e0e6580
    • Dionysis Grigoropoulos's avatar
      cyclades: Update snf-manage argument names · ddc98573
      Dionysis Grigoropoulos authored
      * Update various snf-manage commands to use --display-mails instead of
      --displayname.
      * Add --display-mails option in port-inspect.
      ddc98573
  8. 23 Jun, 2014 2 commits
  9. 29 May, 2014 1 commit
    • Christos Stavrakakis's avatar
      cyclades: Accept an empty image when using volumes · 91007bc4
      Christos Stavrakakis authored
      Accept an empty 'imageRef' attribute when creating a server with
      volumes. The attribute must always be present even with an empty value.
      In case the server's image is left blank, we use the source
      (image/snapshot) of the first volume. Also, if an image is specified
      both for the server and for the first volume, we check that the image is
      the same.
      91007bc4
  10. 23 May, 2014 1 commit
  11. 21 May, 2014 2 commits
  12. 20 May, 2014 1 commit
    • Christos Stavrakakis's avatar
      cyclades: Remove verbose output from stats cmd · 493e0e11
      Christos Stavrakakis authored
      Do not print aggregate statistics for all Ganeti backends in case there
      exists only one backend. Also, fix a small issue where Ganeti will
      return a 'None' value for 'csockets' attribute when it cannot
      communicate with a Ganeti node.
      493e0e11
  13. 14 May, 2014 2 commits
  14. 12 May, 2014 1 commit
    • Christos Stavrakakis's avatar
      cyclades: Refactor statistics mechanism · f941d534
      Christos Stavrakakis authored
      Major refactoring to Cyclades statistics mechanism. The admin API
      endpoint has been updated in order to expose detail statistics about
      Ganeti cluster, virtual servers and networks, public IPv4 pools and
      images.
      
      The 'stats-cyclades' management command has also been updated in order
      to display all available statistics in a user-friendly way.
      f941d534
  15. 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
  16. 31 Mar, 2014 6 commits
    • Christos Stavrakakis's avatar
      cyclades: Fix KeyError exception · cfe0da19
      Christos Stavrakakis authored
      Calling the 'pop' method of a dictionary requires a defauft value to be
      returned if the key is not found, otherwise 'KeyError' exception is
      raised. This commit provides a default value to all 'pop' calls.
      
      Closes #19
      cfe0da19
    • Christos Stavrakakis's avatar
      0328b22c
    • Christos Stavrakakis's avatar
      cyclades: Add --volume option to server-create cmd · a3bc4db2
      Christos Stavrakakis authored
      Extend 'server-create' management command with the '--volume' option,
      which can be used to specify which volumes to use or create for the new
      server.
      a3bc4db2
    • Christos Stavrakakis's avatar
      ff5d4035
    • 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
  17. 17 Mar, 2014 2 commits
    • Ilias Tsitsimpis's avatar
      Use SynnefoCommand for django-admin commands · 276f8a76
      Ilias Tsitsimpis authored
      Instead of django's BaseCommand class, use out SynnefoCommand which
      takes care of logging the command and its output.
      
      Ref #3: Log all stdout/stderr for snf-manage invocations
      276f8a76
    • Ilias Tsitsimpis's avatar
      Fix console output for management commands · 66c23906
      Ilias Tsitsimpis authored
      From Django's documentation:
        When you are using management commands and wish to provide console
        output, you should write to self.stdout and self.stderr, instead of
        printing to stdout and stderr directly.
      
      This patch fixes the managements commands to use the proper
      stdout/stderr objects.
      
      Ref #3: Log all stdout/stderr for snf-manage invocations
      66c23906
  18. 14 Mar, 2014 1 commit
    • Christos Stavrakakis's avatar
      cyclades: Unify arguments in management commands · 33b402be
      Christos Stavrakakis authored
      Unify the string listing that is used to describe the arguments that are
      accepted by snf-manage commands, and are displayed in the 'usage' of the
      commands' help message. Also, add the argument in some commands that it
      was missing.
      33b402be
  19. 28 Feb, 2014 1 commit
  20. 27 Feb, 2014 2 commits
  21. 26 Feb, 2014 1 commit
    • Christos Stavrakakis's avatar
      snf_django: Use option groups in SynnefoCommand · c928e21f
      Christos Stavrakakis authored
      Extend SynnefoCommand to use option groups to distinguish between common
      and command-specific options, by overriding the 'create_parser' method.
      The command specific options must be declared in the
      'command_option_list' attribute of the SynnefoCommand. Also, we use a
      custom formatter to pretty-print options.
      c928e21f
  22. 13 Feb, 2014 1 commit
  23. 22 Jan, 2014 1 commit
    • Christos Stavrakakis's avatar
      cyclades: Extend flavors with 'allow_create' field · f55499e0
      Christos Stavrakakis authored
      * Add 'allow_create' field to Flavor DB model and the corresponding
        migration.
      * Extend API for flavors to return the 'SNF:allow_create' attribute
      * Update POST /servers API call to check that the flavor that is
        specified in the request has the 'allow_create' attribute set to True.
        Otherwise, Forbidden(403) is returned. Also, add a relevant unittest.
      * Extend 'flavor-modify' and 'flavor-list' management commands to handle
        the 'allow_create' flag
      * Update administrator guide and Changelog
      f55499e0
  24. 21 Jan, 2014 1 commit
  25. 20 Jan, 2014 1 commit
  26. 19 Dec, 2013 1 commit
  27. 16 Dec, 2013 2 commits