Revision 665 – Handle Brocade Hanging F-ports

The underlying fibrechannel-parsers project added the ability to properly handle H{xxx} markup, which seems to be Brocade marking out Hanging fabric members (disappeared, never rejoined). In vitools, a testcase confirms functionality absorbed into vict.jar “-N” behavior.

In short, the ability to ignore hard-zoning was improved to get the WWPN from a hanging member as well.

Revision 657 – Cisco Show Zone

Added the ability to parse nicknames from a Cisco Show Zone. In short: blindly parse a “show zone” output, and if the text stream isn’t overly butchered, nicknames will be detected and imported to the VICT space for writing using -n file.csv or --nicknameout=file.csv

in fibrechannel-parsers version 0.3.39, a parser was added for the result of a cisco show zone:

zone name SANASVR001_FabA vsan 100
  fcalias name Oracle_123466 vsan 100
    pwwn 10:00:00:00:c9:12:34:66

  fcalias name HDS0123457_CL7F vsan 100
    pwwn 50:06:0e:80:12:34:56:78

This differs from a show device-alias database or a show fcalias in that the zone entries are present, and may contain vsan verbs. Implemented as a stream, it should be a bit more robust and accepting than a pure-scripted variant, so that content provided by (oh, my favorite!) a user cutting a session out to log and submitting that (because it’s just as good… nah, with the ANSI markers and color formatting, it’s better!). This isn’t a substitution for ignoring the very detail when (not) reading directions, but it should give us a fighting chance.

