Skip to content

Instantly share code, notes, and snippets.

@syvineckruyk
Created April 16, 2016 17:51
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save syvineckruyk/d2c96b418ed509a174e0e718cb62b20a to your computer and use it in GitHub Desktop.
Save syvineckruyk/d2c96b418ed509a174e0e718cb62b20a to your computer and use it in GitHub Desktop.
#!/home/airflow/.pyenv/shims/python
import airflow
from airflow.models import Connection
import argparse
import logging
parser = argparse.ArgumentParser()
parser.add_argument('-c', '--connection')
parser.add_argument('-t', '--connectiontype')
parser.add_argument('-n', '--host', default='')
parser.add_argument('-p', '--port', default='')
parser.add_argument('-s', '--schema', default='')
parser.add_argument('-l', '--login', default='')
parser.add_argument('-w', '--password', default='')
parser.add_argument('-e', '--extra', default='')
args = parser.parse_args()
def set_airflow_connection():
"""
"""
for pos in range(len(args.connection)):
c = args.connection
t = args.connectiontype
n = args.host
p = args.port
s = args.schema
l = args.login
w = args.password
e = args.extra
logging.info('Creating connection {c}'.format(
c=c
))
session = airflow.settings.Session()
connection = (
session.query(Connection)
.filter(Connection.conn_id == c)
.first())
if not connection:
connection = Connection(conn_id=c, conn_type=t, host=n, port=p, schema=s, login=l)
connection.set_password(w)
connection.set_extra(e)
session.add(connection)
session.commit()
if __name__ == "__main__":
set_airflow_connection()
#!/bin/python
from airflow.models import Variable
import sys
import argparse
import logging
parser = argparse.ArgumentParser()
parser.add_argument('-k', '--key', nargs='+', action='append')
parser.add_argument('-v', '--value', nargs='+', action='append')
args = parser.parse_args()
def set_airflow_variable():
"""
Sets the Airflow Variable "k" to value "v"
"""
for pos in range(len(args.key)):
k = args.key[pos][0]
v = args.value[pos][0]
logging.info('Setting variable {k} to value {v}'.format(
k=k,
v=v
))
Variable.set(k, v)
if __name__ == "__main__":
set_airflow_variable()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment