def testWithGclientSyncDisabled(self): actions = list(master.convert_action_items_to_cli(( master.GclientSync, master.MakeStop), self.chromium_fyi)) self.assertEquals( [a['cmd'] for a in actions], [ ['make', 'stop'], ], )
def run_state_machine_pass( logger, matchlist, abs_master_directory, emergency_file, desired_state, transition_time_utc, enable_gclient_sync, prod, connection_timeout, hostname, builder_filters): # pragma: no cover if os.path.exists(os.path.join(abs_master_directory, emergency_file)): logger.error('%s detected in %s, aborting!', emergency_file, abs_master_directory) return 1 if not master_hostname_is_valid(hostname, abs_master_directory, logger): return 1 evidence = buildbot_state.collect_evidence( abs_master_directory, connection_timeout=connection_timeout, builder_filters=builder_filters) evidence['desired_buildbot_state'] = { 'desired_state': desired_state, 'transition_time_utc': transition_time_utc, } state, action_name, action_items = matchlist.execution_list(evidence) execution_list = list( master.convert_action_items_to_cli( action_items, abs_master_directory, enable_gclient=enable_gclient_sync)) logger.info('%s: current state: %s', abs_master_directory, state) logger.info('%s: performing action: %s', abs_master_directory, action_name) if execution_list: if prod: logger.info('production run, executing:') else: logger.info('dry run, not executing:') for cmd in execution_list: logger.info('* %s (in %s)', cmd['cmd'], cmd['cwd']) if prod: try: with daemon.flock(cmd['lockfile']): subprocess.check_call( [str(x) for x in cmd['cmd']], cwd=cmd['cwd'], close_fds=True) except daemon.LockAlreadyLocked: logger.warn(' lock on %s could not be acquired, no action taken.', cmd['lockfile']) else: logger.info('no action to be taken.') return 0
def run_state_machine_pass(logger, matchlist, abs_master_directory, emergency_file, desired_state, transition_time_utc, enable_gclient_sync, prod, connection_timeout, hostname): # pragma: no cover if os.path.exists(os.path.join(abs_master_directory, emergency_file)): logger.error('%s detected in %s, aborting!', emergency_file, abs_master_directory) return 1 if not master_hostname_is_valid(hostname, abs_master_directory, logger): return 1 evidence = buildbot_state.collect_evidence( abs_master_directory, connection_timeout=connection_timeout) evidence['desired_buildbot_state'] = { 'desired_state': desired_state, 'transition_time_utc': transition_time_utc, } state, action_name, action_items = matchlist.execution_list(evidence) execution_list = list( master.convert_action_items_to_cli(action_items, abs_master_directory, enable_gclient=enable_gclient_sync)) logger.info('%s: current state: %s', abs_master_directory, state) logger.info('%s: performing action: %s', abs_master_directory, action_name) if execution_list: if prod: logger.info('production run, executing:') else: logger.info('dry run, not executing:') for cmd in execution_list: logger.info('* %s (in %s)', cmd['cmd'], cmd['cwd']) if prod: try: with daemon.flock(cmd['lockfile']): subprocess.check_call([str(x) for x in cmd['cmd']], cwd=cmd['cwd'], close_fds=True) except daemon.LockAlreadyLocked: logger.warn( ' lock on %s could not be acquired, no action taken.', cmd['lockfile']) else: logger.info('no action to be taken.') return 0
def DISABLED_testWithGclientSyncEnabled(self): # pragma: no cover actions = list(master.convert_action_items_to_cli(( master.GclientSync, master.MakeStop, master.MakeWait, master.MakeStart, master.MakeNoNewBuilds), self.chromium_fyi, enable_gclient=True)) self.assertEquals( [a['cmd'] for a in actions], [ ['gclient', 'sync', '--reset', '--force', '--auto_rebase'], ['make', 'stop'], ['make', 'wait'], ['make', 'start'], ['make', 'no-new-builds'], ], )
def testInvalid(self): with self.assertRaises(ValueError): list(master.convert_action_items_to_cli((-100,), self.chromium_fyi))