problem with python output of smidump

I've discovered a problem with the way the smidump dumps MIBs. Right now, everything is a dictionary. Dictionaries within dictionaries. That's ok in most cases, but the problem is that a dictionary returns values in arbitrary order (since it's really a hash table). At least one element requires retrieval in a specific order, namely the INDEX construct. For example:
INDEX { rtpSessionDomain, rtpSessionRemAddr, rtpSessionLocAddr, rtpSessionIndex }
The OID instance identifier part needs to be constructed in the exact order given here. But the python dump will return this in an undefined order (usually mixed up). So it's not possible to intelligently construct an index from the Python MIB.
I've include a patch with is really a quick-and-dirty fix to enable something I was working on. It just makes the INDEX a list. But it will lose some other information, and fail in some circumstances. So it's not the ultimate fix, but might help someone in a similiar situation.
I should probably abandon this tack and return to the pysmi wrapper...
\|// (O O) -- --------------------oOOo~(_)~oOOo---------------------------------------- Keith Dart mailto:kdart@kdart.com http://www.kdart.com/ ---------------------------------------------------------------------------- Ever since my brain transplant I ... ============================================================================

Hi!
Keith> I've discovered a problem with the way the smidump dumps MIBs. Right Keith> now, everything is a dictionary. Dictionaries within dictionaries. Keith> That's ok in most cases, but the problem is that a dictionary returns Keith> values in arbitrary order (since it's really a hash table). At least Keith> one element requires retrieval in a specific order, namely the INDEX Keith> construct. For example:
Keith> INDEX { rtpSessionDomain, rtpSessionRemAddr, rtpSessionLocAddr, Keith> rtpSessionIndex }
Keith> The OID instance identifier part needs to be constructed in the exact Keith> order given here. But the python dump will return this in an undefined Keith> order (usually mixed up). So it's not possible to intelligently Keith> construct an index from the Python MIB.
Keith> I've include a patch with is really a quick-and-dirty fix to enable Keith> something I was working on. It just makes the INDEX a list. But it Keith> will lose some other information, and fail in some circumstances. So Keith> it's not the ultimate fix, but might help someone in a similiar Keith> situation.
Keith> I should probably abandon this tack and return to the pysmi wrapper...
Thank you, Keith. Even, if the patch may cause other problems (which I did not investigate -- I'm no python guy), I think it's a step in the right direction to turn index sets into lists. I've applied your patch to the code base. It will appear on the CVS repository tonight and in the next libsmi release.
-frank -- !! This message is brought to you via the `libsmi' mailing list. !! Please do not reply to this message to unsubscribe. To subscribe or !! unsubscribe, send a mail message to libsmi-request@ibr.cs.tu-bs.de. !! See http://www.ibr.cs.tu-bs.de/projects/libsmi/ for more information.
participants (2)
-
Frank Strauss
-
Keith Dart