diff env/lib/python3.7/site-packages/boto/ec2/volume.py @ 5:9b1c78e6ba9c draft default tip

"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author shellac
date Mon, 01 Jun 2020 08:59:25 -0400
parents 79f47841a781
children
line wrap: on
line diff
--- a/env/lib/python3.7/site-packages/boto/ec2/volume.py	Thu May 14 16:47:39 2020 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,315 +0,0 @@
-# Copyright (c) 2006-2012 Mitch Garnaat http://garnaat.org/
-# Copyright (c) 2010, Eucalyptus Systems, Inc.
-# Copyright (c) 2012 Amazon.com, Inc. or its affiliates.  All Rights Reserved
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish, dis-
-# tribute, sublicense, and/or sell copies of the Software, and to permit
-# persons to whom the Software is furnished to do so, subject to the fol-
-# lowing conditions:
-#
-# The above copyright notice and this permission notice shall be included
-# in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
-# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
-# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-
-"""
-Represents an EC2 Elastic Block Storage Volume
-"""
-from boto.resultset import ResultSet
-from boto.ec2.tag import Tag
-from boto.ec2.ec2object import TaggedEC2Object
-
-
-class Volume(TaggedEC2Object):
-    """
-    Represents an EBS volume.
-
-    :ivar id: The unique ID of the volume.
-    :ivar create_time: The timestamp of when the volume was created.
-    :ivar status: The status of the volume.
-    :ivar size: The size (in GB) of the volume.
-    :ivar snapshot_id: The ID of the snapshot this volume was created
-        from, if applicable.
-    :ivar attach_data: An AttachmentSet object.
-    :ivar zone: The availability zone this volume is in.
-    :ivar type: The type of volume (standard or consistent-iops)
-    :ivar iops: If this volume is of type consistent-iops, this is
-        the number of IOPS provisioned (10-300).
-    :ivar encrypted: True if this volume is encrypted.
-    """
-
-    def __init__(self, connection=None):
-        super(Volume, self).__init__(connection)
-        self.id = None
-        self.create_time = None
-        self.status = None
-        self.size = None
-        self.snapshot_id = None
-        self.attach_data = None
-        self.zone = None
-        self.type = None
-        self.iops = None
-        self.encrypted = None
-
-    def __repr__(self):
-        return 'Volume:%s' % self.id
-
-    def startElement(self, name, attrs, connection):
-        retval = super(Volume, self).startElement(name, attrs, connection)
-        if retval is not None:
-            return retval
-        if name == 'attachmentSet':
-            self.attach_data = AttachmentSet()
-            return self.attach_data
-        elif name == 'tagSet':
-            self.tags = ResultSet([('item', Tag)])
-            return self.tags
-        else:
-            return None
-
-    def endElement(self, name, value, connection):
-        if name == 'volumeId':
-            self.id = value
-        elif name == 'createTime':
-            self.create_time = value
-        elif name == 'status':
-            if value != '':
-                self.status = value
-        elif name == 'size':
-            self.size = int(value)
-        elif name == 'snapshotId':
-            self.snapshot_id = value
-        elif name == 'availabilityZone':
-            self.zone = value
-        elif name == 'volumeType':
-            self.type = value
-        elif name == 'iops':
-            self.iops = int(value)
-        elif name == 'encrypted':
-            self.encrypted = (value.lower() == 'true')
-        else:
-            setattr(self, name, value)
-
-    def _update(self, updated):
-        self.__dict__.update(updated.__dict__)
-
-    def update(self, validate=False, dry_run=False):
-        """
-        Update the data associated with this volume by querying EC2.
-
-        :type validate: bool
-        :param validate: By default, if EC2 returns no data about the
-                         volume the update method returns quietly.  If
-                         the validate param is True, however, it will
-                         raise a ValueError exception if no data is
-                         returned from EC2.
-        """
-        # Check the resultset since Eucalyptus ignores the volumeId param
-        unfiltered_rs = self.connection.get_all_volumes(
-            [self.id],
-            dry_run=dry_run
-        )
-        rs = [x for x in unfiltered_rs if x.id == self.id]
-        if len(rs) > 0:
-            self._update(rs[0])
-        elif validate:
-            raise ValueError('%s is not a valid Volume ID' % self.id)
-        return self.status
-
-    def delete(self, dry_run=False):
-        """
-        Delete this EBS volume.
-
-        :rtype: bool
-        :return: True if successful
-        """
-        return self.connection.delete_volume(self.id, dry_run=dry_run)
-
-    def attach(self, instance_id, device, dry_run=False):
-        """
-        Attach this EBS volume to an EC2 instance.
-
-        :type instance_id: str
-        :param instance_id: The ID of the EC2 instance to which it will
-                            be attached.
-
-        :type device: str
-        :param device: The device on the instance through which the
-                       volume will be exposed (e.g. /dev/sdh)
-
-        :rtype: bool
-        :return: True if successful
-        """
-        return self.connection.attach_volume(
-            self.id,
-            instance_id,
-            device,
-            dry_run=dry_run
-        )
-
-    def detach(self, force=False, dry_run=False):
-        """
-        Detach this EBS volume from an EC2 instance.
-
-        :type force: bool
-        :param force: Forces detachment if the previous detachment
-            attempt did not occur cleanly.  This option can lead to
-            data loss or a corrupted file system. Use this option only
-            as a last resort to detach a volume from a failed
-            instance. The instance will not have an opportunity to
-            flush file system caches nor file system meta data. If you
-            use this option, you must perform file system check and
-            repair procedures.
-
-        :rtype: bool
-        :return: True if successful
-        """
-        instance_id = None
-        if self.attach_data:
-            instance_id = self.attach_data.instance_id
-        device = None
-        if self.attach_data:
-            device = self.attach_data.device
-        return self.connection.detach_volume(
-            self.id,
-            instance_id,
-            device,
-            force,
-            dry_run=dry_run
-        )
-
-    def create_snapshot(self, description=None, dry_run=False):
-        """
-        Create a snapshot of this EBS Volume.
-
-        :type description: str
-        :param description: A description of the snapshot.
-            Limited to 256 characters.
-
-        :rtype: :class:`boto.ec2.snapshot.Snapshot`
-        :return: The created Snapshot object
-        """
-        return self.connection.create_snapshot(
-            self.id,
-            description,
-            dry_run=dry_run
-        )
-
-    def volume_state(self):
-        """
-        Returns the state of the volume.  Same value as the status attribute.
-        """
-        return self.status
-
-    def attachment_state(self):
-        """
-        Get the attachment state.
-        """
-        state = None
-        if self.attach_data:
-            state = self.attach_data.status
-        return state
-
-    def snapshots(self, owner=None, restorable_by=None, dry_run=False):
-        """
-        Get all snapshots related to this volume.  Note that this requires
-        that all available snapshots for the account be retrieved from EC2
-        first and then the list is filtered client-side to contain only
-        those for this volume.
-
-        :type owner: str
-        :param owner: If present, only the snapshots owned by the
-            specified user will be returned.  Valid values are:
-
-            * self
-            * amazon
-            * AWS Account ID
-
-        :type restorable_by: str
-        :param restorable_by: If present, only the snapshots that
-            are restorable by the specified account id will be returned.
-
-        :rtype: list of L{boto.ec2.snapshot.Snapshot}
-        :return: The requested Snapshot objects
-
-        """
-        rs = self.connection.get_all_snapshots(
-            owner=owner,
-            restorable_by=restorable_by,
-            dry_run=dry_run
-        )
-        mine = []
-        for snap in rs:
-            if snap.volume_id == self.id:
-                mine.append(snap)
-        return mine
-
-
-class AttachmentSet(object):
-    """
-    Represents an EBS attachmentset.
-
-    :ivar id: The unique ID of the volume.
-    :ivar instance_id: The unique ID of the attached instance
-    :ivar status: The status of the attachment
-    :ivar attach_time: Attached since
-    :ivar device: The device the instance has mapped
-    """
-    def __init__(self):
-        self.id = None
-        self.instance_id = None
-        self.status = None
-        self.attach_time = None
-        self.device = None
-
-    def __repr__(self):
-        return 'AttachmentSet:%s' % self.id
-
-    def startElement(self, name, attrs, connection):
-        pass
-
-    def endElement(self, name, value, connection):
-        if name == 'volumeId':
-            self.id = value
-        elif name == 'instanceId':
-            self.instance_id = value
-        elif name == 'status':
-            self.status = value
-        elif name == 'attachTime':
-            self.attach_time = value
-        elif name == 'device':
-            self.device = value
-        else:
-            setattr(self, name, value)
-
-
-class VolumeAttribute(object):
-    def __init__(self, parent=None):
-        self.id = None
-        self._key_name = None
-        self.attrs = {}
-
-    def startElement(self, name, attrs, connection):
-        if name == 'autoEnableIO':
-            self._key_name = name
-        return None
-
-    def endElement(self, name, value, connection):
-        if name == 'value':
-            if value.lower() == 'true':
-                self.attrs[self._key_name] = True
-            else:
-                self.attrs[self._key_name] = False
-        elif name == 'volumeId':
-            self.id = value
-        else:
-            setattr(self, name, value)