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()
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([])
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()