A nodes.json command line data tool
usage: resolve [-h] [-f MAC/IPv6/HOSTNAME/BRANCH/FW_VERSION] [-m MODEL] [-q QUERY]
[-c] [-i NAME] [--gen-bat-hosts]
options:
-h, --help show this help message and exit
-f MAC/IPv6/HOSTNAME/BRANCH/FW_VERSION
filter for specific nodes
-m MODEL filter for specific nodes by hardware model
-q QUERY filter nodes by querying for specific information. e.g.
specify -q "hostname=foobar" to query for hosts named
"foobar" or -q "hostname~foo" to query hosts whose name
contains "foo". You can query for all information, that is
available (hostname, model, secondary-mac, autoupdater_en,
...). Negating queries is possible using "!=" or "!~".
-c try to use cached nodes json (from previous run of this
tool)
-i NAME display only a single information machine readable
--gen-bat-hosts generate a /etc/bat-hosts file
A relatively interesting query would be:
lemoer@orange ~/d/f/g/resolve (master)> resolve -q "firmware_rel~wg-pr" -q "autoupdater_en=true" -q autoupdater_br=stable -i firmware_rel | sort | uniq -c
Downloading data from https://harvester.ffh.zone/api/nodes.json...
2 vH21.10-wg-pr_freeze_week
1 vH21.11-wg-pr
7 vH21.12-wg-pr
1 vH21.14-wg-pr
47 vH21.15-wg-pr
1 vH21.1-wg-pr
2 vH21.8-wg-pr-resp
It fetches all nodes which
- have a firmware release containing the string "wg-pr"
- and have the autoupdater enabled
- and have the autoupdater branch set to stable
and returns the firmware release of all those nodes. The
| sort | uniq -cis then used to count them.