Statistics
| Branch: | Tag: | Revision:

root / test / ganeti.cmdlib_unittest.py @ 7eac4a4d

History | View | Annotate | Download (3.6 kB)

1 6de7c41d Iustin Pop
#!/usr/bin/python
2 6de7c41d Iustin Pop
#
3 6de7c41d Iustin Pop
4 6de7c41d Iustin Pop
# Copyright (C) 2008 Google Inc.
5 6de7c41d Iustin Pop
#
6 6de7c41d Iustin Pop
# This program is free software; you can redistribute it and/or modify
7 6de7c41d Iustin Pop
# it under the terms of the GNU General Public License as published by
8 6de7c41d Iustin Pop
# the Free Software Foundation; either version 2 of the License, or
9 6de7c41d Iustin Pop
# (at your option) any later version.
10 6de7c41d Iustin Pop
#
11 6de7c41d Iustin Pop
# This program is distributed in the hope that it will be useful, but
12 6de7c41d Iustin Pop
# WITHOUT ANY WARRANTY; without even the implied warranty of
13 6de7c41d Iustin Pop
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 6de7c41d Iustin Pop
# General Public License for more details.
15 6de7c41d Iustin Pop
#
16 6de7c41d Iustin Pop
# You should have received a copy of the GNU General Public License
17 6de7c41d Iustin Pop
# along with this program; if not, write to the Free Software
18 6de7c41d Iustin Pop
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 6de7c41d Iustin Pop
# 0.0510-1301, USA.
20 6de7c41d Iustin Pop
21 6de7c41d Iustin Pop
22 6de7c41d Iustin Pop
"""Script for unittesting the cmdlib module"""
23 6de7c41d Iustin Pop
24 6de7c41d Iustin Pop
25 6de7c41d Iustin Pop
import os
26 6de7c41d Iustin Pop
import unittest
27 6de7c41d Iustin Pop
import time
28 b98bf262 Michael Hanselmann
import tempfile
29 b98bf262 Michael Hanselmann
import shutil
30 6de7c41d Iustin Pop
31 6de7c41d Iustin Pop
from ganeti import cmdlib
32 6de7c41d Iustin Pop
from ganeti import errors
33 6de7c41d Iustin Pop
34 25231ec5 Michael Hanselmann
import testutils
35 25231ec5 Michael Hanselmann
36 6de7c41d Iustin Pop
37 b98bf262 Michael Hanselmann
class TestCertVerification(testutils.GanetiTestCase):
38 b98bf262 Michael Hanselmann
  def setUp(self):
39 b98bf262 Michael Hanselmann
    testutils.GanetiTestCase.setUp(self)
40 b98bf262 Michael Hanselmann
41 b98bf262 Michael Hanselmann
    self.tmpdir = tempfile.mkdtemp()
42 b98bf262 Michael Hanselmann
43 b98bf262 Michael Hanselmann
  def tearDown(self):
44 b98bf262 Michael Hanselmann
    shutil.rmtree(self.tmpdir)
45 b98bf262 Michael Hanselmann
46 b98bf262 Michael Hanselmann
  def testVerifyCertificate(self):
47 b98bf262 Michael Hanselmann
    cmdlib._VerifyCertificate(self._TestDataFilename("cert1.pem"))
48 b98bf262 Michael Hanselmann
49 b98bf262 Michael Hanselmann
    nonexist_filename = os.path.join(self.tmpdir, "does-not-exist")
50 b98bf262 Michael Hanselmann
51 b98bf262 Michael Hanselmann
    (errcode, msg) = cmdlib._VerifyCertificate(nonexist_filename)
52 b98bf262 Michael Hanselmann
    self.assertEqual(errcode, cmdlib.LUVerifyCluster.ETYPE_ERROR)
53 b98bf262 Michael Hanselmann
54 b98bf262 Michael Hanselmann
    # Try to load non-certificate file
55 b98bf262 Michael Hanselmann
    invalid_cert = self._TestDataFilename("bdev-net1.txt")
56 b98bf262 Michael Hanselmann
    (errcode, msg) = cmdlib._VerifyCertificate(invalid_cert)
57 b98bf262 Michael Hanselmann
    self.assertEqual(errcode, cmdlib.LUVerifyCluster.ETYPE_ERROR)
58 b98bf262 Michael Hanselmann
59 b98bf262 Michael Hanselmann
60 b98bf262 Michael Hanselmann
class TestVerifyCertificateInner(unittest.TestCase):
61 b98bf262 Michael Hanselmann
  FAKEFILE = "/tmp/fake/cert/file.pem"
