def main(): args = parse_args() if args.json_file: desired_state = desired_state_parser.load_desired_state_file( args.json_file) else: desired_state_data = gitiles.call_gitiles(args.json_gitiles, 'text', netrc_path=args.netrc) desired_state = desired_state_parser.parse_desired_state( desired_state_data) if args.verify: return 0 # File checks out, no need to continue. triggered, ignored = desired_state_parser.get_masters_for_host( desired_state, args.build_dir, args.hostname) log_triggered_ignored(triggered, ignored, args.hostname) commands = [ synthesize_master_manager_cmd(m, args.hostname, prod=args.prod) for m in triggered ] if args.command_timeout: commands = [ daemon.add_timeout(c, args.command_timeout) for c in commands ] multiprocess.safe_map(subprocess.call, commands, args.processes)
def main(): args = parse_args() # Flushing metrics here to be sure the presence/up got sent even if the # program runs for less than a minute. ts_mon.flush() if args.json_file: desired_state = desired_state_parser.load_desired_state_file( args.json_file) else: desired_state_data = gitiles.call_gitiles( args.json_gitiles, 'text', netrc_path=args.netrc) desired_state = desired_state_parser.parse_desired_state(desired_state_data) if args.verify: return 0 # File checks out, no need to continue. triggered, ignored = desired_state_parser.get_masters_for_host( desired_state, args.build_dir, args.hostname) log_triggered_ignored(triggered, ignored, args.hostname) commands = [ synthesize_master_manager_cmd(m, args.hostname, prod=args.prod) for m in triggered ] if args.command_timeout: commands = [daemon.add_timeout(c, args.command_timeout) for c in commands] multiprocess.safe_map(subprocess.call, commands, args.processes)
def testHostnameLookup(self): """Test that selected masters are triggered and all else are ignored.""" desired_state = { 'master.chromium.fyi': [ { 'desired_state': 'running', 'transition_time_utc': 4000 }, ], 'master.supersecret': [ { 'desired_state': 'running', 'transition_time_utc': 4000 }, ], } triggered, ignored = desired_state_parser.get_masters_for_host( desired_state, 'bananas/', 'impenetrablefortress.cool') self.assertEqual(len(triggered), 2) self.assertEqual(len(ignored), 2) self.assertEqual(sorted(ignored), [ 'master.chromium', 'master.ultrasecret', ]) for master_dict in triggered: self.assertIn(master_dict['dirname'], desired_state)
def testHostnameLookup(self): """Test that selected masters are triggered and all else are ignored.""" desired_state = { 'master.chromium.fyi': [ {'desired_state': 'running', 'transition_time_utc': 4000}, ], 'master.supersecret': [ {'desired_state': 'running', 'transition_time_utc': 4000}, ], } triggered, ignored = desired_state_parser.get_masters_for_host( desired_state, 'bananas/', 'impenetrablefortress.cool' ) self.assertEqual(len(triggered), 2) self.assertEqual(len(ignored), 2) self.assertEqual(sorted(ignored), [ 'master.chromium', 'master.ultrasecret', ]) for master_dict in triggered: self.assertIn(master_dict['dirname'], desired_state)
def testHostnameLookup(self): """Test that selected masters are triggered and all else are ignored.""" desired_state = { 'version': desired_state_parser.VERSION, 'master_states': { 'master.chromium.fyi': [ { 'desired_state': 'running', 'transition_time_utc': UNIX_TIMESTAMP_4000 }, ], 'master.supersecret': [ { 'desired_state': 'running', 'transition_time_utc': UNIX_TIMESTAMP_4000 }, ], }, 'master_params': { 'master.chromium.fyi': { 'drain_timeout_sec': 1337, }, }, } triggered, ignored = desired_state_parser.get_masters_for_host( desired_state, 'bananas/', 'impenetrablefortress.cool') self.assertEqual([t['dirname'] for t in triggered], ['master.chromium.fyi', 'master.supersecret']) self.assertEqual(ignored, set(['master.chromium', 'master.ultrasecret'])) self.assertEqual(triggered[0]['params'], { 'drain_timeout_sec': 1337, }) self.assertEqual(triggered[1]['params'], {}) self.assertEqual(sorted(ignored), [ 'master.chromium', 'master.ultrasecret', ]) for master_dict in triggered: self.assertIn(master_dict['dirname'], desired_state['master_states'])
def testHostnameLookup(self): """Test that selected masters are triggered and all else are ignored.""" desired_state = { 'version': desired_state_parser.VERSION, 'master_states': { 'master.chromium.fyi': [ {'desired_state': 'running', 'transition_time_utc': UNIX_TIMESTAMP_4000}, ], 'master.supersecret': [ {'desired_state': 'running', 'transition_time_utc': UNIX_TIMESTAMP_4000}, ], }, 'master_params': { 'master.chromium.fyi': { 'drain_timeout_sec': 1337, }, }, } triggered, ignored = desired_state_parser.get_masters_for_host( desired_state, 'bananas/', 'impenetrablefortress.cool' ) self.assertEqual( [t['dirname'] for t in triggered], ['master.chromium.fyi', 'master.supersecret']) self.assertEqual(ignored, set(['master.chromium', 'master.ultrasecret'])) self.assertEqual(triggered[0]['params'], { 'drain_timeout_sec': 1337, }) self.assertEqual(triggered[1]['params'], {}) self.assertEqual(sorted(ignored), [ 'master.chromium', 'master.ultrasecret', ]) for master_dict in triggered: self.assertIn(master_dict['dirname'], desired_state['master_states'])