NAME¶
dummy-ups - Driver for multi-purpose UPS emulation
NOTE¶
This man page only documents the specific features of the dummy-ups driver. For
information about the core driver, see
nutupsdrv(8).
DESCRIPTION¶
This program is a multi-purpose UPS emulation tool. Its behavior depends on the
running mode:
Dummy Mode¶
dummy-ups looks like a standard device driver to
upsd(8) and
allows one to change any value for testing purposes. It is both interactive,
controllable through the
upsrw(1) and
upscmd(1) commands (or
equivalent graphical tool), and batchable through script files. It can be
configured, launched and used as any other real driver. This mode is mostly
useful for development and testing purposes.
Repeater Mode¶
dummy-ups acts as a NUT client, simply forwarding data. This can be
useful for supervision purposes. This can also allow some load sharing between
several UPS instances, using a point-to-point communication with the UPS.
IMPLEMENTATION¶
The port specification depends on the running mode, and allows the driver to
select the right mode.
Dummy Mode¶
Port is a definition file name for
dummy-ups. This can either be an
absolute or a relative path name. In the latter case the NUT sysconfig
directory (ie /etc/nut, /usr/local/ups/etc, ...) is prepended.
For instance:
[dummy]
driver = dummy-ups
port = evolution500.dev
desc = "dummy-ups in dummy mode"
This file is generally named "something.dev". It contains a list of
all valid data and associated values, and has the same format as an
upsc(8) dump (<varname>: <value>). So you can easily create
definition files from an existing UPS using "upsc > file.dev". It
can also be empty, in which case only a basic set of data is available:
device.
, driver., ups.mfr, ups.model, ups.status
Samples definition files are available in the "data" directory of the
nut source tree, and generally in the sysconfig directory of your system
distribution.
Since
dummy-ups will loop on reading this file, you can dynamically
modify it to interact with the driver. This will avoid message spam into your
system log files, if you are using NUT default configuration.
You can also use the "TIMER <seconds>" instruction to create
scheduled events sequences. For example, the following sequence will loop on
switching ups.status between "OL", "OB" and "OB
LB" every minute:
ups.status: OL
TIMER 60
ups.status: OB
TIMER 60
ups.status: LB
TIMER 60
It is wise to end the script with a TIMER. Otherwise dummy-ups will directly go
back to the beginning of the file.
Repeater Mode¶
Port is the name of a remote UPS, using the NUT form, ie:
<upsname>[@<hostname>[:<port>]]
For instance:
[repeater]
driver = dummy-ups
port = ups@hostname
desc = "dummy-ups in repeater mode"
INTERACTION¶
Once the driver is loaded in dummy mode, you can change any variables, except
those of the driver.* and server.* collections. You can do this by either
editing the definition file, or use the
upsrw(1) and
upscmd(1)
commands.
Note that in simulation mode, new variables can be added on the fly, by adding
these to the definition file. Conversely, if you need to remove variable (such
as transient ones, like ups.alarm), simply update these by setting an empty
value. As a result, they will get removed from the data.
In repeater mode, the driver acts according to the capabilities of the UPS, and
so support the same instant commands and settable values.
BACKGROUND¶
This driver was written in one evening to replace the previous dummycons testing
driver. It was too limited and required to work from a terminal to interact.
dummy-ups is useful for NUT client development, and other testing
purpose.
It also helps the NUT Quality Assurance effort, by automating some tests on the
NUT framework.
It now offers a repeater mode. This will help in building the Meta UPS approach,
which allows one to build a virtual device, composed of several other devices
(either UPS, PDUs).
BUGS¶
Instant commands are not yet supported in Dummy Mode, and data need name/value
checking enforcement, as well as boundaries or enumeration definition.
AUTHOR¶
Arnaud Quette
SEE ALSO¶
upscmd(1),
upsrw(1),
ups.conf(5),
nutupsdrv(8)
Internet Resources:¶
The NUT (Network UPS Tools) home page:
http://www.networkupstools.org/