62 b98bf262 Michael Hanselmann
63 b98bf262 Michael Hanselmann
  def test(self):
64 b98bf262 Michael Hanselmann
    vci = cmdlib._VerifyCertificateInner
65 b98bf262 Michael Hanselmann
66 b98bf262 Michael Hanselmann
    # Valid
67 b98bf262 Michael Hanselmann
    self.assertEqual(vci(self.FAKEFILE, False, 1263916313, 1298476313,
68 b98bf262 Michael Hanselmann
                         1266940313, warn_days=30, error_days=7),
69 b98bf262 Michael Hanselmann
                     (None, None))
70 b98bf262 Michael Hanselmann
71 b98bf262 Michael Hanselmann
    # Not yet valid
72 b98bf262 Michael Hanselmann
    (errcode, msg) = vci(self.FAKEFILE, False, 1266507600, 1267544400,
73 b98bf262 Michael Hanselmann
                         1266075600, warn_days=30, error_days=7)
74 b98bf262 Michael Hanselmann
    self.assertEqual(errcode, cmdlib.LUVerifyCluster.ETYPE_WARNING)
75 b98bf262 Michael Hanselmann
76 b98bf262 Michael Hanselmann
    # Expiring soon
77 b98bf262 Michael Hanselmann
    (errcode, msg) = vci(self.FAKEFILE, False, 1266507600, 1267544400,
78 b98bf262 Michael Hanselmann
                         1266939600, warn_days=30, error_days=7)
79 b98bf262 Michael Hanselmann
    self.assertEqual(errcode, cmdlib.LUVerifyCluster.ETYPE_ERROR)
80 b98bf262 Michael Hanselmann
81 b98bf262 Michael Hanselmann
    (errcode, msg) = vci(self.FAKEFILE, False, 1266507600, 1267544400,
82 b98bf262 Michael Hanselmann
                         1266939600, warn_days=30, error_days=1)
83 b98bf262 Michael Hanselmann
    self.assertEqual(errcode, cmdlib.LUVerifyCluster.ETYPE_WARNING)
84 b98bf262 Michael Hanselmann
85 b98bf262 Michael Hanselmann
    (errcode, msg) = vci(self.FAKEFILE, False, 1266507600, None,
86 b98bf262 Michael Hanselmann
                         1266939600, warn_days=30, error_days=7)
87 b98bf262 Michael Hanselmann
    self.assertEqual(errcode, None)
88 b98bf262 Michael Hanselmann
89 b98bf262 Michael Hanselmann
    # Expired
90 b98bf262 Michael Hanselmann
    (errcode, msg) = vci(self.FAKEFILE, True, 1266507600, 1267544400,
91 b98bf262 Michael Hanselmann
                         1266939600, warn_days=30, error_days=7)
92 b98bf262 Michael Hanselmann
    self.assertEqual(errcode, cmdlib.LUVerifyCluster.ETYPE_ERROR)
93 b98bf262 Michael Hanselmann
94 b98bf262 Michael Hanselmann
    (errcode, msg) = vci(self.FAKEFILE, True, None, 1267544400,
95 b98bf262 Michael Hanselmann
                         1266939600, warn_days=30, error_days=7)
96 b98bf262 Michael Hanselmann
    self.assertEqual(errcode, cmdlib.LUVerifyCluster.ETYPE_ERROR)
97 b98bf262 Michael Hanselmann
98 b98bf262 Michael Hanselmann
    (errcode, msg) = vci(self.FAKEFILE, True, 1266507600, None,
99 b98bf262 Michael Hanselmann
                         1266939600, warn_days=30, error_days=7)
100 b98bf262 Michael Hanselmann
    self.assertEqual(errcode, cmdlib.LUVerifyCluster.ETYPE_ERROR)
101 b98bf262 Michael Hanselmann
102 b98bf262 Michael Hanselmann
    (errcode, msg) = vci(self.FAKEFILE, True, None, None,
103 b98bf262 Michael Hanselmann
                         1266939600, warn_days=30, error_days=7)
104 b98bf262 Michael Hanselmann
    self.assertEqual(errcode, cmdlib.LUVerifyCluster.ETYPE_ERROR)
105 b98bf262 Michael Hanselmann
106 b98bf262 Michael Hanselmann
107 b98bf262 Michael Hanselmann
if __name__ == "__main__":
108 25231ec5 Michael Hanselmann
  testutils.GanetiTestProgram()