def _get_evidence(self): evidence = buildbot_state.collect_evidence('fake_dir') evidence['desired_buildbot_state'] = { 'desired_state': self.desired_buildbot_state, 'transition_time_utc': self.desired_transition_time, } return evidence
def _get_evidence(self): evidence = buildbot_state.collect_evidence('fake_dir') evidence['desired_buildbot_state'] = { 'desired_state': self.desired_buildbot_state, 'transition_time_utc': self.desired_transition_time, } return evidence
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