Ejemplo n.º 1
0
def get_aws_connection_params(params):
    enabled = params.pop("use_iam_auth", None)
    if enabled:
        region_name = params.pop("region_name", None)
        rds_client = boto3.client(service_name="rds", region_name=region_name)

        hostname = params.get("host")
        hostname = resolve_cname(hostname) if hostname else "localhost"

        params["password"] = rds_client.generate_db_auth_token(
            DBHostname=hostname,
            Port=params.get("port", 5432),
            DBUsername=params.get("user") or getpass.getuser(),
        )

    return params
Ejemplo n.º 2
0
    def get_connection_params(self):
        params = super().get_connection_params()
        enabled = params.pop('use_iam_auth', None)
        if enabled:
            rds_client = boto3.client("rds", region_name=settings.AWS_REGION)

            hostname = params.get('host')
            hostname = resolve_cname(hostname) if hostname else "localhost"

            params["password"] = rds_client.generate_db_auth_token(
                DBHostname=hostname,
                Port=params.get("port", 5432),
                DBUsername=params.get("user") or getpass.getuser(),
            )

        return params
Ejemplo n.º 3
0
    def get_connection_params(self):
        params = super().get_connection_params()
        enabled = params.pop('use_iam_auth', None)
        if enabled:
            aws_region = params.pop('aws_region', None) or config.DEFAULT_AWS_REGION

            rds_client = boto3.client("rds", region_name=aws_region)

            hostname = params.get('host')

            should_resolve_cname = params.pop('resolve_cname', None) or False
            if should_resolve_cname:
                hostname = resolve_cname(hostname) if hostname else "localhost"

            params["password"] = rds_client.generate_db_auth_token(
                DBHostname=hostname,
                Port=params.get("port", 5432),
                DBUsername=params.get("user") or getpass.getuser(),
            )

        return params