Ejemplo n.º 1
0
Archivo: poe.py Proyecto: plan1230/nav
    def handle(self):
        if self.netbox.master:
            self._logger.debug("this is a virtual instance of %s, not polling",
                               self.netbox.master)
            returnValue(None)

        poemib = PowerEthernetMib(self.agent)
        if self.netbox.type and self.netbox.type.vendor.id == 'cisco':
            cisco_mib = CiscoPowerEthernetExtMib(self.agent)
            port_phy_index = yield cisco_mib.retrieve_column(
                "cpeExtPsePortEntPhyIndex")
            group_phy_index = yield cisco_mib.retrieve_column(
                "cpeExtMainPseEntPhyIndex")
            entity_mib = EntityMib(self.agent)
            alias_mapping = yield entity_mib.get_alias_mapping()
            port_ifindices = self._resolve_ifindex(port_phy_index,
                                                   alias_mapping)
        else:
            port_ifindices = {}
            group_phy_index = {}

        groups = yield poemib.get_groups_table()
        self._process_groups(groups, group_phy_index)

        ports = yield poemib.get_ports_table()
        self._process_ports(ports, port_ifindices)
        self._log_invalid_portgroups()
Ejemplo n.º 2
0
    def _collect_power(self, netboxes):
        mib = PowerEthernetMib(self.agent)
        power = yield mib.get_groups_table()
        self._logger.debug("Got poe data %s", power)
        power = {
            key: val['pethMainPseConsumptionPower']
            for key, val in power.items() if val['pethMainPseOperStatus'] == 1
        }
        timestamp = time.time()

        if power:
            metrics = []
            for netbox in netboxes:
                for index, value in power.items():
                    path = metric_path_for_power(netbox, index)
                    metrics.append((path, (timestamp, value)))
            defer.returnValue(metrics)
        else:
            defer.returnValue([])
Ejemplo n.º 3
0
Archivo: poe.py Proyecto: hmpf/nav
    def handle(self):
        if self.netbox.master:
            self._logger.debug(
                "this is a virtual instance of %s, not polling", self.netbox.master
            )
            returnValue(None)

        poemib = PowerEthernetMib(self.agent)
        if self._is_cisco():
            (
                group_phy_index,
                port_ifindices,
            ) = yield self._map_cisco_power_ports_to_ifindex()
        else:
            port_ifindices = {}
            group_phy_index = {}

        groups = yield poemib.get_groups_table()
        self._process_groups(groups, group_phy_index)

        ports = yield poemib.get_ports_table()
        self._process_ports(ports, port_ifindices)
        self._log_invalid_portgroups()