/mandos/release

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/release

« back to all changes in this revision

Viewing changes to mandos-monitor

* DBUS-API: Document new "Expires" and "ExtendedTimeout" properties.
* README: Refer to the installed manual page more simply.
* mandos (Client.extended_timeout, Client.expires): New attributes.
  (Client.extended_timeout_milliseconds): New.
  (Client.__init__, Client.enable, Client.disable): Set new attributes.
  (Client.checked_ok): Take new "timeout" argument.
  (ClientDBus.expires): Transform into a property which sends a D-Bus
                        signal when changed.
  (ClientDBus._datetime_to_dbus): Return empty D-Bus string on None.
                                  All callers changed to use this.

  (ClientDBus.ApprovedByDefault_dbus_property,
  ClientDBus.ApprovalDelay_dbus_property,
  ClientDBus.ApprovalDuration_dbus_property,
  ClientDBus.Host_dbus_property, ClientDBus.Timeout_dbus_property,
  ClientDBus.Interval_dbus_property,
  ClientDBus.Checker_dbus_property): Bug fix: Only send D-Bus signal
                                     if new value is different.
  (ClientDBus.Timeout_dbus_property): Use new "expires" attribute.
  (ClientDBus.Expires_dbus_property,
  ClientDBus.ExtendedTimeout_dbus_property): New D-Bus properties.
  (ClientHandler.handle): Bump time using extended_timeout value.
  (main.client_defaults): Change default values of "timeout" and
                          "interval", added new default value for
                          "extended_timeout".
* mandos-clients.conf.xml (OPTIONS): Changed default values of
                                     "interval" and "timeout".  Add
                                     new "extended_timeout" option.
  (EXAMPLE): Updated default values.
* mandos-ctl: Show new "ExtendedTimeout" D-Bus property and change it
              using new "--extended-timeout" option.
* mandos-ctl.xml (SYNOPSIS, OPTIONS): Document new
                                      "--extended-timeout" option.
* mandos-monitor (MandosClientWidget.update): Use new "Expires" D-Bus
                                              property.
* mandos.xml (DESCRIPTION): Add reference to intro(8mandos) manual
                            page.
  (CHECKING): Refer to the new "extended_timeout" option in
  clients.conf.

Show diffs side-by-side

added added

removed removed

Lines of Context:
200
200
        else:
201
201
            self._update_timer_callback_lock -= 1
202
202
        if old == 0 and self._update_timer_callback_lock:
 
203
            # Will update the shown timer value every second
203
204
            self._update_timer_callback_tag = (gobject.timeout_add
204
205
                                               (1000,
205
206
                                                self.update_timer))
314
315
                message = "Denial in %s. (a)pprove?"
315
316
            message = message % unicode(timer).rsplit(".", 1)[0]
316
317
        elif self.last_checker_failed:
317
 
            timeout = datetime.timedelta(milliseconds
318
 
                                         = self.properties
319
 
                                         ["Timeout"])
320
 
            last_ok = isoformat_to_datetime(
321
 
                max((self.properties["LastCheckedOK"]
322
 
                     or self.properties["Created"]),
323
 
                    self.properties["LastEnabled"]))
324
 
            timer = timeout - (datetime.datetime.utcnow() - last_ok)
 
318
            # When checker has failed, print a timer until client expires
 
319
            expires = self.properties["Expires"]
 
320
            if expires == "":
 
321
                timer = datetime.timedelta(0)
 
322
            else:
 
323
                expires = datetime.datetime.strptime(expires,
 
324
                                                     '%Y-%m-%dT%H:%M:%S.%f')
 
325
                timer = expires - datetime.datetime.utcnow()
325
326
            message = ('A checker has failed! Time until client'
326
327
                       ' gets disabled: %s'
327
328
                           % unicode(timer).rsplit(".", 1)[0])
346
347
            self.update_hook()
347
348
    
348
349
    def update_timer(self):
349
 
        "called by gobject"
 
350
        """called by gobject. Will indefinitely loop until
 
351
        gobject.source_remove() on tag is called"""
350
352
        self.update()
351
353
        return True             # Keep calling this
352
354