Uploaded image for project: 'Libcloud'
  1. Libcloud
  2. LIBCLOUD-213

Add storage volume management (e.g. EC2 EBS)

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.11.0
    • Component/s: None
    • Labels:
      None

      Description

      I propose the addition of block-level storage volume management in LibCloud. With at least Amazon EC2 EBS and CloudStack volumes, the way of working is very similar, with the main operations being:

      • create storage volume
      • attach storage volume to node
      • detach storage volume to node
      • destroy storage volume

      An extension to the CloudStack driver has already been implemented (https://issues.apache.org/jira/browse/LIBCLOUD-208)

        Activity

        Hide
        gabriel.reid Gabriel Reid added a comment -

        Patch to add storage volume management to the libcloud.compute.base module, as well as completing the CloudStack implementation and an initial implementation for EC2

        Show
        gabriel.reid Gabriel Reid added a comment - Patch to add storage volume management to the libcloud.compute.base module, as well as completing the CloudStack implementation and an initial implementation for EC2
        Hide
        kami Tomaz Muraus added a comment -

        Awesome patch, thanks! I have merged into trunk with some minor changes:

        • Removed trailing whitespace and fixed pep8 style issues (single blank line between methods in a class, no whitespace around = operator, is not None instead of != None, etc.)
        • Minor cleanup in docstrings
        • Added _volume suffix to all the StorageVolume related methods on the NodeDriver class (for API consistency)
        • Changed ex_describe_tags in EC2 driver so it's consistent ex_create_tags and ex_delete_tags
        Show
        kami Tomaz Muraus added a comment - Awesome patch, thanks! I have merged into trunk with some minor changes: Removed trailing whitespace and fixed pep8 style issues (single blank line between methods in a class, no whitespace around = operator, is not None instead of != None, etc.) Minor cleanup in docstrings Added _volume suffix to all the StorageVolume related methods on the NodeDriver class (for API consistency) Changed ex_describe_tags in EC2 driver so it's consistent ex_create_tags and ex_delete_tags
        Hide
        alexamies Alex Amies added a comment -

        This is a big step forward but I think that we are missing a list_volumes() method. It is important to me and seems inconsistent that LinCloud has create and delete methods for storage volumes without at way to find out what has been created.

        I would like to propose a new method to the NodeDriver class consistent with list_nodes() and similar methods to do this. Here it is:

        def list_volumes(self):
        """
        List storage volumes.
        @return: C

        {list}

        of L

        {StorageVolume}

        objects
        """
        raise NotImplementedError(
        'list_volumes not implemented for this driver')

        Show
        alexamies Alex Amies added a comment - This is a big step forward but I think that we are missing a list_volumes() method. It is important to me and seems inconsistent that LinCloud has create and delete methods for storage volumes without at way to find out what has been created. I would like to propose a new method to the NodeDriver class consistent with list_nodes() and similar methods to do this. Here it is: def list_volumes(self): """ List storage volumes. @return: C {list} of L {StorageVolume} objects """ raise NotImplementedError( 'list_volumes not implemented for this driver')
        Hide
        kami Tomaz Muraus added a comment -

        list_volumes sounds reasonable to me. Next step is checking if most of the providers support this functionality and implementing it.

        Show
        kami Tomaz Muraus added a comment - list_volumes sounds reasonable to me. Next step is checking if most of the providers support this functionality and implementing it.

          People

          • Assignee:
            kami Tomaz Muraus
            Reporter:
            gabriel.reid Gabriel Reid
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development