[Nut-upsuser] NUT command LOGIN is not a login
Mark Hansen
mark at mehconsulting.com
Fri Jun 25 17:03:00 BST 2021
On 6/24/2021 5:48 AM, Roger Price wrote:
> During the ISE review of the proposed RFC, the IETF editor has asked for
> clarification of the LOGIN command, since he, like most people, assumes that
> "LOGIN" means something like "login to a shell".
>
> The Developer Guide Chapter 9
> https://networkupstools.org/docs/developer-guide.chunked/ar01s09.html "Network
> Protocol Information" says
>
> 9.9. LOGIN
>
> LOGIN <upsname> Response: OK (upon success) or various errors
>
> Note This requires "upsmon slave" or "upsmon master" in upsd.users
>
> Use this to log the fact that a system is drawing power from this UPS. The
> upsmon master will wait until the count of attached systems reaches 1 - itself.
> This allows the slaves to shut down first.
>
> Note You probably shouldn’t send this command unless you are upsmon, or a
> upsmon replacement.
>
> 9.4 GET NUMLOGINS <upsname>
> Response: NUMLOGINS <UPSNAME> <VALUE>
>
> where <value> is the number of clients which have done LOGIN for this UPS. This
> is used by the master upsmon to determine how many clients are still connected
> when starting the shutdown process.
>
> I propose saying:
>
> Figure 4 "The client"
> ,--------------------,---------------------,
> ,-----, | UPS <-Commands Primary |
> | |---| Attachment | Management | Primary
> | |===| Daemon Responses-> Daemon |
> | | '--------------------'---------------------'
> | UPS | ^
> | | '<-Commands---Responses->,
> | | v
> | | ,--------------,-----------------,
> | |============| | Secondary |
> /-----\ | | Management | Secondary
> | | Daemon |
> '--------------'-----------------'
>
> LOGIN is not the conventional user access to a shell. In a configuration such as
> Figure 4 in which a UPS protects more than one system, the Primary (2.8)
> Management Daemon (2.6), upsmon, needs to know how many Secondaries (2.9) are
> currently "active", i.e. powered by the UPS, either on wall or battery power.
> The Attachment Daemon (2.1), upsd, supports this by keeping a count of all the
> "active" systems powered by a UPS. The count is initialised, one secondary at a
> time by the LOGIN command, which should be understood as "count this secondary
> as active". LOGIN is one of a trio of commands for Secondary (2.9) counting:
> command LOGOUT (4.2.7) decrements the count and a Management Daemon (2.6),
> upsmon, may read the count at any time using command NUMLOGINS (4.2.2.3).
>
> The LOGIN command is also sent to the Attachment Daemon (2.1), upsd, for the
> Primary (2.8) so during normal, fully protected operation, the count is 1 (the
> Primary (2.8)) + the number of Secondaries (2.9). During a full system shutdown,
> the count drops as each Secondary (2.9) Management Daemon (2.6), upsmon,
> executes command LOGOUT (4.2.7) during its own shutdown. When the count drops to
> 1, only the Primary (2.8) is "active" and it knows that all the Secondaries
> (2.9) have shut down.
>
> Is that correct?
>
> Comment: had the command LOGIN been called SETACTIVE, with the upsmon flag
> ST_LOGIN changed to ST_ACTIVE, and NUMLOGINS changed to NUMACTIVE this mechanism
> would probably be easier to understand. LOGOUT might be NOTACTIVE.
>
> Current Proposed
> LOGIN SETACTIVE
> LOGOUT NOTACTIVE
> NUMLOGINS NUMACTIVE
> ST_LOGIN ST_ACTIVE
>
> Roger
What about:
Current Proposed
LOGIN ATTACH
LOGOUT DETACH
NUMLOGINS NUMATTACHED
ST_LOGIN ST_ATTACHED
More information about the Nut-upsuser
mailing list