The addition is available in the same array of parsers, so it works without any new user-config. For example, list like the parsing of cisco device-alias database as a simple text stream (from FTP, HTTP, or FILE:// URLs), a simple --nickname= or -N will work:

java -jar vict.jar --nickname=file:///file/name.txt

(or the convenience fallback)
java -jar vict.jar --nickname=/file/name.txt

(or in short-form options)
java -jar vict.jar -N name.txt

(or in Windows)
VICT.BAT -N name.txt

The matching actions in the main toolkit using the fibrechannel-parsers project involves a test case to ensure the code is resident and functioning; by that method, whatever version of fibrechannel-parsers is found during the build will offer at minimum a functioning version of this extension.

Revision 640 – Filter or Replace Nicknames

In this revision, the FAE tools gain the ability to filter or replace automatically-provided nicknames in the imported nicknames. This includes:

  • Nicknames that look like FCIDs (which are automatically provided for devices logged into F-ports)
  • Nicknames that look like WWPNs (which are typically ISLs: something attached, but no FLOGI)
  • Nicknames ending in “(ISL)” which tend to be completed ISLs (discover both sides)

Filter (-f) removes these nicknames, allowing a cleaned-up nickname file to be imported without accidentally setting generated nicknames to be user-provided (hence “sticky”).

Replace (-S, for Suggested) swaps with Suggested Nicknames (SNICKs) — nicknames based on well known patterns of WWPNs by deliberate manufacturer habit or design.

Nicknames that do not look like predictable/default nicknames are not affected: this is intended for cleaning up a Portal Service export that includes all sorts of additional information.

Revision 638 – Suggested Nicknames for Pure Storage WWN Patterns

Expanded the option “-w” from Suggested Nicknames for Known WWN Patterns to vict.jar such that vict.jar -w 52:4a:93:7d:74:f1:14:00 offers “Pure-d74f114-CT0.FC0” or “Pure-d74f114:0:0” in brief, giving (weak) nicknames to Pure Storage Flash-based storage targets.

Note that since WWN patterns are moved to the external WWNDesc project, this is merely test code to ensure that the parallel work in the external project is functioning as required today and henceforth.

This nickname pattern is based on what I’ve seen deployed, and has no clear direction or description from Pure Storage. Pure is actually shipping QLogic HBAs as storage target FA ports, like many other vendors, however they have the decency and class to re-brand the OUI as their own OUI, making them easier to identify. THANKS, Pure! You make our lives a bit easier by taking that extra step.

Revision 617 – Dump Existing Nicknames moved from VIFT; initial DCFM extraction

After some discussion, the query used for “–dump-config=nickname.csv” in VIFT was improved and added back into VICT. This allows a simple export of the existing Nicknames for use in the “-R” option to revision 615 so that a customer who wants to generate a Nickname Diff can do so using:

  1. java -jar vict.jar -D nickname.csv
  2. java -jar vict.jar -N bna://server/ -D nickname.csv -n diff-nicknames.csv

This ensures that diff-nicknames.csv includes only the NEW nicknames for import.

Additionally, notice how –nickname=bna://server/ is used; this is an abbreviation for bnapsql:// for which cmcne:// also applies:

java -jar vict.jar -N bna://server/ -N cmcne://otherserver/ -D nickname.csv -n diff-nicknames.csv

If you’re leveraging the PHC-based Suggested nicknames, you can still use the VICT as a copying entity:

  1. java -jar vict.jar -D nickname.csv
  2. java -jar phc.jar -A\some\path\bob
  3. java -jar vict.jar -N bna://server/ -N \some\path\bob-Nicknames.csv -D nickname.csv -n diff-nicknames.csv

There’s some initial work for vict.jar -N dcfm:// but the schema is still up-in-the-air.

Now go keep those nicknames updated!

Revision 615 – RemoveNicknames Allows Nickname-Diff Creation

There has been a strange issue with diminishing efficiency of nickname import as the number of nicknames increases and the number of other threads competing for a database lock increases. Apparently it’s too difficult check nicknames before setting, and I’ve seen roughly 3 nicknames every 2 seconds on some portals.

Considering this, and that we have ways of getting nicknames from files (including basic 2-column format), I’ve added a method of taking a parsed list of nicknames and removing it from the nickname base.

The “–removenicknames=” option (“-R”) parses a nickname input (BNA, file://, OCI, HTTP, FTP, same logic as adding) and removes them from the internal nickname base rather than adding.

This would let us:

  1. collect new nicknames from all the current sources
  2. remove a list of assumed-current nicknames
  3. write out the remainder for import

Additionally, collecting the current assumed-current plus the new nicknames gives us the new assumed-current.

Revision 613 – fctransfers Gives us SFTP Uploads

In rev 605, the code for uploads was completely dependent on the code brought in with fctransfer.jar’s convenience library.

This revision evolves that change: all uploads are delegated to the fctransfer project, which means we get SFTP uploads for free:

Upload methods are now:

  • FTP: java -jar vict.jar -U ftp://scott:tiger@ftp.example.com/path/ -u file1 -u file2
  • SFTP: java -jar vict.jar -U sftp://scott:tiger@ftp.example.com/path/ -u file1 -u file2

Notice the similarity? That’s intentional.

Of course, both upload methods send a checksum including a notify element.

There remains some oddity in the commons-net-ssh used; I may need to swap out the underlying ssh to sshj or such.

Revision 609 – Helpful Documentation around DNS and Certificate-protocol Convenience

In this revision, a few whitespace and documentation changes were made:

  • If DNS was configured but filtered/firewalled, the messages would be difficult to understand. Immediate reaction/retry suggestions are added to the error text
  • If the user tried the -C/–vcentercert option but didn’t give a protocol, the tool would prepend it. The error message said “You have an error, trying with a protocol” but that was misunderstood as “you have an error. the sky has fallen, nothing further will be done”. The error message is augmented to be a bit more understandable.

Revision 600 – (weak) Suggested Nicknames for Apparent NetApp WWN Patterns

Expanded the option “-w” from Suggested Nicknames for Known WWN Patterns to vict.jar such that vict.jar -w 500a098300004060 shows “NetApp-4060-iGrp0-0N” giving suggested nicknames to NetApp Devices.

Just like Apparent VPLEX Patterns, this WWN Descriptor is empirically-based. Additional WWPN samples would help guide a better, more precise solution.