Esempio n. 1
0
class NapalmGeneral(QWidget):

    # Facts and environment

    @update_paths
    def __init__(self, node, controller):
        super().__init__()
        self.node = node

        action_label = QLabel('Action')
        object_label = QLabel('Object')

        self.general_list = QListWidget()
        self.general_list.setSortingEnabled(True)
        self.general_list.itemSelectionChanged.connect(self.info_update)

        self.action_list = QListWidget()
        self.action_list.setSortingEnabled(True)
        self.action_list.itemSelectionChanged.connect(self.action_update)

        self.properties_edit = QConsoleEdit()
        self.properties_edit.setMinimumSize(300, 300)

        layout = QGridLayout()
        layout.addWidget(object_label, 0, 0)
        layout.addWidget(self.general_list, 1, 0)
        layout.addWidget(action_label, 0, 1)
        layout.addWidget(self.action_list, 1, 1)
        layout.addWidget(self.properties_edit, 2, 0, 1, 2)
        self.setLayout(layout)

    def update(self):
        self.general_list.clear()
        if 'Environment' in self.node.napalm_data:
            infos = ['Facts'] + list(self.node.napalm_data['Environment'])
            self.general_list.addItems(infos)

    def info_update(self):
        self.properties_edit.clear()
        info = self.general_list.currentItem().text()

        if info == 'Facts':
            value = str_dict(self.node.napalm_data['Facts'])
            self.properties_edit.insertPlainText(value)
        else:
            self.action_list.clear()
            values = map(str, self.node.napalm_data['Environment'][info])
            self.action_list.addItems(values)

    def action_update(self):
        self.properties_edit.clear()
        action = self.action_list.currentItem()
        if action:
            info = self.general_list.currentItem().text()
            action_dict = self.node.napalm_data['Environment'][info][
                action.text()]
            self.properties_edit.insertPlainText(str_dict(action_dict))
Esempio n. 2
0
class NapalmInterfaces(QWidget):
    
    napalm_actions = (
    'Interfaces',
    'Interface IP',
    'Interfaces counters',
    )

    @update_paths
    def __init__(self, node, controller):
        super().__init__()
        self.node = node

        action_label = QLabel('Action')
        object_label = QLabel('Object')
        
        self.object_list = QListWidget()
        self.object_list.setSortingEnabled(True)
        self.object_list.itemSelectionChanged.connect(self.text_update)        
        
        self.action_list = QListWidget()
        self.action_list.setSortingEnabled(True)
        self.action_list.itemSelectionChanged.connect(self.text_update)
        self.action_list.addItems(self.napalm_actions)
        
        self.properties_edit = QConsoleEdit()
        self.properties_edit.setMinimumSize(300, 300)

        layout = QGridLayout()
        layout.addWidget(object_label, 0, 0)
        layout.addWidget(self.object_list, 1, 0)
        layout.addWidget(action_label, 0, 1)
        layout.addWidget(self.action_list, 1, 1)
        layout.addWidget(self.properties_edit, 2, 0, 1, 2)
        self.setLayout(layout)
        
    def update(self):
        self.object_list.clear()
        if 'Interfaces' in self.node.napalm_data:
            self.object_list.addItems(self.node.napalm_data['Interfaces'])
            
    def text_update(self):
        action = self.action_list.currentItem()
        object = self.object_list.currentItem()
        
        if action and object:
            self.properties_edit.clear()
            # we display a dictionnary with the following format:
            # property1: value1
            # property2: value2
            
            action, object = action.text(), object.text()
            value = str_dict(self.node.napalm_data[action][object])                
            self.properties_edit.insertPlainText(value)