For this revision, I wrote: “enable the –nickname= function to fork inbound content to a number of parsers; the one with the most results wins. Net result: the FAE or user needs not worry what they send to the tool, it will try to figure out what the file is. Supports user-selected columns in CSV, Brocade ZoneShow, and BNA”
What does that mean, in detail?
In past, the –nickname= fed directly into a single consumer that understand the user giving a “;WWN=x” or “;Nickname=y”, and uses those columns as input to nickname data.
Now, there are three parsers all feeding from the same resource, so even remote content (ie ftp:// and http:// URLs) is only downloaded once, but forked to many parsers. Without the user worrying about format, the three parsers try to interpret the stream to see what they can dig up. The “winning” parser is the one with the most results, effectively adapting to whatever the user sends it …of the three formats currently understood directly:
- WWN,Nickname (WWN=x and Nickname=y are still effective)
- Brocade
zoneshow
output (accuracy is challenged if the user sends a logdump of a screen-scraped output; for best results, treat the output as binary, and convert it directly usingplink.exe
orssh
, not a screen-capture of a log dump) - Brocade binary zone information from BNA versions 11 or 12
To re-iterate, the following URI types are understood:
- http://www.example.com/file.ext
- ftp://ftp.example.com/file.ext (anonymous FTP; have not tested user/pass)
- file://current/directory/subdir/file.ext (same as .\current\directory\subdir\file.ext in windows)
- file:///current/directory/subdir/file.ext (three slashes, same as \current\directory\subdir\file.ext in windows)
- bnapsql://bna.example.com/
- no URL: –nickname=sampleZone.zone (confirmed in testcases)