diff env/lib/python3.7/site-packages/boto/ec2/image.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/image.py	Thu May 14 16:47:39 2020 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,445 +0,0 @@
-# Copyright (c) 2006-2010 Mitch Garnaat http://garnaat.org/
-# Copyright (c) 2010, Eucalyptus Systems, Inc.
-#
-# 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.
-
-from boto.ec2.ec2object import EC2Object, TaggedEC2Object
-from boto.ec2.blockdevicemapping import BlockDeviceMapping
-
-
-class ProductCodes(list):
-    def startElement(self, name, attrs, connection):
-        pass
-
-    def endElement(self, name, value, connection):
-        if name == 'productCode':
-            self.append(value)
-
-
-class BillingProducts(list):
-    def startElement(self, name, attrs, connection):
-        pass
-
-    def endElement(self, name, value, connection):
-        if name == 'billingProduct':
-            self.append(value)
-
-
-class Image(TaggedEC2Object):
-    """
-    Represents an EC2 Image
-    """
-
-    def __init__(self, connection=None):
-        super(Image, self).__init__(connection)
-        self.id = None
-        self.location = None
-        self.state = None
-        self.ownerId = None  # for backwards compatibility
-        self.owner_id = None
-        self.owner_alias = None
-        self.is_public = False
-        self.architecture = None
-        self.platform = None
-        self.type = None
-        self.kernel_id = None
-        self.ramdisk_id = None
-        self.name = None
-        self.description = None
-        self.product_codes = ProductCodes()
-        self.billing_products = BillingProducts()
-        self.block_device_mapping = None
-        self.root_device_type = None
-        self.root_device_name = None
-        self.virtualization_type = None
-        self.hypervisor = None
-        self.instance_lifecycle = None
-        self.sriov_net_support = None
-
-    def __repr__(self):
-        return 'Image:%s' % self.id
-
-    def startElement(self, name, attrs, connection):
-        retval = super(Image, self).startElement(name, attrs, connection)
-        if retval is not None:
-            return retval
-        if name == 'blockDeviceMapping':
-            self.block_device_mapping = BlockDeviceMapping()
-            return self.block_device_mapping
-        elif name == 'productCodes':
-            return self.product_codes
-        elif name == 'billingProducts':
-            return self.billing_products
-        else:
-            return None
-
-    def endElement(self, name, value, connection):
-        if name == 'imageId':
-            self.id = value
-        elif name == 'imageLocation':
-            self.location = value
-        elif name == 'imageState':
-            self.state = value
-        elif name == 'imageOwnerId':
-            self.ownerId = value # for backwards compatibility
-            self.owner_id = value
-        elif name == 'isPublic':
-            if value == 'false':
-                self.is_public = False
-            elif value == 'true':
-                self.is_public = True
-            else:
-                raise Exception(
-                    'Unexpected value of isPublic %s for image %s' % (
-                        value,
-                        self.id
-                    )
-                )
-        elif name == 'architecture':
-            self.architecture = value
-        elif name == 'imageType':
-            self.type = value
-        elif name == 'kernelId':
-            self.kernel_id = value
-        elif name == 'ramdiskId':
-            self.ramdisk_id = value
-        elif name == 'imageOwnerAlias':
-            self.owner_alias = value
-        elif name == 'platform':
-            self.platform = value
-        elif name == 'name':
-            self.name = value
-        elif name == 'description':
-            self.description = value
-        elif name == 'rootDeviceType':
-            self.root_device_type = value
-        elif name == 'rootDeviceName':
-            self.root_device_name = value
-        elif name == 'virtualizationType':
-            self.virtualization_type = value
-        elif name == 'hypervisor':
-            self.hypervisor = value
-        elif name == 'instanceLifecycle':
-            self.instance_lifecycle = value
-        elif name == 'sriovNetSupport':
-            self.sriov_net_support = value
-        else:
-            setattr(self, name, value)
-
-    def _update(self, updated):
-        self.__dict__.update(updated.__dict__)
-
-    def update(self, validate=False, dry_run=False):
-        """
-        Update the image's state information by making a call to fetch
-        the current image attributes from the service.
-
-        :type validate: bool
-        :param validate: By default, if EC2 returns no data about the
-                         image 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.
-        """
-        rs = self.connection.get_all_images([self.id], dry_run=dry_run)
-        if len(rs) > 0:
-            img = rs[0]
-            if img.id == self.id:
-                self._update(img)
-        elif validate:
-            raise ValueError('%s is not a valid Image ID' % self.id)
-        return self.state
-
-    def run(self, min_count=1, max_count=1, key_name=None,
-            security_groups=None, user_data=None,
-            addressing_type=None, instance_type='m1.small', placement=None,
-            kernel_id=None, ramdisk_id=None,
-            monitoring_enabled=False, subnet_id=None,
-            block_device_map=None,
-            disable_api_termination=False,
-            instance_initiated_shutdown_behavior=None,
-            private_ip_address=None,
-            placement_group=None, security_group_ids=None,
-            additional_info=None, instance_profile_name=None,
-            instance_profile_arn=None, tenancy=None, dry_run=False):
-
-        """
-        Runs this instance.
-
-        :type min_count: int
-        :param min_count: The minimum number of instances to start
-
-        :type max_count: int
-        :param max_count: The maximum number of instances to start
-
-        :type key_name: string
-        :param key_name: The name of the key pair with which to
-            launch instances.
-
-        :type security_groups: list of strings
-        :param security_groups: The names of the security groups with which to
-            associate instances.
-
-        :type user_data: string
-        :param user_data: The Base64-encoded MIME user data to be made
-            available to the instance(s) in this reservation.
-
-        :type instance_type: string
-        :param instance_type: The type of instance to run:
-
-            * t1.micro
-            * m1.small
-            * m1.medium
-            * m1.large
-            * m1.xlarge
-            * m3.medium
-            * m3.large
-            * m3.xlarge
-            * m3.2xlarge
-            * c1.medium
-            * c1.xlarge
-            * m2.xlarge
-            * m2.2xlarge
-            * m2.4xlarge
-            * cr1.8xlarge
-            * hi1.4xlarge
-            * hs1.8xlarge
-            * cc1.4xlarge
-            * cg1.4xlarge
-            * cc2.8xlarge
-            * g2.2xlarge
-            * c3.large
-            * c3.xlarge
-            * c3.2xlarge
-            * c3.4xlarge
-            * c3.8xlarge
-            * c4.large
-            * c4.xlarge
-            * c4.2xlarge
-            * c4.4xlarge
-            * c4.8xlarge
-            * i2.xlarge
-            * i2.2xlarge
-            * i2.4xlarge
-            * i2.8xlarge
-            * t2.micro
-            * t2.small
-            * t2.medium
-
-        :type placement: string
-        :param placement: The Availability Zone to launch the instance into.
-
-        :type kernel_id: string
-        :param kernel_id: The ID of the kernel with which to launch the
-            instances.
-
-        :type ramdisk_id: string
-        :param ramdisk_id: The ID of the RAM disk with which to launch the
-            instances.
-
-        :type monitoring_enabled: bool
-        :param monitoring_enabled: Enable CloudWatch monitoring on
-            the instance.
-
-         :type subnet_id: string
-        :param subnet_id: The subnet ID within which to launch the instances
-            for VPC.
-
-        :type private_ip_address: string
-        :param private_ip_address: If you're using VPC, you can
-            optionally use this parameter to assign the instance a
-            specific available IP address from the subnet (e.g.,
-            10.0.0.25).
-
-        :type block_device_map: :class:`boto.ec2.blockdevicemapping.BlockDeviceMapping`
-        :param block_device_map: A BlockDeviceMapping data structure
-            describing the EBS volumes associated with the Image.
-
-        :type disable_api_termination: bool
-        :param disable_api_termination: If True, the instances will be locked
-            and will not be able to be terminated via the API.
-
-        :type instance_initiated_shutdown_behavior: string
-        :param instance_initiated_shutdown_behavior: Specifies whether the
-            instance stops or terminates on instance-initiated shutdown.
-            Valid values are:
-
-            * stop
-            * terminate
-
-        :type placement_group: string
-        :param placement_group: If specified, this is the name of the placement
-            group in which the instance(s) will be launched.
-
-        :type additional_info: string
-        :param additional_info: Specifies additional information to make
-            available to the instance(s).
-
-        :type security_group_ids: list of strings
-        :param security_group_ids: The ID of the VPC security groups with
-            which to associate instances.
-
-        :type instance_profile_name: string
-        :param instance_profile_name: The name of
-            the IAM Instance Profile (IIP) to associate with the instances.
-
-        :type instance_profile_arn: string
-        :param instance_profile_arn: The Amazon resource name (ARN) of
-            the IAM Instance Profile (IIP) to associate with the instances.
-
-        :type tenancy: string
-        :param tenancy: The tenancy of the instance you want to
-            launch. An instance with a tenancy of 'dedicated' runs on
-            single-tenant hardware and can only be launched into a
-            VPC. Valid values are:"default" or "dedicated".
-            NOTE: To use dedicated tenancy you MUST specify a VPC
-            subnet-ID as well.
-
-        :rtype: Reservation
-        :return: The :class:`boto.ec2.instance.Reservation` associated with
-                 the request for machines
-
-        """
-
-        return self.connection.run_instances(self.id, min_count, max_count,
-                                             key_name, security_groups,
-                                             user_data, addressing_type,
-                                             instance_type, placement,
-                                             kernel_id, ramdisk_id,
-                                             monitoring_enabled, subnet_id,
-                                             block_device_map, disable_api_termination,
-                                             instance_initiated_shutdown_behavior,
-                                             private_ip_address, placement_group,
-                                             security_group_ids=security_group_ids,
-                                             additional_info=additional_info,
-                                             instance_profile_name=instance_profile_name,
-                                             instance_profile_arn=instance_profile_arn,
-                                             tenancy=tenancy, dry_run=dry_run)
-
-    def deregister(self, delete_snapshot=False, dry_run=False):
-        return self.connection.deregister_image(
-            self.id,
-            delete_snapshot,
-            dry_run=dry_run
-        )
-
-    def get_launch_permissions(self, dry_run=False):
-        img_attrs = self.connection.get_image_attribute(
-            self.id,
-            'launchPermission',
-            dry_run=dry_run
-        )
-        return img_attrs.attrs
-
-    def set_launch_permissions(self, user_ids=None, group_names=None,
-                               dry_run=False):
-        return self.connection.modify_image_attribute(self.id,
-                                                      'launchPermission',
-                                                      'add',
-                                                      user_ids,
-                                                      group_names,
-                                                      dry_run=dry_run)
-
-    def remove_launch_permissions(self, user_ids=None, group_names=None,
-                                  dry_run=False):
-        return self.connection.modify_image_attribute(self.id,
-                                                      'launchPermission',
-                                                      'remove',
-                                                      user_ids,
-                                                      group_names,
-                                                      dry_run=dry_run)
-
-    def reset_launch_attributes(self, dry_run=False):
-        return self.connection.reset_image_attribute(
-            self.id,
-            'launchPermission',
-            dry_run=dry_run
-        )
-
-    def get_kernel(self, dry_run=False):
-        img_attrs = self.connection.get_image_attribute(
-            self.id,
-            'kernel',
-            dry_run=dry_run
-        )
-        return img_attrs.kernel
-
-    def get_ramdisk(self, dry_run=False):
-        img_attrs = self.connection.get_image_attribute(
-            self.id,
-            'ramdisk',
-            dry_run=dry_run
-        )
-        return img_attrs.ramdisk
-
-
-class ImageAttribute(object):
-    def __init__(self, parent=None):
-        self.name = None
-        self.kernel = None
-        self.ramdisk = None
-        self.attrs = {}
-
-    def startElement(self, name, attrs, connection):
-        if name == 'blockDeviceMapping':
-            self.attrs['block_device_mapping'] = BlockDeviceMapping()
-            return self.attrs['block_device_mapping']
-        else:
-            return None
-
-    def endElement(self, name, value, connection):
-        if name == 'launchPermission':
-            self.name = 'launch_permission'
-        elif name == 'group':
-            if 'groups' in self.attrs:
-                self.attrs['groups'].append(value)
-            else:
-                self.attrs['groups'] = [value]
-        elif name == 'userId':
-            if 'user_ids' in self.attrs:
-                self.attrs['user_ids'].append(value)
-            else:
-                self.attrs['user_ids'] = [value]
-        elif name == 'productCode':
-            if 'product_codes' in self.attrs:
-                self.attrs['product_codes'].append(value)
-            else:
-                self.attrs['product_codes'] = [value]
-        elif name == 'imageId':
-            self.image_id = value
-        elif name == 'kernel':
-            self.kernel = value
-        elif name == 'ramdisk':
-            self.ramdisk = value
-        else:
-            setattr(self, name, value)
-
-
-class CopyImage(object):
-    def __init__(self, parent=None):
-        self._parent = parent
-        self.image_id = None
-
-    def startElement(self, name, attrs, connection):
-        pass
-
-    def endElement(self, name, value, connection):
-        if name == 'imageId':
-            self.image_id = value