def _get_all_instances(list_of_instance_ids=None): """Returns a list of instance objects for a list of instance IDs. :returns a list of instance objects. :raises NonRecoverableError: If Boto errors. """ ec2_client = connection.EC2ConnectionClient().client() try: reservations = ec2_client.get_all_reservations(list_of_instance_ids) except boto.exception.EC2ResponseError as e: if 'InvalidInstanceID.NotFound' in e: instances = [ instance for res in ec2_client.get_all_reservations() for instance in res.instances ] utils.log_available_resources(instances) return None except boto.exception.BotoServerError as e: raise NonRecoverableError('{0}'.format(str(e))) instances = [] for reservation in reservations: for instance in reservation.instances: instances.append(instance) return instances
def _get_all_instances(list_of_instance_ids=None): """Returns a list of instance objects for a list of instance IDs. :param ctx: The Cloudify ctx context. :param address_id: The ID of an EC2 Instance. :returns a list of instance objects. :raises NonRecoverableError: If Boto errors. """ ec2_client = connection.EC2ConnectionClient().client() try: reservations = ec2_client.get_all_reservations(list_of_instance_ids) except boto.exception.EC2ResponseError as e: if "InvalidInstanceID.NotFound" in e: instances = [instance for res in ec2_client.get_all_reservations() for instance in res.instances] utils.log_available_resources(instances) return None except boto.exception.BotoServerError as e: raise NonRecoverableError("{0}".format(str(e))) instances = [] for reservation in reservations: for instance in reservation.instances: instances.append(instance) return instances
def test_utils_log_available_resources(self): ctx = self.mock_ctx( 'test_utils_log_available_resources') current_ctx.set(ctx=ctx) client = EC2Connection() key_pairs = client.get_all_key_pairs() utils.log_available_resources(key_pairs)
def _get_all_addresses(address=None): """Returns a list of elastip objects for a given address elastip. :param address: The ID of a elastip. :returns A list of elasticip objects. :raises NonRecoverableError: If Boto errors. """ ec2_client = connection.EC2ConnectionClient().client() try: addresses = ec2_client.get_all_addresses(address) except boto.exception.EC2ResponseError as e: if 'InvalidAddress.NotFound' in e: addresses = ec2_client.get_all_addresses() utils.log_available_resources(addresses, ctx.logger) return None except boto.exception.BotoServerError as e: raise NonRecoverableError('{0}'.format(str(e))) return addresses
def _get_volumes(list_of_volume_ids): """Returns a list of EBS Volumes for a given list of volume IDs. :param list_of_volume_ids: A list of EBS volume IDs. :returns A list of EBS objects. :raises NonRecoverableError: If Boto errors. """ ec2_client = connection.EC2ConnectionClient().client() try: volumes = ec2_client.get_all_volumes(volume_ids=list_of_volume_ids) except boto.exception.EC2ResponseError as e: if 'InvalidVolume.NotFound' in e: all_volumes = ec2_client.get_all_volumes() utils.log_available_resources(all_volumes) return None except boto.exception.BotoServerError as e: raise NonRecoverableError('{0}'.format(str(e))) return volumes
def _get_volumes(list_of_volume_ids): """Returns a list of EBS Volumes for a given list of volume IDs. :param list_of_volume_ids: A list of EBS volume IDs. :returns A list of EBS objects. :raises NonRecoverableError: If Boto errors. """ ec2_client = connection.EC2ConnectionClient().client() try: volumes = ec2_client.get_all_volumes( volume_ids=list_of_volume_ids) except boto.exception.EC2ResponseError as e: if 'InvalidVolume.NotFound' in e: all_volumes = ec2_client.get_all_volumes() utils.log_available_resources(all_volumes) return None except boto.exception.BotoServerError as e: raise NonRecoverableError('{0}'.format(str(e))) return volumes
def _get_all_addresses(address=None): """Returns a list of elastip objects for a given address elastip. :param address: The ID of a elastip. :returns A list of elasticip objects. :raises NonRecoverableError: If Boto errors. """ ec2_client = connection.EC2ConnectionClient().client() try: addresses = ec2_client.get_all_addresses(address) except boto.exception.EC2ResponseError as e: if "InvalidAddress.NotFound" in e: addresses = ec2_client.get_all_addresses() utils.log_available_resources(addresses) return None except boto.exception.BotoServerError as e: raise NonRecoverableError("{0}".format(str(e))) return addresses
def _get_all_security_groups(list_of_group_names=None, list_of_group_ids=None): """Returns a list of security groups for a given list of group names and IDs. :param list_of_group_names: A list of security group names. :param list_of_group_ids: A list of security group IDs. :returns A list of security group objects. :raises NonRecoverableError: If Boto errors. """ ec2_client = connection.EC2ConnectionClient().client() try: groups = ec2_client.get_all_security_groups( groupnames=list_of_group_names, group_ids=list_of_group_ids) except boto.exception.EC2ResponseError as e: if 'InvalidGroup.NotFound' in e: groups = ec2_client.get_all_security_groups() utils.log_available_resources(groups) return None except boto.exception.BotoServerError as e: raise NonRecoverableError('{0}'.format(str(e))) return groups
def test_log_available_resources(self): list_of_resources = \ ['Address:54.163.229.127', 'Address:107.22.223.114'] ctx = self.mock_ctx('test_log_available_resources') current_ctx.set(ctx=ctx) utils.log_available_resources(list_of_resources)