Last active
August 29, 2015 14:04
-
-
Save gavsmi/486aa878bed70542cae8 to your computer and use it in GitHub Desktop.
Orchestra cloud-init script to create DB (MSSQL)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /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