def set_health_input_data(self, data): self.health_input_data = data if not data or not isinstance(data, dict): raise ValueError(terminal.fg_red() + "Wrong Input Data for HealthChecker" + terminal.fg_clear()) self._set_parser_input(data)
def cmdloop(shell, func, args, use_yappi, single_command): try: if use_yappi: import yappi yappi.start() func(*args) yappi.get_func_stats().print_all() else: func(*args) except (KeyboardInterrupt, SystemExit): if not single_command: shell.intro = terminal.fg_red() + \ "\nTo exit asadm utility please run exit command." + \ terminal.fg_clear() cmdloop(shell, func, args, use_yappi, single_command)
def __init__(self, admin_version, seeds, user=None, password=None, use_services_alumni=False, use_services_alt=False, log_path="", log_analyser=False, collectinfo=False, ssl_context=None, only_connect_seed=False, execute_only_mode=False, timeout=5): # indicates shell created successfully and connected to cluster/collectinfo/logfile self.connected = True self.execute_only_mode = execute_only_mode if log_analyser: self.name = 'Aerospike Log Analyzer Shell' elif collectinfo: self.name = 'Aerospike Collectinfo Shell' else: self.name = 'Aerospike Interactive Shell' if not execute_only_mode: print terminal.bold() + self.name + ', version ' +\ admin_version + terminal.reset() + "\n" cmd.Cmd.__init__(self) try: if log_analyser: if not log_path: log_path = " " self.ctrl = LogRootController(admin_version, log_path) self.prompt = "Log-analyzer> " elif collectinfo: if not log_path: logger.error( "You have not specified any collectinfo path. Usage: asadm -c -f <collectinfopath>" ) self.do_exit('') exit(1) self.ctrl = CollectinfoRootController(admin_version, clinfo_path=log_path) self.prompt = "Collectinfo-analyzer> " if not execute_only_mode: self.intro = str(self.ctrl.loghdlr) else: if user is not None: if password == "prompt" or password is None: if sys.stdin.isatty(): password = getpass.getpass("Enter Password:"******"Not able to connect any cluster with " + str(seeds) + ".") self.connected = False return else: logger.critical( "Not able to connect any cluster with " + str(seeds) + ".") self.prompt = "Admin> " self.intro = "" if not execute_only_mode: self.intro += str(self.ctrl.cluster) + "\n" cluster_visibility_error_nodes = self.ctrl.cluster.get_visibility_error_nodes( ) if cluster_visibility_error_nodes: self.intro += terminal.fg_red( ) + "Cluster Visibility error (Please check services list): %s" % ( ", ".join(cluster_visibility_error_nodes) ) + terminal.fg_clear() + "\n" cluster_down_nodes = self.ctrl.cluster.get_down_nodes() if cluster_down_nodes: self.intro += terminal.fg_red( ) + "Extra nodes in alumni list: %s" % (", ".join( cluster_down_nodes)) + terminal.fg_clear() + "\n" if self.use_rawinput: self.prompt = "\001" + terminal.bold() + terminal.fg_red() + "\002" +\ self.prompt + "\001" +\ terminal.unbold() + terminal.fg_clear() + "\002" except Exception as e: self.do_exit('') logger.critical(str(e)) if not execute_only_mode: try: readline.read_history_file(ADMINHIST) except Exception: readline.write_history_file(ADMINHIST) self.commands = set() regex = re.compile("^do_(.*)$") commands = map(lambda v: regex.match(v).groups()[0], filter(regex.search, dir(self))) for command in commands: if command != 'help': self.commands.add(command)