示例#1
0
文件: client.py 项目: hile/seine
    def tree_indexes(self, oid):
        """Return OIDs mathcing prefix

        Return OID tree indexes matching provided OID from self.trees

        """
        oid = self.tree_key(oid)
        try:
            return map(lambda k: k.split('.')[-1], sorted(
                self.trees[oid].keys(),
                lambda x, y: cmp_oid(x, y)
            ))
        except KeyError:
            raise SNMPError('Tree not loaded: {0}'.format(oid))
示例#2
0
文件: client.py 项目: hile/seine
    def tree(self,oid, refetch=False, indexed=False):
        """Walk and store tree to self.trees

        Wrapper to self.walk to store tree results to self.trees for
        further processing

        """
        tree_id = self.tree_key(oid)
        if not refetch and tree_id in self.trees:
            tree = self.trees[tree_id]
        else:
            try:
                tree = self.walk(oid)
                self.trees[tree_id] = tree
            except CarrierError as e:
                raise SNMPError(str(e))
            except SNMPError as e:
                raise SNMPError(str(e))

        if indexed is True:
            keys = sorted(tree.keys(), lambda x, y: cmp_oid(x, y))
            return [(k.lstrip('.').split('.')[-1], tree[k]) for k in keys]
        else:
            return tree