def call_cli(): try: SCREEN.display_header('CLI') readline.set_completer(CLI.pre_complete_cli) while True: # mac OS if 'libedit' in readline.__doc__: CLI.modify_flag = True CLI.save_buffer = readline.get_line_buffer() # select_command (handling tab event) cmd = CLI.input_cmd() if CLI.is_menu(cmd): SCREEN.cli_flag = False return elif CLI.is_exit(cmd): SCREEN.set_exit() return else: # send command CLI.process_cmd(cmd) while not CLI.get_cli_ret_flag(): time.sleep(1) except: LOG.exception_err_write()
def listen_disconnect_evt(evt): while SYS.get_sys_thr_flag(): evt.wait(3) if evt.is_set(): SYS.disconnect_flag = True SCREEN.draw_event(SYS.disconnect_flag) evt.clear()
def __init__(self, database): self.timeOfLastPerSecondPerformance = time.time() self.screen = SCREEN() self.robots = ROBOTS(database, self.screen) self.reinforcements = REINFORCEMENTS()
class PARETO_FRONT: def __init__(self, database): self.timeOfLastPerSecondPerformance = time.time() self.screen = SCREEN() self.robots = ROBOTS(database, self.screen) self.reinforcements = REINFORCEMENTS() def Run_Forever(self, database): while not self.screen.Done(): self.Try_To_Perform_Tasks_Once_Per_Second(database) self.Perform_Tasks_Every_Frame(database) # ---------------- Private methods ------------------------ def Perform_Tasks_Every_Frame(self, database): self.screen.Prepare() self.robots.Draw_Shadows() self.screen.Draw_Sun(self.robots.Get_Max_Losses(), self.robots.Get_Max_Wins()) self.screen.Add_Title() self.screen.Add_Axes() self.reinforcements.Update(database) self.reinforcements.Draw_To(self.screen.Get_Screen()) self.robots.Draw_Circles() self.screen.Reveal() def Perform_Tasks_Every_Second(self, database): if self.reinforcements.Are_Empty(): self.robots.Reset(database, self.screen) self.reinforcements.Load_New_Ones(database, self.robots) def Try_To_Perform_Tasks_Once_Per_Second(self, database): elapsedSecondsSinceLastExecution = time.time( ) - self.timeOfLastPerSecondPerformance if elapsedSecondsSinceLastExecution > 1: self.Perform_Tasks_Every_Second(database) self.timeOfLastPerSecondPerformance = time.time()
def check_system(): try: # inquiry onos info res_code, sys_info = CLI.req_sys_info() if res_code != 200: SYS.disconnect_type = 'disconnect' SCREEN.draw_event(SYS.disconnect_type) LOG.debug_log( '[SYSTEM_CHECK_THREAD] Rest server does not respond to the request. RES_CODE = ' + str(res_code)) return ret = SYS.changed_sys_info(sys_info) if SYS.get_sys_redraw_flag(): if ret is True: SCREEN.draw_system(menu_list) SCREEN.draw_event(SYS.disconnect_type) else: SCREEN.draw_refresh_time(menu_list) except: LOG.exception_err_write()
def typed_text(self, text, x, y, size=None): if size is None: size = 24 foundation_string = '' loop_amount = len(text) for loop in range(0, loop_amount): SCREEN.frame() foundation_string += text[loop] SCREEN.draw_string(foundation_string, x, y, size, (255, 255, 255)) sleep(0.1) pygame.display.flip() if loop != loop_amount - 1: play('keystroke.wav') SCREEN.render_refresh() play('return.wav')
def typed_text(self, text, x, y, size=None): if size is None: size = 24 foundation_string = '' loop_amount = len(text) for loop in range(0, loop_amount): SCREEN.frame() foundation_string += text[loop] SCREEN.draw_string( foundation_string, x, y, size, (255, 255, 255) ) sleep(0.1) pygame.display.flip() if loop != loop_amount - 1: play('keystroke.wav') SCREEN.render_refresh() play('return.wav')
def main(self): SCREEN.frame() self.check_choice()
def listen_disconnect_evt(evt, rest_evt): global evt_thread while SYS.get_sys_thr_flag(): try: evt.wait(1) if evt.is_set(): LOG.debug_log('Get disconnect event') evt.clear() SYS.disconnect_type = 'disconnect' if SYS.get_sys_redraw_flag(): SCREEN.draw_event(SYS.disconnect_type) SCREEN.get_screen().clear() SCREEN.screen_exit() print '\nCheck monitoring server.' os.killpg(os.getpid(), signal.SIGKILL) #os.kill(os.getpid(), signal.SIGKILL) time.sleep(1) rest_evt.wait(1) if rest_evt.is_set(): LOG.debug_log('Get rest error event') rest_evt.clear() SYS.disconnect_type = 'rest_warn' if SYS.get_sys_redraw_flag(): SCREEN.draw_event(SYS.disconnect_type) SCREEN.get_screen().clear() SCREEN.screen_exit() print '\nCheck client rest server.' os.killpg(os.getpid(), signal.SIGKILL) #os.kill(os.getpid(), signal.SIGKILL) time.sleep(1) except: LOG.exception_err_write()
def select_menu(): selected_menu_no = 1 try: SCREEN.set_screen() SCREEN.draw_system(menu_list) SCREEN.draw_event(SYS.disconnect_type) SCREEN.draw_menu(menu_list, selected_menu_no) SYS.set_sys_redraw_flag(True) x = SCREEN.get_ch() # 27 = ESC while x != 27: if x == curses.KEY_DOWN: if selected_menu_no != len(menu_list): selected_menu_no += 1 elif x == curses.KEY_UP: if selected_menu_no != 1: selected_menu_no -= 1 elif x == ord("\n"): # stop timer SYS.set_sys_redraw_flag(False) SCREEN.refresh_screen() SCREEN.screen_exit() menu = menu_list[selected_menu_no - 1] if menu in ['CLI', 'Monitoring Details', 'Event History']: if menu == 'CLI': SCREEN.display_header(menu_list[selected_menu_no - 1]) SCREEN.display_sys(True) elif menu == 'Monitoring Details': SCREEN.display_status() elif menu == 'Event History': SCREEN.display_event() readline.set_completer(CLI.pre_complete_cli) while True: # mac OS if 'libedit' in readline.__doc__: CLI.modify_flag = True CLI.save_buffer = readline.get_line_buffer() # select_command (handling tab event) cmd = CLI.input_cmd() cmd = cmd.strip() if CLI.is_menu(cmd): break elif CLI.is_exit(cmd): return elif cmd == 'help': SCREEN.display_help() elif cmd == 'monitoring-details': SCREEN.display_status() elif cmd.startswith('event-history'): if len(cmd.split(' ')) == 2: try: num = int(cmd.split(' ')[1]) SCREEN.display_event(num) except: print 'log count param is wrong. ex) event-history 15' else: SCREEN.display_event() elif cmd == 'flow-trace': source_ip = raw_input('CLI(flow-trace)> source ip : ') dest_ip = raw_input('CLI(flow-trace)> destination ip : ') TRACE.process_trace_rest(source_ip, dest_ip) elif cmd.startswith('traffic-test'): if cmd.startswith('traffic-test -f '): try: filename = cmd.split(' ')[2] except: filename = '' if not os.path.exists(filename): print 'file does not exist [' + filename + ']' continue result_file = open(filename, 'r') test_list = [] for line in result_file.read().splitlines(): if line.startswith('#'): continue tmp = line.split(';') test_dict = dict() test_dict['node'] = tmp[0] test_dict['instance_id'] = tmp[1] test_dict['vm_user_id'] = tmp[2] test_dict['vm_user_password'] = tmp[3] test_dict['traffic_test_command'] = tmp[4] try: test_dict['next_command_interval'] = int(tmp[5]) except: test_dict['next_command_interval'] = 0 test_list.append(test_dict) TRACE.process_traffic_test(test_list) else: yes_no = 'y' test_list = [] while yes_no.upper() == 'Y': test_dict = dict() test_dict['node'] = raw_input('CLI(traffic-test)> node : ') test_dict['instance_id'] = raw_input('CLI(traffic-test)> instance id : ') test_dict['vm_user_id'] = raw_input('CLI(traffic-test)> vm user id : ') test_dict['vm_user_password'] = raw_input('CLI(traffic-test)> vm user pw : ') test_dict['traffic_test_command'] = raw_input('CLI(traffic-test)> traffic test command : ') try: test_dict['next_command_interval'] = int(raw_input('CLI(traffic-test)> next command interval : ')) except: test_dict['next_command_interval']= 0 yes_no = raw_input('CLI(traffic-test)> Do you want to add test conditions?(y/n) ') test_list.append(test_dict) TRACE.process_traffic_test(test_list) else: # send command CLI.process_cmd(cmd) while not CLI.get_cli_ret_flag(): time.sleep(1) elif menu == 'Flow Trace': from asciimatics.screen import Screen from asciimatics.exceptions import ResizeScreenError # clear screen SCREEN.get_screen().clear() SCREEN.screen_exit() last_scene = None while True: try: Screen.wrapper(SCREEN.start_screen, catch_interrupt=True, arguments=[last_scene]) if SCREEN.quit_flag: return elif SCREEN.menu_flag: SCREEN.set_screen() SCREEN.main_scr.timeout(-1) break elif SCREEN.resize_err_flag: SCREEN.draw_trace_warning() SCREEN.screen_exit() SCREEN.menu_flag = True return except ResizeScreenError as e: last_scene = e.scene elif menu == 'Quit': break SCREEN.draw_system(menu_list) SCREEN.draw_event(SYS.disconnect_type) SCREEN.draw_menu(menu_list, selected_menu_no) SCREEN.refresh_screen() SYS.set_sys_redraw_flag(True) x = SCREEN.get_ch() SCREEN.screen_exit() except: LOG.exception_err_write()
def select_menu(): selected_menu_no = 1 try: SCREEN.set_screen() SCREEN.draw_system(menu_list) SCREEN.draw_event(SYS.disconnect_flag) SCREEN.draw_menu(menu_list, selected_menu_no) SYS.set_sys_redraw_flag(True) x = SCREEN.get_ch() # 27 = ESC while x != 27: if x == curses.KEY_DOWN: if selected_menu_no != len(menu_list): selected_menu_no += 1 elif x == curses.KEY_UP: if selected_menu_no != 1: selected_menu_no -= 1 elif x == ord("\n"): # stop timer SYS.set_sys_redraw_flag(False) # ?? is it necessary? SCREEN.refresh_screen() SCREEN.screen_exit() menu = menu_list[selected_menu_no - 1] if menu == 'CLI' or menu == 'Event List': if menu == 'CLI': SCREEN.display_header(menu_list[selected_menu_no - 1]) SCREEN.display_sys(True) elif menu == 'Event List': SCREEN.display_event() readline.set_completer(CLI.pre_complete_cli) while True: # mac OS if 'libedit' in readline.__doc__: CLI.modify_flag = True CLI.save_buffer = readline.get_line_buffer() # select_command (handling tab event) cmd = CLI.input_cmd() cmd = cmd.strip() if CLI.is_menu(cmd): break elif CLI.is_exit(cmd): return elif cmd == 'dis-system': SCREEN.display_sys() elif cmd == 'help': SCREEN.display_help() else: # send command CLI.process_cmd(cmd) while not CLI.get_cli_ret_flag(): time.sleep(1) elif menu == 'Flow Trace': from asciimatics.screen import Screen from asciimatics.exceptions import ResizeScreenError # clear screen SCREEN.get_screen().clear() SCREEN.screen_exit() last_scene = None while True: try: Screen.wrapper(SCREEN.start_screen, catch_interrupt=True, arguments=[last_scene]) if SCREEN.quit_flag: return elif SCREEN.menu_flag: return elif SCREEN.resize_err_flag: SCREEN.draw_trace_warning() SCREEN.screen_exit() SCREEN.menu_flag = True return except ResizeScreenError as e: last_scene = e.scene SCREEN.draw_system(menu_list) SCREEN.draw_event(SYS.disconnect_flag) SCREEN.draw_menu(menu_list, selected_menu_no) SCREEN.refresh_screen() SYS.set_sys_redraw_flag(True) x = SCREEN.get_ch() SCREEN.screen_exit() except: LOG.exception_err_write()