/mandos/trunk

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

« back to all changes in this revision

Viewing changes to mandos-ctl

  • Committer: Teddy Hogeborn
  • Date: 2018-02-08 12:10:21 UTC
  • Revision ID: teddy@recompile.se-20180208121021-n0lfuzp9a88ergeh
Support some Debian package build options

* debian/rules: Support the "noopt" and "parallel" DEB_BUILD_OPTIONS.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#!/usr/bin/python
2
 
# -*- mode: python; coding: utf-8; after-save-hook: (lambda () (let ((command (if (and (boundp 'tramp-file-name-structure) (string-match (car tramp-file-name-structure) (buffer-file-name))) (tramp-file-name-localname (tramp-dissect-file-name (buffer-file-name))) (buffer-file-name)))) (if (= (shell-command (format "%s --check" (shell-quote-argument command)) "*Test*") 0) (let ((w (get-buffer-window "*Test*"))) (if w (delete-window w)) (kill-buffer "*Test*")) (display-buffer "*Test*")))); -*-
 
2
# -*- mode: python; coding: utf-8 -*-
3
3
#
4
4
# Mandos Monitor - Control and monitor the Mandos server
5
5
#
6
 
# Copyright © 2008-2019 Teddy Hogeborn
7
 
# Copyright © 2008-2019 Björn Påhlsson
 
6
# Copyright © 2008-2018 Teddy Hogeborn
 
7
# Copyright © 2008-2018 Björn Påhlsson
8
8
#
9
9
# This file is part of Mandos.
10
10
#
40
40
import os
41
41
import collections
42
42
import json
43
 
import unittest
44
43
 
45
44
import dbus
46
45
 
59
58
    "Interval": "Interval",
60
59
    "Host": "Host",
61
60
    "Fingerprint": "Fingerprint",
62
 
    "KeyID": "Key ID",
63
61
    "CheckerRunning": "Check Is Running",
64
62
    "LastEnabled": "Last Enabled",
65
63
    "ApprovalPending": "Approval Is Pending",
77
75
server_path = "/"
78
76
server_interface = domain + ".Mandos"
79
77
client_interface = domain + ".Mandos.Client"
80
 
version = "1.8.3"
 
78
version = "1.7.16"
81
79
 
82
80
 
83
81
try:
346
344
    if options.all and not has_actions(options):
347
345
        parser.error("--all requires an action.")
348
346
 
 
347
    if options.check:
 
348
        import doctest
 
349
        fail_count, test_count = doctest.testmod()
 
350
        sys.exit(os.EX_OK if fail_count == 0 else 1)
 
351
 
349
352
    try:
350
353
        bus = dbus.SystemBus()
351
354
        mandos_dbus_objc = bus.get_object(busname, server_path)
401
404
    if not has_actions(options) and clients:
402
405
        if options.verbose or options.dump_json:
403
406
            keywords = ("Name", "Enabled", "Timeout", "LastCheckedOK",
404
 
                        "Created", "Interval", "Host", "KeyID",
405
 
                        "Fingerprint", "CheckerRunning",
406
 
                        "LastEnabled", "ApprovalPending",
407
 
                        "ApprovedByDefault", "LastApprovalRequest",
408
 
                        "ApprovalDelay", "ApprovalDuration",
409
 
                        "Checker", "ExtendedTimeout", "Expires",
 
407
                        "Created", "Interval", "Host", "Fingerprint",
 
408
                        "CheckerRunning", "LastEnabled",
 
409
                        "ApprovalPending", "ApprovedByDefault",
 
410
                        "LastApprovalRequest", "ApprovalDelay",
 
411
                        "ApprovalDuration", "Checker",
 
412
                        "ExtendedTimeout", "Expires",
410
413
                        "LastCheckerStatus")
411
414
        else:
412
415
            keywords = defaultkeywords
489
492
                client.Approve(dbus.Boolean(False),
490
493
                               dbus_interface=client_interface)
491
494
 
492
 
 
493
 
class Test_milliseconds_to_string(unittest.TestCase):
494
 
    def test_all(self):
495
 
        self.assertEqual(milliseconds_to_string(93785000),
496
 
                         "1T02:03:05")
497
 
    def test_no_days(self):
498
 
        self.assertEqual(milliseconds_to_string(7385000), "02:03:05")
499
 
    def test_all_zero(self):
500
 
        self.assertEqual(milliseconds_to_string(0), "00:00:00")
501
 
    def test_no_fractional_seconds(self):
502
 
        self.assertEqual(milliseconds_to_string(400), "00:00:00")
503
 
        self.assertEqual(milliseconds_to_string(900), "00:00:00")
504
 
        self.assertEqual(milliseconds_to_string(1900), "00:00:01")
505
 
 
506
 
 
507
 
def should_only_run_tests():
508
 
    parser = argparse.ArgumentParser(add_help=False)
509
 
    parser.add_argument("--check", action='store_true')
510
 
    args, unknown_args = parser.parse_known_args()
511
 
    run_tests = args.check
512
 
    if run_tests:
513
 
        # Remove --check argument from sys.argv
514
 
        sys.argv[1:] = unknown_args
515
 
    return run_tests
516
 
 
517
 
# Add all tests from doctest strings
518
 
def load_tests(loader, tests, none):
519
 
    import doctest
520
 
    tests.addTests(doctest.DocTestSuite())
521
 
    return tests
522
495
 
523
496
if __name__ == "__main__":
524
 
    if should_only_run_tests():
525
 
        # Call using ./tdd-python-script --check [--verbose]
526
 
        unittest.main()
527
 
    else:
528
 
        main()
 
497
    main()