Mercurial > repos > shellac > guppy_basecaller
diff env/lib/python3.7/site-packages/boto/ec2/elb/loadbalancer.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/elb/loadbalancer.py Thu May 14 16:47:39 2020 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,419 +0,0 @@ -# Copyright (c) 2006-2012 Mitch Garnaat http://garnaat.org/ -# 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. - -from boto.ec2.elb.healthcheck import HealthCheck -from boto.ec2.elb.listener import Listener -from boto.ec2.elb.listelement import ListElement -from boto.ec2.elb.policies import Policies, OtherPolicy -from boto.ec2.elb.securitygroup import SecurityGroup -from boto.ec2.instanceinfo import InstanceInfo -from boto.resultset import ResultSet -from boto.compat import six - - -class Backend(object): - """Backend server description""" - - def __init__(self, connection=None): - self.connection = connection - self.instance_port = None - self.policies = None - - def __repr__(self): - return 'Backend(%r:%r)' % (self.instance_port, self.policies) - - def startElement(self, name, attrs, connection): - if name == 'PolicyNames': - self.policies = ResultSet([('member', OtherPolicy)]) - return self.policies - - def endElement(self, name, value, connection): - if name == 'InstancePort': - self.instance_port = int(value) - return - - -class LoadBalancerZones(object): - """ - Used to collect the zones for a Load Balancer when enable_zones - or disable_zones are called. - """ - def __init__(self, connection=None): - self.connection = connection - self.zones = ListElement() - - def startElement(self, name, attrs, connection): - if name == 'AvailabilityZones': - return self.zones - - def endElement(self, name, value, connection): - pass - - -class LoadBalancer(object): - """ - Represents an EC2 Load Balancer. - """ - - def __init__(self, connection=None, name=None, endpoints=None): - """ - :ivar boto.ec2.elb.ELBConnection connection: The connection this load - balancer was instance was instantiated from. - :ivar list listeners: A list of tuples in the form of - ``(<Inbound port>, <Outbound port>, <Protocol>)`` - :ivar boto.ec2.elb.healthcheck.HealthCheck health_check: The health - check policy for this load balancer. - :ivar boto.ec2.elb.policies.Policies policies: Cookie stickiness and - other policies. - :ivar str name: The name of the Load Balancer. - :ivar str dns_name: The external DNS name for the balancer. - :ivar str created_time: A date+time string showing when the - load balancer was created. - :ivar list instances: A list of :py:class:`boto.ec2.instanceinfo.InstanceInfo` - instances, representing the EC2 instances this load balancer is - distributing requests to. - :ivar list availability_zones: The availability zones this balancer - covers. - :ivar str canonical_hosted_zone_name: Current CNAME for the balancer. - :ivar str canonical_hosted_zone_name_id: The Route 53 hosted zone - ID of this balancer. Needed when creating an Alias record in a - Route 53 hosted zone. - :ivar boto.ec2.elb.securitygroup.SecurityGroup source_security_group: - The security group that you can use as part of your inbound rules - for your load balancer back-end instances to disallow traffic - from sources other than your load balancer. - :ivar list subnets: A list of subnets this balancer is on. - :ivar list security_groups: A list of additional security groups that - have been applied. - :ivar str vpc_id: The ID of the VPC that this ELB resides within. - :ivar list backends: A list of :py:class:`boto.ec2.elb.loadbalancer.Backend - back-end server descriptions. - """ - self.connection = connection - self.name = name - self.listeners = None - self.health_check = None - self.policies = None - self.dns_name = None - self.created_time = None - self.instances = None - self.availability_zones = ListElement() - self.canonical_hosted_zone_name = None - self.canonical_hosted_zone_name_id = None - self.source_security_group = None - self.subnets = ListElement() - self.security_groups = ListElement() - self.vpc_id = None - self.scheme = None - self.backends = None - self._attributes = None - - def __repr__(self): - return 'LoadBalancer:%s' % self.name - - def startElement(self, name, attrs, connection): - if name == 'HealthCheck': - self.health_check = HealthCheck(self) - return self.health_check - elif name == 'ListenerDescriptions': - self.listeners = ResultSet([('member', Listener)]) - return self.listeners - elif name == 'AvailabilityZones': - return self.availability_zones - elif name == 'Instances': - self.instances = ResultSet([('member', InstanceInfo)]) - return self.instances - elif name == 'Policies': - self.policies = Policies(self) - return self.policies - elif name == 'SourceSecurityGroup': - self.source_security_group = SecurityGroup() - return self.source_security_group - elif name == 'Subnets': - return self.subnets - elif name == 'SecurityGroups': - return self.security_groups - elif name == 'VPCId': - pass - elif name == "BackendServerDescriptions": - self.backends = ResultSet([('member', Backend)]) - return self.backends - else: - return None - - def endElement(self, name, value, connection): - if name == 'LoadBalancerName': - self.name = value - elif name == 'DNSName': - self.dns_name = value - elif name == 'CreatedTime': - self.created_time = value - elif name == 'InstanceId': - self.instances.append(value) - elif name == 'CanonicalHostedZoneName': - self.canonical_hosted_zone_name = value - elif name == 'CanonicalHostedZoneNameID': - self.canonical_hosted_zone_name_id = value - elif name == 'VPCId': - self.vpc_id = value - elif name == 'Scheme': - self.scheme = value - else: - setattr(self, name, value) - - def enable_zones(self, zones): - """ - Enable availability zones to this Access Point. - All zones must be in the same region as the Access Point. - - :type zones: string or List of strings - :param zones: The name of the zone(s) to add. - - """ - if isinstance(zones, six.string_types): - zones = [zones] - new_zones = self.connection.enable_availability_zones(self.name, zones) - self.availability_zones = new_zones - - def disable_zones(self, zones): - """ - Disable availability zones from this Access Point. - - :type zones: string or List of strings - :param zones: The name of the zone(s) to add. - - """ - if isinstance(zones, six.string_types): - zones = [zones] - new_zones = self.connection.disable_availability_zones( - self.name, zones) - self.availability_zones = new_zones - - def get_attributes(self, force=False): - """ - Gets the LbAttributes. The Attributes will be cached. - - :type force: bool - :param force: Ignore cache value and reload. - - :rtype: boto.ec2.elb.attributes.LbAttributes - :return: The LbAttribues object - """ - if not self._attributes or force: - self._attributes = self.connection.get_all_lb_attributes(self.name) - return self._attributes - - def is_cross_zone_load_balancing(self, force=False): - """ - Identifies if the ELB is current configured to do CrossZone Balancing. - - :type force: bool - :param force: Ignore cache value and reload. - - :rtype: bool - :return: True if balancing is enabled, False if not. - """ - return self.get_attributes(force).cross_zone_load_balancing.enabled - - def enable_cross_zone_load_balancing(self): - """ - Turns on CrossZone Load Balancing for this ELB. - - :rtype: bool - :return: True if successful, False if not. - """ - success = self.connection.modify_lb_attribute( - self.name, 'crossZoneLoadBalancing', True) - if success and self._attributes: - self._attributes.cross_zone_load_balancing.enabled = True - return success - - def disable_cross_zone_load_balancing(self): - """ - Turns off CrossZone Load Balancing for this ELB. - - :rtype: bool - :return: True if successful, False if not. - """ - success = self.connection.modify_lb_attribute( - self.name, 'crossZoneLoadBalancing', False) - if success and self._attributes: - self._attributes.cross_zone_load_balancing.enabled = False - return success - - def register_instances(self, instances): - """ - Adds instances to this load balancer. All instances must be in the same - region as the load balancer. Adding endpoints that are already - registered with the load balancer has no effect. - - :param list instances: List of instance IDs (strings) that you'd like - to add to this load balancer. - - """ - if isinstance(instances, six.string_types): - instances = [instances] - new_instances = self.connection.register_instances(self.name, - instances) - self.instances = new_instances - - def deregister_instances(self, instances): - """ - Remove instances from this load balancer. Removing instances that are - not registered with the load balancer has no effect. - - :param list instances: List of instance IDs (strings) that you'd like - to remove from this load balancer. - - """ - if isinstance(instances, six.string_types): - instances = [instances] - new_instances = self.connection.deregister_instances(self.name, - instances) - self.instances = new_instances - - def delete(self): - """ - Delete this load balancer. - """ - return self.connection.delete_load_balancer(self.name) - - def configure_health_check(self, health_check): - """ - Configures the health check behavior for the instances behind this - load balancer. See :ref:`elb-configuring-a-health-check` for a - walkthrough. - - :param boto.ec2.elb.healthcheck.HealthCheck health_check: A - HealthCheck instance that tells the load balancer how to check - its instances for health. - """ - return self.connection.configure_health_check(self.name, health_check) - - def get_instance_health(self, instances=None): - """ - Returns a list of :py:class:`boto.ec2.elb.instancestate.InstanceState` - objects, which show the health of the instances attached to this - load balancer. - - :rtype: list - :returns: A list of - :py:class:`InstanceState <boto.ec2.elb.instancestate.InstanceState>` - instances, representing the instances - attached to this load balancer. - """ - return self.connection.describe_instance_health(self.name, instances) - - def create_listeners(self, listeners): - return self.connection.create_load_balancer_listeners(self.name, - listeners) - - def create_listener(self, inPort, outPort=None, proto="tcp"): - if outPort is None: - outPort = inPort - return self.create_listeners([(inPort, outPort, proto)]) - - def delete_listeners(self, listeners): - return self.connection.delete_load_balancer_listeners(self.name, - listeners) - - def delete_listener(self, inPort): - return self.delete_listeners([inPort]) - - def delete_policy(self, policy_name): - """ - Deletes a policy from the LoadBalancer. The specified policy must not - be enabled for any listeners. - """ - return self.connection.delete_lb_policy(self.name, policy_name) - - def set_policies_of_listener(self, lb_port, policies): - return self.connection.set_lb_policies_of_listener(self.name, - lb_port, - policies) - - def set_policies_of_backend_server(self, instance_port, policies): - return self.connection.set_lb_policies_of_backend_server( - self.name, instance_port, policies) - - def create_cookie_stickiness_policy(self, cookie_expiration_period, - policy_name): - return self.connection.create_lb_cookie_stickiness_policy( - cookie_expiration_period, self.name, policy_name) - - def create_app_cookie_stickiness_policy(self, name, policy_name): - return self.connection.create_app_cookie_stickiness_policy(name, - self.name, - policy_name) - - def set_listener_SSL_certificate(self, lb_port, ssl_certificate_id): - return self.connection.set_lb_listener_SSL_certificate( - self.name, lb_port, ssl_certificate_id) - - def create_lb_policy(self, policy_name, policy_type, policy_attribute): - return self.connection.create_lb_policy( - self.name, policy_name, policy_type, policy_attribute) - - def attach_subnets(self, subnets): - """ - Attaches load balancer to one or more subnets. - Attaching subnets that are already registered with the - Load Balancer has no effect. - - :type subnets: string or List of strings - :param subnets: The name of the subnet(s) to add. - - """ - if isinstance(subnets, six.string_types): - subnets = [subnets] - new_subnets = self.connection.attach_lb_to_subnets(self.name, subnets) - self.subnets = new_subnets - - def detach_subnets(self, subnets): - """ - Detaches load balancer from one or more subnets. - - :type subnets: string or List of strings - :param subnets: The name of the subnet(s) to detach. - - """ - if isinstance(subnets, six.string_types): - subnets = [subnets] - new_subnets = self.connection.detach_lb_from_subnets( - self.name, subnets) - self.subnets = new_subnets - - def apply_security_groups(self, security_groups): - """ - Associates one or more security groups with the load balancer. - The provided security groups will override any currently applied - security groups. - - :type security_groups: string or List of strings - :param security_groups: The name of the security group(s) to add. - - """ - if isinstance(security_groups, six.string_types): - security_groups = [security_groups] - new_sgs = self.connection.apply_security_groups_to_lb( - self.name, security_groups) - self.security_groups = new_sgs
