我们从Python开源项目中,提取了以下11个代码示例,用于说明如何使用boto.ec2.get_all_reservations()。
def get_instance_map(cluster): CONSOLE.debug('Checking details of created instances') region = PNDA_ENV['ec2_access']['AWS_REGION'] ec2 = boto.ec2.connect_to_region(region) reservations = ec2.get_all_reservations() instance_map = {} for reservation in reservations: for instance in reservation.instances: if 'pnda_cluster' in instance.tags and instance.tags['pnda_cluster'] == cluster and instance.state == 'running': CONSOLE.debug(instance.private_ip_address, ' ', instance.tags['Name']) instance_map[instance.tags['Name']] = { "public_dns": instance.public_dns_name, "ip_address": instance.ip_address, "private_ip_address":instance.private_ip_address, "name": instance.tags['Name'], "node_idx": instance.tags['node_idx'], "node_type": instance.tags['node_type'] } return instance_map
def create_from_instance_id(cls, instance_id, name, description=''): regions = boto.ec2.regions() for region in regions: ec2 = region.connect() try: rs = ec2.get_all_reservations([instance_id]) except: rs = [] if len(rs) == 1: s = cls() s.ec2 = ec2 s.name = name s.description = description s.region_name = region.name s.instance_id = instance_id s._reservation = rs[0] for instance in s._reservation.instances: if instance.id == instance_id: s._instance = instance s.put() return s return None
def create_from_current_instances(cls): servers = [] regions = boto.ec2.regions() for region in regions: ec2 = region.connect() rs = ec2.get_all_reservations() for reservation in rs: for instance in reservation.instances: try: next(Server.find(instance_id=instance.id)) boto.log.info('Server for %s already exists' % instance.id) except StopIteration: s = cls() s.ec2 = ec2 s.name = instance.id s.region_name = region.name s.instance_id = instance.id s._reservation = reservation s.put() servers.append(s) return servers
def _setup_ec2(self): if self.ec2 and self._instance and self._reservation: return if self.id: if self.region_name: for region in boto.ec2.regions(): if region.name == self.region_name: self.ec2 = region.connect() if self.instance_id and not self._instance: try: rs = self.ec2.get_all_reservations([self.instance_id]) if len(rs) >= 1: for instance in rs[0].instances: if instance.id == self.instance_id: self._reservation = rs[0] self._instance = instance except EC2ResponseError: pass
def find_device(ec2, module, device_id, isinstance=True): """ Attempt to find the EC2 instance and return it """ if isinstance: try: reservations = ec2.get_all_reservations(instance_ids=[device_id]) except boto.exception.EC2ResponseError as e: module.fail_json(msg=str(e)) if len(reservations) == 1: instances = reservations[0].instances if len(instances) == 1: return instances[0] else: try: interfaces = ec2.get_all_network_interfaces(network_interface_ids=[device_id]) except boto.exception.EC2ResponseError as e: module.fail_json(msg=str(e)) if len(interfaces) == 1: return interfaces[0] raise EIPException("could not find instance" + device_id)