Esempio n. 1
0
File: elb.py Progetto: rtdean/lemur
def update_listeners(account_number, region, name, listeners, ports):
    """
    We assume that a listener with a specified port already exists. We can then
    delete the old listener on the port and create a new one in it's place.

    If however we are replacing a listener e.g. changing a port from 80 to 443 we need
    to make sure we kept track of which ports we needed to delete so that we don't create
    two listeners (one 80 and one 443)

    :param account_number:
    :param region:
    :param name:
    :param listeners:
    :param ports:
    """
    # you cannot update a listeners port/protocol instead we remove the only one and
    # create a new one in it's place
    listeners = [is_valid(x) for x in listeners]

    assume_service(account_number, 'elb',
                   region).delete_load_balancer_listeners(name, ports)
    return create_new_listeners(account_number,
                                region,
                                name,
                                listeners=listeners)
Esempio n. 2
0
File: iam.py Progetto: sakti/lemur
def delete_cert(account_number, cert_name):
    """
    Delete a certificate from AWS

    :param account_number:
    :param cert_name:
    :return:
    """
    return assume_service(account_number, 'iam').delete_server_cert(cert_name)
Esempio n. 3
0
def get_all_elbs(account_number, region):
    """
    Fetches all elb objects for a given account and region.

    :param account_number:
    :param region:
    """
    marker = None
    elbs = []
    return assume_service(account_number, 'elb', region).get_all_load_balancers()
Esempio n. 4
0
def delete_listeners(account_number, region, name, ports):
    """
    Deletes a listener from an ELB.

    :param account_number:
    :param region:
    :param name:
    :param ports:
    :return:
    """
    return assume_service(account_number, 'elb', region).delete_load_balancer_listeners(name, ports)
Esempio n. 5
0
File: elb.py Progetto: rtdean/lemur
def get_all_elbs(account_number, region):
    """
    Fetches all elb objects for a given account and region.

    :param account_number:
    :param region:
    """
    marker = None
    elbs = []
    return assume_service(account_number, 'elb',
                          region).get_all_load_balancers()
Esempio n. 6
0
File: elb.py Progetto: sakti/lemur
def attach_certificate(account_number, region, name, port, certificate_id):
    """
    Attaches a certificate to a listener, throws exception
    if certificate specified does not exist in a particular account.

    :param account_number:
    :param region:
    :param name:
    :param port:
    :param certificate_id:
    """
    return assume_service(account_number, 'elb', region).set_lb_listener_SSL_certificate(name, port, certificate_id)
Esempio n. 7
0
File: elb.py Progetto: rtdean/lemur
def delete_listeners(account_number, region, name, ports):
    """
    Deletes a listener from an ELB.

    :param account_number:
    :param region:
    :param name:
    :param ports:
    :return:
    """
    return assume_service(account_number, 'elb',
                          region).delete_load_balancer_listeners(name, ports)
Esempio n. 8
0
File: iam.py Progetto: sakti/lemur
def upload_cert(account_number, name, body, private_key, cert_chain=None):
    """
    Upload a certificate to AWS

    :param account_number:
    :param name:
    :param private_key:
    :param cert_chain:
    :return:
    """
    return assume_service(account_number, 'iam').upload_server_cert(name, str(body), str(private_key),
                                                                    cert_chain=str(cert_chain))
Esempio n. 9
0
def create_new_listeners(account_number, region, name, listeners=None):
    """
    Creates a new listener and attaches it to the ELB.

    :param account_number:
    :param region:
    :param name:
    :param listeners:
    :return:
    """
    listeners = [is_valid(x) for x in listeners]
    return assume_service(account_number, 'elb', region).create_load_balancer_listeners(name, listeners=listeners)
Esempio n. 10
0
def attach_certificate(account_number, region, name, port, certificate_id):
    """
    Attaches a certificate to a listener, throws exception
    if certificate specified does not exist in a particular account.

    :param account_number:
    :param region:
    :param name:
    :param port:
    :param certificate_id:
    """
    return assume_service(account_number, 'elb', region).set_lb_listener_SSL_certificate(name, port, certificate_id)
