Repository: incubator-hawq Updated Branches: refs/heads/master 41c81abb7 -> f44343a46
HAWQ-880. Fix output of 'hawq stop --reload/-u' Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/f44343a4 Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/f44343a4 Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/f44343a4 Branch: refs/heads/master Commit: f44343a46391474af731b24973d37fb032d6e7f5 Parents: 41c81ab Author: rlei <[email protected]> Authored: Wed Jun 29 17:14:29 2016 +0800 Committer: rlei <[email protected]> Committed: Thu Jun 30 00:29:15 2016 +0800 ---------------------------------------------------------------------- tools/bin/hawq_ctl | 57 ++++++++++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 24 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/f44343a4/tools/bin/hawq_ctl ---------------------------------------------------------------------- diff --git a/tools/bin/hawq_ctl b/tools/bin/hawq_ctl index 76ca6b8..aca7787 100755 --- a/tools/bin/hawq_ctl +++ b/tools/bin/hawq_ctl @@ -757,6 +757,13 @@ class HawqStop: self.timeout = opts.timeout_seconds self.hawq_dict = hawq_dict self.hawq_reload = opts.hawq_reload + if self.hawq_reload: + self.stop_action = 'reload' + self.stop_action_past = 'reloaded' + else: + self.stop_action = 'stop' + self.stop_action_past = 'stopped' + self.lock = threading.Lock() self.dburl = None self.conn = None @@ -830,7 +837,7 @@ class HawqStop: pass def _stop_master_cmd(self): - logger.info("Stop hawq master") + logger.info("%s hawq master" % self.stop_action.title()) if self.hawq_reload: cmd_str = "%s; %s/bin/pg_ctl reload -D %s >> %s" % \ (source_hawq_env, self.GPHOME, self.master_data_directory, log_filename) @@ -844,7 +851,7 @@ class HawqStop: def _stop_master(self): master_host, master_running = check_hawq_running(self.master_host_name, self.master_data_directory, self.master_port, self.user, logger) if master_running: - if self.stop_mode != 'immediate': + if self.stop_mode != 'immediate' and not self.hawq_reload: self._stop_master_checks() cmd = self._stop_master_cmd() result = remote_ssh(cmd, self.master_host_name, self.user) @@ -854,7 +861,7 @@ class HawqStop: return 0 def _stop_segment_cmd(self): - logger.info("Stop hawq segment") + logger.info("%s hawq segment" % self.stop_action.title()) if self.hawq_reload: cmd_str = "%s; %s/bin/pg_ctl reload -D %s >> %s" % \ (source_hawq_env, self.GPHOME, self.segment_data_directory, log_filename) @@ -876,7 +883,7 @@ class HawqStop: return 0 def _stop_standby_cmd(self): - logger.info("Stop hawq standby master") + logger.info("%s hawq standby master" % self.stop_action.title()) if self.hawq_reload: cmd_str = "%s; %s/bin/pg_ctl reload -D %s >> %s" % \ (source_hawq_env, self.GPHOME, self.master_data_directory, log_filename) @@ -897,29 +904,29 @@ class HawqStop: return 0 def _stopAll(self): - logger.info("Stop hawq cluster") + logger.info("%s hawq cluster" % self.stop_action.title()) master_result = 0 standby_result = 0 segments_return_flag = 0 master_result = self._stop_master() if master_result != 0: - logger.error("Master stop failed") + logger.error("Master %s failed" % self.stop_action) else: - logger.info("Master stopped successfully") + logger.info("Master %s successfully" % self.stop_action_past) if self.standby_host_name.lower() not in ('', 'none'): standby_result = self._stop_standby() if standby_result != 0: - logger.error("Standby master stop failed") + logger.error("Standby master %s failed" % self.stop_action) else: - logger.info("Standby master stopped successfully") + logger.info("Standby master %s successfully" % self.stop_action_past) # Execute segment stop command on each node. segments_return_flag = self._stopAllSegments() cluster_result = master_result + standby_result + segments_return_flag if cluster_result != 0: - logger.error("Cluster stop failed") + logger.error("Cluster %s failed" % self.stop_action) else: - logger.info("Cluster stopped successfully") + logger.info("Cluster %s successfully" % self.stop_action_past) return cluster_result def _running_segments_list(self, host_list): @@ -948,11 +955,11 @@ class HawqStop: bad_hosts = [] working_hosts = self.host_list segment_cmd_str = self._stop_segment_cmd() - logger.info("Stop segments in list: %s" % self.host_list) + logger.info("%s segments in list: %s" % (self.stop_action.title(), self.host_list)) working_hosts, bad_hosts = exclude_bad_hosts(self.host_list) if len(bad_hosts) == len(self.host_list): - logger.error("Unable to SSH on any of the hosts, skipping segment stop operation") + logger.error("Unable to SSH on any of the hosts, skipping segment %s operation" % self.stop_action) return 1 process_running_host, stopped_host = self._running_segments_list(working_hosts) @@ -960,7 +967,7 @@ class HawqStop: # Execute segment stop command on specified nodes. if self.ignore_bad_hosts: if len(bad_hosts) > 0: - logger.warning("Skipping stop segments in the list {0}, SSH test failed".format(bad_hosts)) + logger.warning("Skipping {1} segments in the list {0}, SSH test failed".format(bad_hosts, self.stop_action)) skip_host_list = bad_hosts + stopped_host else: skip_host_list = stopped_host @@ -970,34 +977,34 @@ class HawqStop: for host in process_running_host: work_list.append({"func":remote_ssh,"args":(segment_cmd_str, host, self.user, q)}) logger.info("Total segment number is: %s" % len(self.host_list)) - work_list.append({"func":check_progress,"args":(q, len(process_running_host), 'stop', len(skip_host_list), self.quiet)}) - node_init = HawqCommands(name = 'HAWQ', action_name = 'stop', logger = logger) + work_list.append({"func":check_progress,"args":(q, len(process_running_host), self.stop_action, len(skip_host_list), self.quiet)}) + node_init = HawqCommands(name = 'HAWQ', action_name = self.stop_action, logger = logger) node_init.get_function_list(work_list) node_init.start() if self.ignore_bad_hosts: total_return_flag = node_init.return_flag else: if len(bad_hosts) > 0: - logger.error("%s segment stop failed, SSH test failed on %s" % (len(bad_hosts), bad_hosts)) + logger.error("%s segment %s failed, SSH test failed on %s" % (len(bad_hosts), self.stop_action, bad_hosts)) total_return_flag = node_init.return_flag + len(bad_hosts) if total_return_flag != 0: - logger.error("Segments stop failed") + logger.error("Segments %s failed" % self.stop_action) else: - logger.info("Segments stopped successfully") + logger.info("Segments %s successfully" % self.stop_action_past) return total_return_flag def run(self): if self.node_type == "master": check_return_code(self._stop_master(), logger, \ - "Master stop failed, exit", "Master stopped successfully") + "Master %s failed, exit" % self.stop_action, "Master %s successfully" % self.stop_action_past) elif self.node_type == "standby": if self.standby_host_name.lower() not in ('', 'none'): check_return_code(self._stop_standby(), logger, \ - "Standby master stop failed, exit", "Standby master stopped successfully") + "Standby master %s failed, exit" % self.stop_action, "Standby master %s successfully" % self.stop_action_past) elif self.node_type == "segment": check_return_code(self._stop_segment(), logger, \ - "Segment stop failed, exit", "Segment stopped successfully") + "Segment %s failed, exit" % self.stop_action, "Segment %s successfully" % self.stop_action_past) elif self.node_type == "cluster": check_return_code(self._stopAll()) elif self.node_type == "allsegments": @@ -1096,8 +1103,10 @@ def get_args(): logger.error("Create log directory %s failed on hosts %s" % (opts.log_dir, create_failed_host)) logger.error("Please check directory permission") - Capital_Action = opts.hawq_command.title() - logger.info("%s hawq with args: %s" % (Capital_Action, ARGS)) + hawq_action_name = opts.hawq_command.title() + if opts.hawq_reload: + hawq_action_name = 'Reload' + logger.info("%s hawq with args: %s" % (hawq_action_name, ARGS)) return opts, hawq_dict
