The utility accepts test names as parameters, and will then parse the bb-hosts file and print out the host entries that have at least one of the wanted tests specified. Tags may be given with a trailing asterisk '*', e.g. "bbhostgrep http*" is needed to find all http and https tags.
The bbhostgrep utility supports the use of "include" directives inside the bb-hosts file, and will find matching tags in all included files.
If the DOWNTIME or SLA tags are used in the bb-hosts(5) file, these are interpreted relative to the current time. bbhostgrep then outputs a "INSIDESLA" or "OUTSIDESLA" tag for easier use by scripts that want to check if the current time is inside or outside the expected uptime window.
192.168.1.1 www.test.com # ftp telnet !oracle
192.168.1.2 db1.test.com # oracle
192.168.1.3 mail.test.com # smtp
and you have a custom Hobbit extension script that performs the "oracle" test, then running "bbhostgrep oracle" would yield
192.168.1.1 www.test.com # !oracle
192.168.1.2 db1.test.com # oracle
so the script can quickly find the hosts that are of interest.
Note that the reverse-test modifier - "!oracle" - is included in the output; this also applies to the other test modifiers defined by Hobbit (the dialup and always-true modifiers).
If your extension scripts use more than one tag, just list all of the interesting tags on the command line.
bbhostgrep also supports the "NET:location" tag used by bbtest-net, so if your script performs network checks then it will see only the hosts that are relevant for the test location that the script currently executes on.
$GREP -i "^[0-9].*#.*TESTNAME" $BBHOSTS | ... code to handle test
Instead of the grep, we will use bbhostgrep. It then becomes
$BBHOME/bin/bbhostgrep TESTNAME | ... code to handle test
which is simpler, less error-prone and more efficient.