Esempio n. 11
0
def update_listeners(account_number, region, name, listeners, ports):
    """
    We assume that a listener with a specified port already exists. We can then
    delete the old listener on the port and create a new one in it's place.

    If however we are replacing a listener e.g. changing a port from 80 to 443 we need
    to make sure we kept track of which ports we needed to delete so that we don't create
    two listeners (one 80 and one 443)

    :param account_number:
    :param region:
    :param name:
    :param listeners:
    :param ports:
    """
    # you cannot update a listeners port/protocol instead we remove the only one and
    # create a new one in it's place
    listeners = [is_valid(x) for x in listeners]

    assume_service(account_number, 'elb', region).delete_load_balancer_listeners(name, ports)
    return create_new_listeners(account_number, region, name, listeners=listeners)
Esempio n. 12
0
File: iam.py Progetto: sakti/lemur
def get_cert_from_arn(arn):
    """
    Retrieves an SSL certificate from a given ARN.

    :param arn:
    :return:
    """
    name = get_name_from_arn(arn)
    account_number = arn.split(":")[4]
    name = name.split("/")[-1]

    response = assume_service(account_number, 'iam').get_server_certificate(name.strip())
    return digest_aws_cert_response(response)
Esempio n. 13
0
File: elb.py Progetto: rtdean/lemur
def get_listeners(account_number, region, name):
    """
    Gets the listeners configured on an elb and returns a array of tuples

    :param account_number:
    :param region:
    :param name:
    :return: list of tuples
    """

    conn = assume_service(account_number, 'elb', region)
    elbs = conn.get_all_load_balancers(load_balancer_names=[name])
    if elbs:
        return elbs[0].listeners
Esempio n. 14
0
def get_listeners(account_number, region, name):
    """
    Gets the listeners configured on an elb and returns a array of tuples

    :param account_number:
    :param region:
    :param name:
    :return: list of tuples
    """

    conn = assume_service(account_number, 'elb', region)
    elbs = conn.get_all_load_balancers(load_balancer_names=[name])
    if elbs:
        return elbs[0].listeners
Esempio n. 15
0
File: elb.py Progetto: rtdean/lemur
def create_new_listeners(account_number, region, name, listeners=None):
    """
    Creates a new listener and attaches it to the ELB.

    :param account_number:
    :param region:
    :param name:
    :param listeners:
    :return:
    """
    listeners = [is_valid(x) for x in listeners]
    return assume_service(account_number, 'elb',
                          region).create_load_balancer_listeners(
                              name, listeners=listeners)
Esempio n. 16
0
def write_to_s3(account_number, bucket_name, key, data, encrypt=True):
    """
    Use STS to write to an S3 bucket

    :param account_number:
    :param bucket_name:
    :param data:
    """
    conn = assume_service(account_number, 's3')
    b = conn.get_bucket(bucket_name, validate=False)  # validate=False removes need for ListObjects permission

    k = Key(bucket=b, name=key)
    k.set_contents_from_string(data, encrypt_key=encrypt)
    k.set_canned_acl("bucket-owner-read")
Esempio n. 17
0
def write_to_s3(account_number, bucket_name, key, data, encrypt=True):
    """
    Use STS to write to an S3 bucket

    :param account_number:
    :param bucket_name:
    :param data:
    """
    conn = assume_service(account_number, 's3')
    b = conn.get_bucket(
        bucket_name, validate=False
    )  # validate=False removes need for ListObjects permission

    k = Key(bucket=b, name=key)
    k.set_contents_from_string(data, encrypt_key=encrypt)
    k.set_canned_acl("bucket-owner-read")
Esempio n. 18
0
File: iam.py Progetto: sakti/lemur
def get_all_server_certs(account_number):
    """
    Use STS to fetch all of the SSL certificates from a given account

    :param account_number:
    """
    marker = None
    certs = []
    while True:
        response = assume_service(account_number, 'iam').get_all_server_certs(marker=marker)
        result = response['list_server_certificates_response']['list_server_certificates_result']

        for cert in result['server_certificate_metadata_list']:
            certs.append(cert['arn'])

        if result['is_truncated'] == 'true':
            marker = result['marker']
        else:
            return certs