Mercurial > repos > shellac > guppy_basecaller
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
