Python boto.ec2.connect_to_region() Examples
The following are 30
code examples of boto.ec2.connect_to_region().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
boto.ec2
, or try the search function
.
Example #1
Source File: ec2.py From aws-monocyte with Apache License 2.0 | 6 votes |
def delete(self, resource): if resource.wrapped.state in Instance.VALID_TARGET_STATES: raise Warning("state '{0}' is a valid target state, skipping".format( resource.wrapped.state)) connection = ec2.connect_to_region(resource.region) if self.dry_run: try: connection.terminate_instances([resource.wrapped.id], dry_run=True) except EC2ResponseError as exc: if exc.status == 412: # Precondition Failed raise Warning("Termination {message}".format(**vars(exc))) raise else: instances = connection.terminate_instances([resource.wrapped.id], dry_run=False) self.logger.info("Initiating shutdown sequence for {0}".format(instances)) return instances
Example #2
Source File: ec2.py From pentagon with Apache License 2.0 | 6 votes |
def get_rds_instances_by_region(self, region): ''' Makes an AWS API call to the list of RDS instances in a particular region ''' try: conn = rds.connect_to_region(region) if conn: instances = conn.get_all_dbinstances() for instance in instances: self.add_rds_instance(instance, region) except boto.exception.BotoServerError as e: error = e.reason if e.error_code == 'AuthFailure': error = self.get_auth_error_message() if not e.reason == "Forbidden": error = "Looks like AWS RDS is down:\n%s" % e.message self.fail_with_error(error, 'getting RDS instances')
Example #3
Source File: ec2SSH.py From Tango with Apache License 2.0 | 6 votes |
def __init__(self, accessKeyId=None, accessKey=None): """ log - logger for the instance connection - EC2Connection object that stores the connection info to the EC2 network instance - Instance object that stores information about the VM created """ self.ssh_flags = Ec2SSH._SSH_FLAGS if accessKeyId: self.connection = ec2.connect_to_region(config.Config.EC2_REGION, aws_access_key_id=accessKeyId, aws_secret_access_key=accessKey) self.useDefaultKeyPair = False else: self.connection = ec2.connect_to_region(config.Config.EC2_REGION) self.useDefaultKeyPair = True self.log = logging.getLogger("Ec2SSH")
Example #4
Source File: ec2.py From demo-ansible with Apache License 2.0 | 6 votes |
def get_instance(self, region, instance_id): ''' Gets details about a specific instance ''' if self.eucalyptus: conn = boto.connect_euca(self.eucalyptus_host) conn.APIVersion = '2010-08-31' else: conn = ec2.connect_to_region(region) # connect_to_region will fail "silently" by returning None if the region name is wrong or not supported if conn is None: print("region name: %s likely not supported, or AWS is down. connection to region failed." % region) sys.exit(1) reservations = conn.get_all_instances([instance_id]) for reservation in reservations: for instance in reservation.instances: return instance
Example #5
Source File: ec2.py From splunk-ansible-advance with Apache License 2.0 | 6 votes |
def get_instance(self, region, instance_id): ''' Gets details about a specific instance ''' if self.eucalyptus: conn = boto.connect_euca(self.eucalyptus_host) conn.APIVersion = '2010-08-31' else: conn = ec2.connect_to_region(region) # connect_to_region will fail "silently" by returning None if the region name is wrong or not supported if conn is None: print("region name: %s likely not supported, or AWS is down. connection to region failed." % region) sys.exit(1) reservations = conn.get_all_instances([instance_id]) for reservation in reservations: for instance in reservation.instances: return instance
Example #6
Source File: ec2.py From edx-analytics-pipeline with GNU Affero General Public License v3.0 | 6 votes |
def get_instance(self, region, instance_id): ''' Gets details about a specific instance ''' if self.eucalyptus: conn = boto.connect_euca(self.eucalyptus_host) conn.APIVersion = '2010-08-31' else: conn = ec2.connect_to_region(region) # connect_to_region will fail "silently" by returning None if the region name is wrong or not supported if conn is None: print("region name: %s likely not supported, or AWS is down. connection to region failed." % region) sys.exit(1) reservations = conn.get_all_instances([instance_id]) for reservation in reservations: for instance in reservation.instances: return instance
Example #7
Source File: ec2.py From ansible_ec2_vpc_nat_asg with MIT License | 6 votes |
def get_rds_instances_by_region(self, region): ''' Makes an AWS API call to the list of RDS instances in a particular region ''' try: conn = rds.connect_to_region(region) if conn: instances = conn.get_all_dbinstances() for instance in instances: self.add_rds_instance(instance, region) except boto.exception.BotoServerError as e: error = e.reason if e.error_code == 'AuthFailure': error = self.get_auth_error_message() if not e.reason == "Forbidden": error = "Looks like AWS RDS is down:\n%s" % e.message self.fail_with_error(error)
Example #8
Source File: ec2inventory.py From ops-cli with Apache License 2.0 | 6 votes |
def get_instance(self, region, instance_id): """ Gets details about a specific instance """ conn = ec2.connect_to_region(region) # connect_to_region will fail "silently" by returning None if the # region name is wrong or not supported if conn is None: sys.exit( "region name: %s likely not supported, or AWS is down. " "connection to region failed." % region ) reservations = conn.get_all_instances([instance_id]) for reservation in reservations: for instance in reservation.instances: return instance
Example #9
Source File: ec2.py From ansible-dc-ec2-tutorial with MIT License | 6 votes |
def get_instance(self, region, instance_id): ''' Gets details about a specific instance ''' if self.eucalyptus: conn = boto.connect_euca(self.eucalyptus_host) conn.APIVersion = '2010-08-31' else: conn = ec2.connect_to_region(region) # connect_to_region will fail "silently" by returning None if the region name is wrong or not supported if conn is None: print("region name: %s likely not supported, or AWS is down. connection to region failed." % region) sys.exit(1) reservations = conn.get_all_instances([instance_id]) for reservation in reservations: for instance in reservation.instances: return instance
Example #10
Source File: ec2.py From ansible-for-devops with MIT License | 6 votes |
def get_instance(self, region, instance_id): ''' Gets details about a specific instance ''' if self.eucalyptus: conn = boto.connect_euca(self.eucalyptus_host) conn.APIVersion = '2010-08-31' else: conn = ec2.connect_to_region(region) # connect_to_region will fail "silently" by returning None if the region name is wrong or not supported if conn is None: print("region name: %s likely not supported, or AWS is down. connection to region failed." % region) sys.exit(1) reservations = conn.get_all_instances([instance_id]) for reservation in reservations: for instance in reservation.instances: return instance
Example #11
Source File: ec2.py From ansible-mezzanine with MIT License | 6 votes |
def get_instance(self, region, instance_id): ''' Gets details about a specific instance ''' if self.eucalyptus: conn = boto.connect_euca(self.eucalyptus_host) conn.APIVersion = '2010-08-31' else: conn = ec2.connect_to_region(region) # connect_to_region will fail "silently" by returning None if the region name is wrong or not supported if conn is None: print("region name: %s likely not supported, or AWS is down. connection to region failed." % region) sys.exit(1) reservations = conn.get_all_instances([instance_id]) for reservation in reservations: for instance in reservation.instances: return instance
Example #12
Source File: ec2.py From cassandra-test-and-deploy with Apache License 2.0 | 6 votes |
def get_instance(self, region, instance_id): ''' Gets details about a specific instance ''' if self.eucalyptus: conn = boto.connect_euca(self.eucalyptus_host) conn.APIVersion = '2010-08-31' else: conn = ec2.connect_to_region(region) # connect_to_region will fail "silently" by returning None if the region name is wrong or not supported if conn is None: print("region name: %s likely not supported, or AWS is down. connection to region failed." % region) sys.exit(1) reservations = conn.get_all_instances([instance_id]) for reservation in reservations: for instance in reservation.instances: return instance
Example #13
Source File: ec2.py From edx-analytics-pipeline with GNU Affero General Public License v3.0 | 5 votes |
def get_instances_by_region(self, region): ''' Makes an AWS EC2 API call to the list of instances in a particular region ''' try: if self.eucalyptus: conn = boto.connect_euca(host=self.eucalyptus_host) conn.APIVersion = '2010-08-31' else: conn = ec2.connect_to_region(region) # connect_to_region will fail "silently" by returning None if the region name is wrong or not supported if conn is None: print("region name: %s likely not supported, or AWS is down. connection to region failed." % region) sys.exit(1) reservations = conn.get_all_instances() for reservation in reservations: instances = sorted(reservation.instances) for instance in instances: self.add_instance(instance, region) except boto.exception.BotoServerError as e: if not self.eucalyptus: print "Looks like AWS is down again:" print e sys.exit(1)
Example #14
Source File: ec2.py From pentagon with Apache License 2.0 | 5 votes |
def connect(self, region): ''' create connection to api server''' if self.eucalyptus: conn = boto.connect_euca(host=self.eucalyptus_host) conn.APIVersion = '2010-08-31' else: conn = ec2.connect_to_region(region) # connect_to_region will fail "silently" by returning None if the region name is wrong or not supported if conn is None: self.fail_with_error("region name: %s likely not supported, or AWS is down. connection to region failed." % region) return conn
Example #15
Source File: ec2.py From edx-analytics-pipeline with GNU Affero General Public License v3.0 | 5 votes |
def get_rds_instances_by_region(self, region): ''' Makes an AWS API call to the list of RDS instances in a particular region ''' try: conn = rds.connect_to_region(region) if conn: instances = conn.get_all_dbinstances() for instance in instances: self.add_rds_instance(instance, region) except boto.exception.BotoServerError as e: print "Looks like AWS RDS is down: " print e sys.exit(1)
Example #16
Source File: ec2.py From cassandra-test-and-deploy with Apache License 2.0 | 5 votes |
def get_instances_by_region(self, region): ''' Makes an AWS EC2 API call to the list of instances in a particular region ''' try: if self.eucalyptus: conn = boto.connect_euca(host=self.eucalyptus_host) conn.APIVersion = '2010-08-31' else: conn = ec2.connect_to_region(region) # connect_to_region will fail "silently" by returning None if the region name is wrong or not supported if conn is None: print("region name: %s likely not supported, or AWS is down. connection to region failed." % region) sys.exit(1) reservations = [] if self.ec2_instance_filters: for filter_key, filter_values in self.ec2_instance_filters.iteritems(): reservations.extend(conn.get_all_instances(filters = { filter_key : filter_values })) else: reservations = conn.get_all_instances() for reservation in reservations: for instance in reservation.instances: self.add_instance(instance, region) except boto.exception.BotoServerError, e: if not self.eucalyptus: print "Looks like AWS is down again:" print e sys.exit(1)
Example #17
Source File: ec2.py From cassandra-test-and-deploy with Apache License 2.0 | 5 votes |
def get_rds_instances_by_region(self, region): ''' Makes an AWS API call to the list of RDS instances in a particular region ''' try: conn = rds.connect_to_region(region) if conn: instances = conn.get_all_dbinstances() for instance in instances: self.add_rds_instance(instance, region) except boto.exception.BotoServerError, e: if not e.reason == "Forbidden": print "Looks like AWS RDS is down: " print e sys.exit(1)
Example #18
Source File: ec2.py From ansible-dc-ec2-tutorial with MIT License | 5 votes |
def get_instances_by_region(self, region): ''' Makes an AWS EC2 API call to the list of instances in a particular region ''' try: if self.eucalyptus: conn = boto.connect_euca(host=self.eucalyptus_host) conn.APIVersion = '2010-08-31' else: conn = ec2.connect_to_region(region) # connect_to_region will fail "silently" by returning None if the region name is wrong or not supported if conn is None: print("region name: %s likely not supported, or AWS is down. connection to region failed." % region) sys.exit(1) reservations = [] if self.ec2_instance_filters: for filter_key, filter_values in self.ec2_instance_filters.iteritems(): reservations.extend(conn.get_all_instances(filters = { filter_key : filter_values })) else: reservations = conn.get_all_instances() for reservation in reservations: for instance in reservation.instances: self.add_instance(instance, region) except boto.exception.BotoServerError, e: if not self.eucalyptus: print "Looks like AWS is down again:" print e sys.exit(1)
Example #19
Source File: ec2.py From ansible-dc-ec2-tutorial with MIT License | 5 votes |
def get_rds_instances_by_region(self, region): ''' Makes an AWS API call to the list of RDS instances in a particular region ''' try: conn = rds.connect_to_region(region) if conn: instances = conn.get_all_dbinstances() for instance in instances: self.add_rds_instance(instance, region) except boto.exception.BotoServerError, e: if not e.reason == "Forbidden": print "Looks like AWS RDS is down: " print e sys.exit(1)
Example #20
Source File: ec2.py From demo-ansible with Apache License 2.0 | 5 votes |
def get_instances_by_region(self, region): ''' Makes an AWS EC2 API call to the list of instances in a particular region ''' try: if self.eucalyptus: conn = boto.connect_euca(host=self.eucalyptus_host) conn.APIVersion = '2010-08-31' else: conn = ec2.connect_to_region(region) # connect_to_region will fail "silently" by returning None if the region name is wrong or not supported if conn is None: print("region name: %s likely not supported, or AWS is down. connection to region failed." % region) sys.exit(1) reservations = [] if self.ec2_instance_filters: for filter_key, filter_values in self.ec2_instance_filters.iteritems(): reservations.extend(conn.get_all_instances(filters = { filter_key : filter_values })) else: reservations = conn.get_all_instances() for reservation in reservations: for instance in reservation.instances: self.add_instance(instance, region) except boto.exception.BotoServerError, e: if not self.eucalyptus: print "Looks like AWS is down again:" print e sys.exit(1)
Example #21
Source File: ec2.py From demo-ansible with Apache License 2.0 | 5 votes |
def get_rds_instances_by_region(self, region): ''' Makes an AWS API call to the list of RDS instances in a particular region ''' try: conn = rds.connect_to_region(region) if conn: instances = conn.get_all_dbinstances() for instance in instances: self.add_rds_instance(instance, region) except boto.exception.BotoServerError, e: if not e.reason == "Forbidden": print "Looks like AWS RDS is down: " print e sys.exit(1)
Example #22
Source File: fleet.py From sync-engine with GNU Affero General Public License v3.0 | 5 votes |
def get_sync_hosts_in_zone(zone, level, include_debug=False): # Hack to make local dev VM work. if zone is None: return [{'name': 'localhost', 'ip_address': '127.0.0.1', 'num_procs': 4}] instances = [] regions = ec2.regions() for region in regions: if not zone.startswith(region.name): continue try: conn = ec2.connect_to_region(region.name) if conn is None: continue for r in conn.get_all_instances(): for i in r.instances: if i.placement != zone: continue if i.tags.get('Role') != 'sync': continue if i.tags.get('Level') != level: continue if not include_debug and i.tags.get('Debug') == 'true': continue instances.append(i) except: print "Unable to connect to region {}".format(region.name) raise return [{ 'name': i.tags.get('Name'), 'ip_address': i.private_ip_address, 'num_procs': num_vcpus(i.instance_type) * 2, 'debug': i.tags.get('Debug') == 'true', } for i in instances]
Example #23
Source File: fleet.py From sync-engine with GNU Affero General Public License v3.0 | 5 votes |
def get_random_sync_host(level): instances = [] if level not in ('staging', 'prod'): return None regions = ec2.regions() for region in regions: try: conn = ec2.connect_to_region(region.name) for reservation in conn.get_all_instances(): for instance in reservation.instances: instances.append(instance) instances = filter(lambda instance: instance.state == "running", instances) instances = filter(lambda instance: instance.tags.get('Role') == "sync", instances) instances = filter(lambda instance: instance.tags.get('Level') == level, instances) instances = filter(lambda instance: instance.tags.get('Debug') == 'false' , instances) except: print "Unable to connect to region {}".format(region.name) raise instance = random.choice(instances) return instance.tags.get('Name') # For whatever reason, the ec2 API doesn't provide us with an easy way to get # the CPU count :-( # These numbers were grabbed from https://aws.amazon.com/ec2/instance-types/
Example #24
Source File: init_lib.py From ceph-auto-aws with BSD 3-Clause "New" or "Revised" License | 5 votes |
def init_region( r ): """ Takes a region string. Connects to that region. Returns EC2Connection and VPCConnection objects in a tuple. """ # connect to region c = vpc.connect_to_region( r ) ec = ec2.connect_to_region( r ) return ( c, ec )
Example #25
Source File: ec2.py From pentagon with Apache License 2.0 | 5 votes |
def get_elasticache_replication_groups_by_region(self, region): ''' Makes an AWS API call to the list of ElastiCache replication groups in a particular region.''' # ElastiCache boto module doesn't provide a get_all_intances method, # that's why we need to call describe directly (it would be called by # the shorthand method anyway...) try: conn = elasticache.connect_to_region(region) if conn: response = conn.describe_replication_groups() except boto.exception.BotoServerError as e: error = e.reason if e.error_code == 'AuthFailure': error = self.get_auth_error_message() if not e.reason == "Forbidden": error = "Looks like AWS ElastiCache [Replication Groups] is down:\n%s" % e.message self.fail_with_error(error, 'getting ElastiCache clusters') try: # Boto also doesn't provide wrapper classes to ReplicationGroups # Because of that wo can't make use of the get_list method in the # AWSQueryConnection. Let's do the work manually replication_groups = response['DescribeReplicationGroupsResponse']['DescribeReplicationGroupsResult']['ReplicationGroups'] except KeyError as e: error = "ElastiCache [Replication Groups] query to AWS failed (unexpected format)." self.fail_with_error(error, 'getting ElastiCache clusters') for replication_group in replication_groups: self.add_elasticache_replication_group(replication_group, region)
Example #26
Source File: ec2.py From pentagon with Apache License 2.0 | 5 votes |
def get_elasticache_clusters_by_region(self, region): ''' Makes an AWS API call to the list of ElastiCache clusters (with nodes' info) in a particular region.''' # ElastiCache boto module doesn't provide a get_all_intances method, # that's why we need to call describe directly (it would be called by # the shorthand method anyway...) try: conn = elasticache.connect_to_region(region) if conn: # show_cache_node_info = True # because we also want nodes' information response = conn.describe_cache_clusters(None, None, None, True) except boto.exception.BotoServerError as e: error = e.reason if e.error_code == 'AuthFailure': error = self.get_auth_error_message() if not e.reason == "Forbidden": error = "Looks like AWS ElastiCache is down:\n%s" % e.message self.fail_with_error(error, 'getting ElastiCache clusters') try: # Boto also doesn't provide wrapper classes to CacheClusters or # CacheNodes. Because of that wo can't make use of the get_list # method in the AWSQueryConnection. Let's do the work manually clusters = response['DescribeCacheClustersResponse']['DescribeCacheClustersResult']['CacheClusters'] except KeyError as e: error = "ElastiCache query to AWS failed (unexpected format)." self.fail_with_error(error, 'getting ElastiCache clusters') for cluster in clusters: self.add_elasticache_cluster(cluster, region)
Example #27
Source File: _aws.py From flocker with Apache License 2.0 | 5 votes |
def aws_provisioner( access_key, secret_access_token, keyname, region, zone, security_groups, instance_type=b"m3.large", session_token=None, ): """ Create an IProvisioner for provisioning nodes on AWS EC2. :param bytes access_key: The access_key to connect to AWS with. :param bytes secret_access_token: The corresponding secret token. :param bytes region: The AWS region in which to launch the instance. :param bytes zone: The AWS zone in which to launch the instance. :param bytes keyname: The name of an existing ssh public key configured in AWS. The provision step assumes the corresponding private key is available from an agent. :param list security_groups: List of security groups to put created nodes in. :param bytes instance_type: AWS instance type for cluster nodes. :param bytes session_token: The optional session token, if required for connection. """ conn = connect_to_region( region, aws_access_key_id=access_key, aws_secret_access_key=secret_access_token, security_token=session_token, ) if conn is None: raise ValueError("Invalid region: {}".format(region)) return AWSProvisioner( _connection=conn, _keyname=keyname, _security_groups=security_groups, _zone=zone, _default_size=instance_type, )
Example #28
Source File: ec2.py From ansible-mezzanine with MIT License | 5 votes |
def get_rds_instances_by_region(self, region): ''' Makes an AWS API call to the list of RDS instances in a particular region ''' try: conn = rds.connect_to_region(region) if conn: instances = conn.get_all_dbinstances() for instance in instances: self.add_rds_instance(instance, region) except boto.exception.BotoServerError, e: if not e.reason == "Forbidden": print "Looks like AWS RDS is down: " print e sys.exit(1)
Example #29
Source File: ec2.py From ansible-mezzanine with MIT License | 5 votes |
def get_instances_by_region(self, region): ''' Makes an AWS EC2 API call to the list of instances in a particular region ''' try: if self.eucalyptus: conn = boto.connect_euca(host=self.eucalyptus_host) conn.APIVersion = '2010-08-31' else: conn = ec2.connect_to_region(region) # connect_to_region will fail "silently" by returning None if the region name is wrong or not supported if conn is None: print("region name: %s likely not supported, or AWS is down. connection to region failed." % region) sys.exit(1) reservations = [] if self.ec2_instance_filters: for filter_key, filter_values in self.ec2_instance_filters.iteritems(): reservations.extend(conn.get_all_instances(filters = { filter_key : filter_values })) else: reservations = conn.get_all_instances() for reservation in reservations: for instance in reservation.instances: self.add_instance(instance, region) except boto.exception.BotoServerError, e: if not self.eucalyptus: print "Looks like AWS is down again:" print e sys.exit(1)
Example #30
Source File: connection_manager.py From automated-ebs-snapshots with Apache License 2.0 | 5 votes |
def connect_to_ec2(region='us-east-1', access_key=None, secret_key=None): """ Connect to AWS ec2 :type region: str :param region: AWS region to connect to :type access_key: str :param access_key: AWS access key id :type secret_key: str :param secret_key: AWS secret access key :returns: boto.ec2.connection.EC2Connection -- EC2 connection """ if access_key: # Connect using supplied credentials logger.info('Connecting to AWS EC2 in {}'.format(region)) connection = ec2.connect_to_region( region, aws_access_key_id=access_key, aws_secret_access_key=secret_key) else: # Fetch instance metadata metadata = get_instance_metadata(timeout=1, num_retries=1) if metadata: try: region = metadata['placement']['availability-zone'][:-1] except KeyError: pass # Connect using env vars or boto credentials logger.info('Connecting to AWS EC2 in {}'.format(region)) connection = ec2.connect_to_region(region) if not connection: logger.error('An error occurred when connecting to EC2') sys.exit(1) return connection