I fixed a NullException in the -S function to vict.jar
The -S (Substitute with SNICKs) is similar to the -f (filterOut) as follows:
FilterOut (-f) removes all nicknames that are “predictable” or “provided” in VW3, and most likely provided by the VW3.x system to take the place of empty nicknames. Recall that VW3 will show an alias if available, an FCID is there’s no nickname, or a WWPN if no FCID is granted to a FLOGI. This means nicknamed devices show nicknames, but F-ports lacking nicknames show FCIDs, and ISLs (wherein no FCID is available) show WWPNs of the remote switch. FilterOut removes those predictable values, so that only the nicknames not appearing to be WWPN, the name “nickname (ISL)”, nor FCIDs (5-digit and 6-digit) are given. It can reproduce the original imported nicknames.
The risk, of course, is that bogus nicknames can be artificially elevated in status. The “provided” nicknames are overwritten by VW3 as new ones are available. A WWPN re-FLOGIs and gets a new FCID, that redefines the FCID-based nickname. The VW3 system will not overwrite a user-provided nickname, however.
What happens when the user imports a FCID-based nickname? The VW3 system will not overwrite it, so the wrong FCID is shown instead of the correct one. There’s no strong indication that this is occurring: VW3 doesn’t track whether a nickname is being conveyed or generated/provided. Additionally, “use Key Aliases” turns off ALL aliases, treating VW3-provided nicknames like user-provided nicknames.
FilterOut avoids this, and it’s as simple as using after a -nickname= collection:
VICT.BAT -N bna://bna.example.com/ -f -n nicknames.csv
java -jar vict.jar -N bna://bna.example.com/ -f -n nicknames.csv
SubstituteWithSNICKs (-S) takes this one more step:
- filter it out
- if there is a SuggestedNickname (SNICK) (see http://github.com/chickenandpork/wwndesc/), replace it with that
This allows the user to remove all FCID nicknames and replace them. Storage devices, SVCs, even some NPIVs (hey, vConnect and UCS, I’m looking at you) can be swapped in, identifying, for example, the Chassis (002a6a) of a UCS.
it’s just as simple as FilterOut:
VICT.BAT -N bna://bna.example.com/ -S -n nicknames.csv
java -jar vict.jar -N bna://bna.example.com/ -S -n nicknames.csv
or, verbosely:
VICT.BAT --nickname=bna://bna.example.com/ --suggestednicks --nicknameout=nicknames.csv
java -jar vict.jar --nickname=bna://bna.example.com/ --suggestednicks --nicknameout=nicknames.csv