Is there any way to programatically configure the aws_default,
emr_default or other airflow connections?

In a pre-1.8.x installation we used the following script:

--- snip ---
#!/usr/bin/python

import json

from airflow import models
from airflow.utils import db as db_utils

CONNECTIONS = [
    models.Connection(
        conn_id='foo', conn_type='http',
        host='...', port='8080'),
    models.Connection(
        conn_id='bar', conn_type='ssh',
        host='...'),
    models.Connection(
        conn_id='baz', conn_type='http',
        host='...', port='7099'),
    models.Connection(
        conn_id='sqs_us_east_1', conn_type='s3',
        extra=json.dumps({ 'region': 'us-east-1' }))
]

for connection in CONNECTIONS:
    print "Adding connection {}".format(connection.conn_id)
    db_utils.merge_conn(connection)
--- snip ---

This was for adding *new* connections, but I would suspect that this or similar code could also be used to modify existing connections.

There may well be a better approach for Airflow 1.8.x, though.

Regards

ap

Reply via email to