Skip to content

Instantly share code, notes, and snippets.

@gavsmi
Last active August 29, 2015 14:04
Show Gist options
  • Save gavsmi/486aa878bed70542cae8 to your computer and use it in GitHub Desktop.
Save gavsmi/486aa878bed70542cae8 to your computer and use it in GitHub Desktop.
Orchestra cloud-init script to create DB (MSSQL)
#! /usr/bin/python
import argparse, pymssql, logging
def parsed_args():
# parse cmd line args
parser = argparse.ArgumentParser(description='Create MSSQL database.')
parser.add_argument('--user',
help='Username to connect to MSSQL',
default='qmatic')
parser.add_argument('--password',
help='Password to connect to MSSQL',
default='ulan1234')
parser.add_argument('--stat-user',
help='Username to connect to MSSQL stat DB',
default='qmatic')
parser.add_argument('--stat-password',
help='Password to connect to MSSQL stat DB',
default='ulan1234')
parser.add_argument('--address',
help='MSSQL host address')
parser.add_argument('--port',
help='MSSQL port, default 1433',
default='1433')
parser.add_argument('--stat-address',
help='MSSQL host address for stat DB')
parser.add_argument('--stat-port',
help='MSSQL port for stat DB host, default 1433',
default='1433')
return parser.parse_args();
def main():
args = parsed_args();
logging.info('Creating database...')
if(args.stat_address is None):
stat_address = args.address
else:
stat_address = args.stat_address
create_db(args.address, args.port, stat_address, args.stat_port, args.user, args.password, args.stat_user, args.stat_password)
def create_db(db_endpoint, db_port, stat_db_endpoint, stat_db_port, user, password, stat_user, stat_password):
logging.info('## Connecting to Orchestra DB at: %s... ##' % db_endpoint)
# Connect to Orchestra DB
conn = pymssql.connect(server=db_endpoint, user=user, password=password, database='master', port=db_port)
conn.autocommit(True)
cursor = conn.cursor()
logging.info("Running DDL scripts to create Orchestra DB...")
sql = open("/opt/qmatic/sql/central-mssql.sql", "r").read()
for s in sql.split('GO'):
logging.debug('Executing SQL: %s' % s)
cursor.execute(s)
cursor.close()
conn.close()
logging.info("Orchestra DB created.")
logging.info('## Connecting to Stat DB at: %s... ##' % stat_db_endpoint)
# Connect to Stat DB
conn = pymssql.connect(server=stat_db_endpoint, user=stat_user, password=stat_password, database='master', port=stat_db_port)
conn.autocommit(True)
cursor = conn.cursor()
logging.info("Running DDL scripts to create Stat DB...")
sql = open("/opt/qmatic/sql/stat-mssql.sql", "r").read()
for s in sql.split('GO'):
logging.debug('Executing SQL: %s' % s)
cursor.execute(s)
cursor.close()
conn.close()
logging.info("Stat DB created.")
if __name__ == '__main__':
logging.getLogger().setLevel(logging.INFO)
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment