Ejemplo n.º 1
0
    def __init__ (self, mng):
        super(TrexTUIDashBoard, self).__init__(mng, "dashboard")

        self.ports = self.stateless_client.get_all_ports()

        self.key_actions = OrderedDict()

        self.key_actions['c'] = {'action': self.action_clear,  'legend': 'clear', 'show': True}
        self.key_actions['p'] = {'action': self.action_pause,  'legend': 'pause', 'show': True, 'color': 'red'}
        self.key_actions['r'] = {'action': self.action_resume, 'legend': 'resume', 'show': True, 'color': 'blue'}

        self.key_actions['o'] = {'action': self.action_show_owned,  'legend': 'owned ports', 'show': True}
        self.key_actions['n'] = {'action': self.action_reset_view,  'legend': 'reset view', 'show': True}
        self.key_actions['a'] = {'action': self.action_show_all,  'legend': 'all ports', 'show': True}

        # register all the ports to the toggle action
        for port_id in self.ports:
            self.key_actions[str(port_id)] = {'action': self.action_toggle_port(port_id), 'legend': 'port {0}'.format(port_id), 'show': False}


        self.toggle_filter = ToggleFilter(self.ports)

        if self.stateless_client.get_acquired_ports():
            self.action_show_owned()
        else:
            self.action_show_all()
Ejemplo n.º 2
0
    def __init__ (self, mng):
        super(TrexTUIDashBoard, self).__init__(mng, "dashboard")

        self.ports = self.stateless_client.get_all_ports()

        self.key_actions = OrderedDict()

        self.key_actions['c'] = {'action': self.action_clear,  'legend': 'clear', 'show': True}
        self.key_actions['p'] = {'action': self.action_pause,  'legend': 'pause', 'show': True, 'color': 'red'}
        self.key_actions['r'] = {'action': self.action_resume, 'legend': 'resume', 'show': True, 'color': 'blue'}

        self.key_actions['o'] = {'action': self.action_show_owned,  'legend': 'owned ports', 'show': True}
        self.key_actions['n'] = {'action': self.action_reset_view,  'legend': 'reset view', 'show': True}
        self.key_actions['a'] = {'action': self.action_show_all,  'legend': 'all ports', 'show': True}

        # register all the ports to the toggle action
        for port_id in self.ports:
            self.key_actions[str(port_id)] = {'action': self.action_toggle_port(port_id), 'legend': 'port {0}'.format(port_id), 'show': False}


        self.toggle_filter = ToggleFilter(self.ports)

        if self.stateless_client.get_acquired_ports():
            self.action_show_owned()
        else:
            self.action_show_all()
    def __init__(self, mng):
        super(TrexTUIDashBoard, self).__init__(mng, "dashboard")

        self.ports = self.stateless_client.get_all_ports()

        self.key_actions = OrderedDict()

        self.key_actions["c"] = {"action": self.action_clear, "legend": "clear", "show": True}
        self.key_actions["p"] = {"action": self.action_pause, "legend": "pause", "show": True, "color": "red"}
        self.key_actions["r"] = {"action": self.action_resume, "legend": "resume", "show": True, "color": "blue"}

        self.key_actions["o"] = {"action": self.action_show_owned, "legend": "owned ports", "show": True}
        self.key_actions["n"] = {"action": self.action_reset_view, "legend": "reset view", "show": True}
        self.key_actions["a"] = {"action": self.action_show_all, "legend": "all ports", "show": True}

        # register all the ports to the toggle action
        for port_id in self.ports:
            self.key_actions[str(port_id)] = {
                "action": self.action_toggle_port(port_id),
                "legend": "port {0}".format(port_id),
                "show": False,
            }

        self.toggle_filter = ToggleFilter(self.ports)

        if self.stateless_client.get_acquired_ports():
            self.action_show_owned()
        else:
            self.action_show_all()
Ejemplo n.º 4
0
class TrexTUIDashBoard(TrexTUIPanel):

    FILTER_ACQUIRED = 1
    FILTER_ALL = 2

    def __init__(self, mng):
        super(TrexTUIDashBoard, self).__init__(mng, "dashboard")

        self.ports = self.stateless_client.get_all_ports()

        self.key_actions = OrderedDict()

        self.key_actions['c'] = {
            'action': self.action_clear,
            'legend': 'clear',
            'show': True
        }
        self.key_actions['p'] = {
            'action': self.action_pause,
            'legend': 'pause',
            'show': True,
            'color': 'red'
        }
        self.key_actions['r'] = {
            'action': self.action_resume,
            'legend': 'resume',
            'show': True,
            'color': 'blue'
        }

        self.key_actions['o'] = {
            'action': self.action_show_owned,
            'legend': 'owned ports',
            'show': True
        }
        self.key_actions['n'] = {
            'action': self.action_reset_view,
            'legend': 'reset view',
            'show': True
        }
        self.key_actions['a'] = {
            'action': self.action_show_all,
            'legend': 'all ports',
            'show': True
        }

        # register all the ports to the toggle action
        for port_id in self.ports:
            self.key_actions[str(port_id)] = {
                'action': self.action_toggle_port(port_id),
                'legend': 'port {0}'.format(port_id),
                'show': False
            }

        self.toggle_filter = ToggleFilter(self.ports)

        if self.stateless_client.get_acquired_ports():
            self.action_show_owned()
        else:
            self.action_show_all()

    def get_showed_ports(self):
        return self.toggle_filter.filter_items()

    def show(self, buffer):
        stats = self.stateless_client._get_formatted_stats(
            self.get_showed_ports())
        # print stats to screen
        for stat_type, stat_data in stats.items():
            text_tables.print_table_with_header(stat_data.text_table,
                                                stat_type,
                                                buffer=buffer)

    def get_key_actions(self):
        allowed = OrderedDict()

        allowed['n'] = self.key_actions['n']
        allowed['o'] = self.key_actions['o']
        allowed['a'] = self.key_actions['a']
        for i in self.ports:
            allowed[str(i)] = self.key_actions[str(i)]

        if self.get_showed_ports():
            allowed['c'] = self.key_actions['c']

        # if not all ports are acquired - no operations
        if not (set(self.get_showed_ports()) <= set(
                self.stateless_client.get_acquired_ports())):
            return allowed

        # if any/some ports can be resumed
        if set(self.get_showed_ports()) & set(
                self.stateless_client.get_paused_ports()):
            allowed['r'] = self.key_actions['r']

        # if any/some ports are transmitting - support those actions
        if set(self.get_showed_ports()) & set(
                self.stateless_client.get_transmitting_ports()):
            allowed['p'] = self.key_actions['p']

        return allowed

    ######### actions
    def action_pause(self):
        try:
            rc = self.stateless_client.pause(ports=self.get_showed_ports())
        except STLError:
            pass

        return ""

    def action_resume(self):
        try:
            self.stateless_client.resume(ports=self.get_showed_ports())
        except STLError:
            pass

        return ""

    def action_reset_view(self):
        self.toggle_filter.reset()
        return ""

    def action_show_owned(self):
        self.toggle_filter.reset()
        self.toggle_filter.toggle_items(
            *self.stateless_client.get_acquired_ports())
        return ""

    def action_show_all(self):
        self.toggle_filter.reset()
        self.toggle_filter.toggle_items(*self.stateless_client.get_all_ports())
        return ""

    def action_clear(self):
        self.stateless_client.clear_stats(self.toggle_filter.filter_items())
        return "cleared all stats"

    def action_toggle_port(self, port_id):
        def action_toggle_port_x():
            self.toggle_filter.toggle_item(port_id)
            return ""

        return action_toggle_port_x
Ejemplo n.º 5
0
class TrexTUIDashBoard(TrexTUIPanel):

    FILTER_ACQUIRED = 1
    FILTER_ALL      = 2

    def __init__ (self, mng):
        super(TrexTUIDashBoard, self).__init__(mng, "dashboard")

        self.ports = self.stateless_client.get_all_ports()

        self.key_actions = OrderedDict()

        self.key_actions['c'] = {'action': self.action_clear,  'legend': 'clear', 'show': True}
        self.key_actions['p'] = {'action': self.action_pause,  'legend': 'pause', 'show': True, 'color': 'red'}
        self.key_actions['r'] = {'action': self.action_resume, 'legend': 'resume', 'show': True, 'color': 'blue'}

        self.key_actions['o'] = {'action': self.action_show_owned,  'legend': 'owned ports', 'show': True}
        self.key_actions['n'] = {'action': self.action_reset_view,  'legend': 'reset view', 'show': True}
        self.key_actions['a'] = {'action': self.action_show_all,  'legend': 'all ports', 'show': True}

        # register all the ports to the toggle action
        for port_id in self.ports:
            self.key_actions[str(port_id)] = {'action': self.action_toggle_port(port_id), 'legend': 'port {0}'.format(port_id), 'show': False}


        self.toggle_filter = ToggleFilter(self.ports)

        if self.stateless_client.get_acquired_ports():
            self.action_show_owned()
        else:
            self.action_show_all()


    def get_showed_ports (self):
        return self.toggle_filter.filter_items()


    def show (self, buffer):
        stats = self.stateless_client._get_formatted_stats(self.get_showed_ports())
        # print stats to screen
        for stat_type, stat_data in stats.items():
            text_tables.print_table_with_header(stat_data.text_table, stat_type, buffer = buffer)


    def get_key_actions (self):
        allowed = OrderedDict()


        allowed['n'] = self.key_actions['n']
        allowed['o'] = self.key_actions['o']
        allowed['a'] = self.key_actions['a']
        for i in self.ports:
            allowed[str(i)] = self.key_actions[str(i)]


        if self.get_showed_ports():
            allowed['c'] = self.key_actions['c']

        # if not all ports are acquired - no operations
        if not (set(self.get_showed_ports()) <= set(self.stateless_client.get_acquired_ports())):
            return allowed

        # if any/some ports can be resumed
        if set(self.get_showed_ports()) & set(self.stateless_client.get_paused_ports()):
            allowed['r'] = self.key_actions['r']

        # if any/some ports are transmitting - support those actions
        if set(self.get_showed_ports()) & set(self.stateless_client.get_transmitting_ports()):
            allowed['p'] = self.key_actions['p']


        return allowed


    ######### actions
    def action_pause (self):
        try:
            rc = self.stateless_client.pause(ports = self.get_showed_ports())
        except STLError:
            pass

        return ""



    def action_resume (self):
        try:
            self.stateless_client.resume(ports = self.get_showed_ports())
        except STLError:
            pass

        return ""


    def action_reset_view (self):
        self.toggle_filter.reset()
        return ""

    def action_show_owned (self):
        self.toggle_filter.reset()
        self.toggle_filter.toggle_items(*self.stateless_client.get_acquired_ports())
        return ""

    def action_show_all (self):
        self.toggle_filter.reset()
        self.toggle_filter.toggle_items(*self.stateless_client.get_all_ports())
        return ""

    def action_clear (self):
        self.stateless_client.clear_stats(self.toggle_filter.filter_items())
        return "cleared all stats"


    def action_toggle_port(self, port_id):
        def action_toggle_port_x():
            self.toggle_filter.toggle_item(port_id)
            return ""

        return action_toggle_port_x
class TrexTUIDashBoard(TrexTUIPanel):

    FILTER_ACQUIRED = 1
    FILTER_ALL = 2

    def __init__(self, mng):
        super(TrexTUIDashBoard, self).__init__(mng, "dashboard")

        self.ports = self.stateless_client.get_all_ports()

        self.key_actions = OrderedDict()

        self.key_actions["c"] = {"action": self.action_clear, "legend": "clear", "show": True}
        self.key_actions["p"] = {"action": self.action_pause, "legend": "pause", "show": True, "color": "red"}
        self.key_actions["r"] = {"action": self.action_resume, "legend": "resume", "show": True, "color": "blue"}

        self.key_actions["o"] = {"action": self.action_show_owned, "legend": "owned ports", "show": True}
        self.key_actions["n"] = {"action": self.action_reset_view, "legend": "reset view", "show": True}
        self.key_actions["a"] = {"action": self.action_show_all, "legend": "all ports", "show": True}

        # register all the ports to the toggle action
        for port_id in self.ports:
            self.key_actions[str(port_id)] = {
                "action": self.action_toggle_port(port_id),
                "legend": "port {0}".format(port_id),
                "show": False,
            }

        self.toggle_filter = ToggleFilter(self.ports)

        if self.stateless_client.get_acquired_ports():
            self.action_show_owned()
        else:
            self.action_show_all()

    def get_showed_ports(self):
        return self.toggle_filter.filter_items()

    def show(self, buffer):
        stats = self.stateless_client._get_formatted_stats(self.get_showed_ports())
        # print stats to screen
        for stat_type, stat_data in stats.items():
            text_tables.print_table_with_header(stat_data.text_table, stat_type, buffer=buffer)

    def get_key_actions(self):
        allowed = OrderedDict()

        allowed["n"] = self.key_actions["n"]
        allowed["o"] = self.key_actions["o"]
        allowed["a"] = self.key_actions["a"]
        for i in self.ports:
            allowed[str(i)] = self.key_actions[str(i)]

        if self.get_showed_ports():
            allowed["c"] = self.key_actions["c"]

        # if not all ports are acquired - no operations
        if not (set(self.get_showed_ports()) <= set(self.stateless_client.get_acquired_ports())):
            return allowed

        # if any/some ports can be resumed
        if set(self.get_showed_ports()) & set(self.stateless_client.get_paused_ports()):
            allowed["r"] = self.key_actions["r"]

        # if any/some ports are transmitting - support those actions
        if set(self.get_showed_ports()) & set(self.stateless_client.get_transmitting_ports()):
            allowed["p"] = self.key_actions["p"]

        return allowed

    ######### actions
    def action_pause(self):
        try:
            rc = self.stateless_client.pause(ports=self.get_showed_ports())
        except STLError:
            pass

        return ""

    def action_resume(self):
        try:
            self.stateless_client.resume(ports=self.get_showed_ports())
        except STLError:
            pass

        return ""

    def action_reset_view(self):
        self.toggle_filter.reset()
        return ""

    def action_show_owned(self):
        self.toggle_filter.reset()
        self.toggle_filter.toggle_items(*self.stateless_client.get_acquired_ports())
        return ""

    def action_show_all(self):
        self.toggle_filter.reset()
        self.toggle_filter.toggle_items(*self.stateless_client.get_all_ports())
        return ""

    def action_clear(self):
        self.stateless_client.clear_stats(self.toggle_filter.filter_items())
        return "cleared all stats"

    def action_toggle_port(self, port_id):
        def action_toggle_port_x():
            self.toggle_filter.toggle_item(port_id)
            return ""

        return action_toggle_port_x