149 lines
4.4 KiB
Text
149 lines
4.4 KiB
Text
DUMMY-UPS(8)
|
|
============
|
|
|
|
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
|
|
linkman: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 linkman:upsd[8] and
|
|
allows to change any value for testing purposes. It is both interactive,
|
|
controllable through the linkman:upsrw[1] and linkman: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 linkman: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
|
|
linkman:upsrw[1] and linkman: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 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
|
|
--------
|
|
|
|
linkman:upscmd[1],
|
|
linkman:upsrw[1],
|
|
linkman:ups.conf[5],
|
|
linkman:nutupsdrv[8]
|
|
|
|
Internet Resources:
|
|
~~~~~~~~~~~~~~~~~~~
|
|
The NUT (Network UPS Tools) home page: http://www.networkupstools.org/
|