RNX UPDU and E3METER IPS PDU Tool
=================================

Allows the discovery and upgrade of UPDU and E3METER IPS
devices. Binaries for Windows, MacOS and Linux are provided.

Online-Help
-----------

Online help is available through the `help` subcommand:

    rnx_pdu_tool help
    rnx_pdu_tool help scan
    rnx_pdu_tool help upgrade

PDU Discovery
-------------

To scan a network for supported devices, use the `scan` subcommand:

    rnx_pdu_tool [global-options] scan <devices>

PDU Upgrade
-----------

To upgrade supported devices, use the `upgrade` subcommand:

    rnx_pdu_tool [options] upgrade <devices>

The tool accepts firmware files for UPDU and E3METER IPS PDUs through
the `--updu-fw` and `--ips2-fw` parameters:

    rnx_pdu_tool upgrade --updu-fw updu-fw-2.1.0-e67423e9.bin <devices>

When a supported devices is found, the currently installed version is
checked against the version of the specified firmware file(s). If the
installed version is older, the firmware file is sent. The tool
doesn't wait for the firmware upgrade to be completed.

With `--force`, upgrading can be forced, regardless of the version
which is already installed.

Devices
-------

Devices (<devices>) can be specified as:

- IP addresses
- IP ranges (e.g. `192.168.1.10-192.168.1.20`)
- IP subnets in CIDR notation (e.g. `192.168.10.64/27`)
- Hostnames
- `@file.txt` where `file.txt` is a text file containing one IP
  address or hostname per line, optionally followed by comma-separated
  username and password (`192.168.42.11,admin,securepw`)

Global Options
--------------

--http-timeout <duration>

    HTTP timeout, defaults to 30 seconds (30s)

--tcp-timeout <duration>

    TCP timeout, defaults to 1 second (1s)

--jobs <jobs>

    Number of jobs to do in parallel

--username <string>
--password <password>

    Username and password to use for logging in

--show-all

    When specified, a row is shown in the result table, even if a
    device could not be reached.

--quiet

    When specified, progress is hidden, only the final result table is
    shown.

--version

    Show the program version

Changes
-------

1.5.1

- Relax RNXBoot header parsing (#19)

1.5.0

- Add support for RNXBoot images (#18)

1.4.3

- Fix minor bug for ips2-4.10 (#17)

1.4.2

- Default http-timeout increased to 30s
- Fix bogus error message when the http-timeout is too short (#16)

1.4.1

- Show firmware upgrade result returned from UPDUs (#15) 
- Fix problem detecting and upgrading UPDUs which have the redirect to
  updu.io enabled (#14)

1.4.0

- Show progress by default, remove --verbose and add --show-all and
  --quiet flags (#12)

1.3.3

- Trim whitespace reading from @files (#11)
- Fix missing table rows (#10)

1.3.2

- Fix parsing hostnames in @files (#9)

1.3.1

- Fix parsing of hostnames containing '-' (#8)
- Fix table display on windows platforms (#7)

1.3.0

- UPDUs are detected uniquely using HTTPS (#6)
