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
Beispiel #3
0
    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
Beispiel #5
0
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
Beispiel #8
0
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 _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
Beispiel #10
0
 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)