Example #1
0
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()
Example #2
0
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()
Example #3
0
    def __init__(self, database):

        self.timeOfLastPerSecondPerformance = time.time()

        self.screen = SCREEN()

        self.robots = ROBOTS(database, self.screen)

        self.reinforcements = REINFORCEMENTS()
Example #4
0
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()
Example #5
0
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()
Example #6
0
 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')
Example #7
0
 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')
Example #8
0
 def main(self):
     SCREEN.frame()
     self.check_choice()
Example #9
0
 def main(self):
     SCREEN.frame()
     self.check_choice()
Example #10
0
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()
Example #11
0
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()
Example #12
0
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()