diff env/lib/python3.7/site-packages/boto/ec2/autoscale/group.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/autoscale/group.py	Thu May 14 16:47:39 2020 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,361 +0,0 @@
-# Copyright (c) 2009-2011 Reza Lotun http://reza.lotun.name/
-#
-# 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.elb.listelement import ListElement
-from boto.resultset import ResultSet
-from boto.ec2.autoscale.launchconfig import LaunchConfiguration
-from boto.ec2.autoscale.request import Request
-from boto.ec2.autoscale.instance import Instance
-from boto.ec2.autoscale.tag import Tag
-
-
-class ProcessType(object):
-    def __init__(self, connection=None):
-        self.connection = connection
-        self.process_name = None
-
-    def __repr__(self):
-        return 'ProcessType(%s)' % self.process_name
-
-    def startElement(self, name, attrs, connection):
-        pass
-
-    def endElement(self, name, value, connection):
-        if name == 'ProcessName':
-            self.process_name = value
-
-
-class SuspendedProcess(object):
-    def __init__(self, connection=None):
-        self.connection = connection
-        self.process_name = None
-        self.reason = None
-
-    def __repr__(self):
-        return 'SuspendedProcess(%s, %s)' % (self.process_name, self.reason)
-
-    def startElement(self, name, attrs, connection):
-        pass
-
-    def endElement(self, name, value, connection):
-        if name == 'ProcessName':
-            self.process_name = value
-        elif name == 'SuspensionReason':
-            self.reason = value
-
-
-class EnabledMetric(object):
-    def __init__(self, connection=None, metric=None, granularity=None):
-        self.connection = connection
-        self.metric = metric
-        self.granularity = granularity
-
-    def __repr__(self):
-        return 'EnabledMetric(%s, %s)' % (self.metric, self.granularity)
-
-    def startElement(self, name, attrs, connection):
-        pass
-
-    def endElement(self, name, value, connection):
-        if name == 'Granularity':
-            self.granularity = value
-        elif name == 'Metric':
-            self.metric = value
-
-
-class TerminationPolicies(list):
-
-    def startElement(self, name, attrs, connection):
-        pass
-
-    def endElement(self, name, value, connection):
-        if name == 'member':
-            self.append(value)
-
-
-class AutoScalingGroup(object):
-    def __init__(self, connection=None, name=None,
-                 launch_config=None, availability_zones=None,
-                 load_balancers=None, default_cooldown=None,
-                 health_check_type=None, health_check_period=None,
-                 placement_group=None, vpc_zone_identifier=None,
-                 desired_capacity=None, min_size=None, max_size=None,
-                 tags=None, termination_policies=None, instance_id=None,
-                 **kwargs):
-        """
-        Creates a new AutoScalingGroup with the specified name.
-
-        You must not have already used up your entire quota of
-        AutoScalingGroups in order for this call to be successful. Once the
-        creation request is completed, the AutoScalingGroup is ready to be
-        used in other calls.
-
-        :type name: str
-        :param name: Name of autoscaling group (required).
-
-        :type availability_zones: list
-        :param availability_zones: List of availability zones (required).
-
-        :type default_cooldown: int
-        :param default_cooldown: Number of seconds after a Scaling Activity
-            completes before any further scaling activities can start.
-
-        :type desired_capacity: int
-        :param desired_capacity: The desired capacity for the group.
-
-        :type health_check_period: str
-        :param health_check_period: Length of time in seconds after a new
-            EC2 instance comes into service that Auto Scaling starts
-            checking its health.
-
-        :type health_check_type: str
-        :param health_check_type: The service you want the health status from,
-            Amazon EC2 or Elastic Load Balancer.
-
-        :type launch_config: str or LaunchConfiguration
-        :param launch_config: Name of launch configuration (required).
-
-        :type load_balancers: list
-        :param load_balancers: List of load balancers.
-
-        :type max_size: int
-        :param max_size: Maximum size of group (required).
-
-        :type min_size: int
-        :param min_size: Minimum size of group (required).
-
-        :type placement_group: str
-        :param placement_group: Physical location of your cluster placement
-            group created in Amazon EC2.
-
-        :type vpc_zone_identifier: str or list
-        :param vpc_zone_identifier: A comma-separated string or python list of
-            the subnet identifiers of the Virtual Private Cloud.
-
-        :type tags: list
-        :param tags: List of :class:`boto.ec2.autoscale.tag.Tag`s
-
-        :type termination_policies: list
-        :param termination_policies: A list of termination policies. Valid values
-            are: "OldestInstance", "NewestInstance", "OldestLaunchConfiguration",
-            "ClosestToNextInstanceHour", "Default".  If no value is specified,
-            the "Default" value is used.
-
-        :type instance_id: str
-        :param instance_id: The ID of the Amazon EC2 instance you want to use
-            to create the Auto Scaling group.
-
-        :rtype: :class:`boto.ec2.autoscale.group.AutoScalingGroup`
-        :return: An autoscale group.
-        """
-        self.name = name or kwargs.get('group_name')   # backwards compat
-        self.connection = connection
-        self.min_size = int(min_size) if min_size is not None else None
-        self.max_size = int(max_size) if max_size is not None else None
-        self.created_time = None
-        # backwards compatibility
-        default_cooldown = default_cooldown or kwargs.get('cooldown')
-        if default_cooldown is not None:
-            default_cooldown = int(default_cooldown)
-        self.default_cooldown = default_cooldown
-        self.launch_config_name = launch_config
-        if launch_config and isinstance(launch_config, LaunchConfiguration):
-            self.launch_config_name = launch_config.name
-        self.desired_capacity = desired_capacity
-        lbs = load_balancers or []
-        self.load_balancers = ListElement(lbs)
-        zones = availability_zones or []
-        self.availability_zones = ListElement(zones)
-        self.health_check_period = health_check_period
-        self.health_check_type = health_check_type
-        self.placement_group = placement_group
-        self.autoscaling_group_arn = None
-        if type(vpc_zone_identifier) is list:
-            vpc_zone_identifier = ','.join(vpc_zone_identifier)
-        self.vpc_zone_identifier = vpc_zone_identifier
-        self.instances = None
-        self.tags = tags or None
-        termination_policies = termination_policies or []
-        self.termination_policies = ListElement(termination_policies)
-        self.instance_id = instance_id
-
-    # backwards compatible access to 'cooldown' param
-    def _get_cooldown(self):
-        return self.default_cooldown
-
-    def _set_cooldown(self, val):
-        self.default_cooldown = val
-
-    cooldown = property(_get_cooldown, _set_cooldown)
-
-    def __repr__(self):
-        return 'AutoScaleGroup<%s>' % self.name
-
-    def startElement(self, name, attrs, connection):
-        if name == 'Instances':
-            self.instances = ResultSet([('member', Instance)])
-            return self.instances
-        elif name == 'LoadBalancerNames':
-            return self.load_balancers
-        elif name == 'AvailabilityZones':
-            return self.availability_zones
-        elif name == 'EnabledMetrics':
-            self.enabled_metrics = ResultSet([('member', EnabledMetric)])
-            return self.enabled_metrics
-        elif name == 'SuspendedProcesses':
-            self.suspended_processes = ResultSet([('member', SuspendedProcess)])
-            return self.suspended_processes
-        elif name == 'Tags':
-            self.tags = ResultSet([('member', Tag)])
-            return self.tags
-        elif name == 'TerminationPolicies':
-            return self.termination_policies
-        else:
-            return
-
-    def endElement(self, name, value, connection):
-        if name == 'MinSize':
-            self.min_size = int(value)
-        elif name == 'AutoScalingGroupARN':
-            self.autoscaling_group_arn = value
-        elif name == 'CreatedTime':
-            self.created_time = value
-        elif name == 'DefaultCooldown':
-            self.default_cooldown = int(value)
-        elif name == 'LaunchConfigurationName':
-            self.launch_config_name = value
-        elif name == 'DesiredCapacity':
-            self.desired_capacity = int(value)
-        elif name == 'MaxSize':
-            self.max_size = int(value)
-        elif name == 'AutoScalingGroupName':
-            self.name = value
-        elif name == 'PlacementGroup':
-            self.placement_group = value
-        elif name == 'HealthCheckGracePeriod':
-            try:
-                self.health_check_period = int(value)
-            except ValueError:
-                self.health_check_period = None
-        elif name == 'HealthCheckType':
-            self.health_check_type = value
-        elif name == 'VPCZoneIdentifier':
-            self.vpc_zone_identifier = value
-        elif name == 'InstanceId':
-            self.instance_id = value
-        else:
-            setattr(self, name, value)
-
-    def set_capacity(self, capacity):
-        """
-        Set the desired capacity for the group.
-        """
-        params = {'AutoScalingGroupName': self.name,
-                  'DesiredCapacity': capacity}
-        req = self.connection.get_object('SetDesiredCapacity', params,
-                                         Request)
-        self.connection.last_request = req
-        return req
-
-    def update(self):
-        """
-        Sync local changes with AutoScaling group.
-        """
-        return self.connection._update_group('UpdateAutoScalingGroup', self)
-
-    def shutdown_instances(self):
-        """
-        Convenience method which shuts down all instances associated with
-        this group.
-        """
-        self.min_size = 0
-        self.max_size = 0
-        self.desired_capacity = 0
-        self.update()
-
-    def delete(self, force_delete=False):
-        """
-        Delete this auto-scaling group if no instances attached or no
-        scaling activities in progress.
-        """
-        return self.connection.delete_auto_scaling_group(self.name,
-                                                         force_delete)
-
-    def get_activities(self, activity_ids=None, max_records=50):
-        """
-        Get all activies for this group.
-        """
-        return self.connection.get_all_activities(self, activity_ids,
-                                                  max_records)
-
-    def put_notification_configuration(self, topic, notification_types):
-        """
-        Configures an Auto Scaling group to send notifications when
-        specified events take place. Valid notification types are:
-        'autoscaling:EC2_INSTANCE_LAUNCH',
-        'autoscaling:EC2_INSTANCE_LAUNCH_ERROR',
-        'autoscaling:EC2_INSTANCE_TERMINATE',
-        'autoscaling:EC2_INSTANCE_TERMINATE_ERROR',
-        'autoscaling:TEST_NOTIFICATION'
-        """
-        return self.connection.put_notification_configuration(self,
-                                                              topic,
-                                                              notification_types)
-
-    def delete_notification_configuration(self, topic):
-        """
-        Deletes notifications created by put_notification_configuration.
-        """
-        return self.connection.delete_notification_configuration(self, topic)
-
-    def suspend_processes(self, scaling_processes=None):
-        """
-        Suspends Auto Scaling processes for an Auto Scaling group.
-        """
-        return self.connection.suspend_processes(self.name, scaling_processes)
-
-    def resume_processes(self, scaling_processes=None):
-        """
-        Resumes Auto Scaling processes for an Auto Scaling group.
-        """
-        return self.connection.resume_processes(self.name, scaling_processes)
-
-
-class AutoScalingGroupMetric(object):
-    def __init__(self, connection=None):
-
-        self.connection = connection
-        self.metric = None
-        self.granularity = None
-
-    def __repr__(self):
-        return 'AutoScalingGroupMetric:%s' % self.metric
-
-    def startElement(self, name, attrs, connection):
-        return
-
-    def endElement(self, name, value, connection):
-        if name == 'Metric':
-            self.metric = value
-        elif name == 'Granularity':
-            self.granularity = value
-        else:
-            setattr(self, name, value)