Skip to content

Latest commit

 

History

History
42 lines (38 loc) · 1.82 KB

README.md

File metadata and controls

42 lines (38 loc) · 1.82 KB

resolve.py

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 -c is then used to count them.