# takes a repo as $1 and calls firehose for each config the repo appears in #cd /home/williamholland/src/firehose #./firehose.sh examples/*.yaml --log=/dev/stdout --log-level=debug FIREHOSE_DIR = '/home/williamholland/src/firehose' LOGFILE = '/home/williamholland/orchestration/trigger_log' from firehose_mappings import mapping log_file = open(LOGFILE,'a') def log(msg): ''' write message to log file with timestamp and script name ''' import datetime global log_file dt = str(datetime.datetime.now()).split('.')[0] log_file.write("[%s] Firehose Trigger: %s\n" % (dt, msg)) def firehose_cmd(config,loglevel='debug',log='/dev/stdout'): ''' take list of firehose configs filename and return a firehose command with that config ''' cmd = [ "./firehose.sh", "--log-level=%s" % loglevel, "--log=%s" % log, ] + config return cmd if __name__ == '__main__': import sys, subprocess, os try: repo = sys.argv[1] except: log("Called without being given a repo") print "firehose_map.py requires a repo argument" exit(1) try: configs = mapping[repo] except: log("Unknown repo: %s, Firehose not triggered" % repo) exit(0) os.chdir(FIREHOSE_DIR) exit_val = subprocess.call(firehose_cmd(configs)) if not exit_val: log("Successful") exit(exit_val) else: log("Unsuccessful") exit(exit_val)