diff --git a/Makefile.am b/Makefile.am index 9468fa85bdb6c74e59cb1cb03caa482dfcb32216..3a95192aaed3c19f8b9ae8abb678bb8e3cbe22a2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -431,6 +431,7 @@ python_tests = \ test/ganeti.errors_unittest.py \ test/ganeti.hooks_unittest.py \ test/ganeti.http_unittest.py \ + test/ganeti.hypervisor.py \ test/ganeti.hypervisor.hv_kvm_unittest.py \ test/ganeti.impexpd_unittest.py \ test/ganeti.jqueue_unittest.py \ diff --git a/lib/hypervisor/hv_xen.py b/lib/hypervisor/hv_xen.py index 5e39fce58501c3fefabb1ba66cd6977114066800..5d6de5cc8c0456e4442fc422c8c39213db0ca48b 100644 --- a/lib/hypervisor/hv_xen.py +++ b/lib/hypervisor/hv_xen.py @@ -562,6 +562,8 @@ class XenHvmHypervisor(XenHypervisor): constants.HV_MIGRATION_PORT: hv_base.NET_PORT_CHECK, constants.HV_MIGRATION_MODE: hv_base.MIGRATION_MODE_CHECK, constants.HV_USE_LOCALTIME: hv_base.NO_CHECK, + # TODO: Add a check for the blockdev prefix (matching [a-z:] or similar). + constants.HV_BLOCKDEV_PREFIX: hv_base.NO_CHECK, } @classmethod diff --git a/test/ganeti.hypervisor.unittest.py b/test/ganeti.hypervisor.unittest.py new file mode 100644 index 0000000000000000000000000000000000000000..c046f8e94001308733b2604bc83020f8b1aeddbf --- /dev/null +++ b/test/ganeti.hypervisor.unittest.py @@ -0,0 +1,52 @@ +#!/usr/bin/python +# + +# Copyright (C) 2010 Google Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + + +"""Script for testing hypervisor functionality""" + +import unittest + +from ganeti import constants +from ganeti import compat +from ganeti import objects +from ganeti import errors +from ganeti import hypervisor + +import testutils + + +class TestParameters(unittest.TestCase): + def test(self): + for hv, const_params in constants.HVC_DEFAULTS.items(): + hyp = hypervisor.GetHypervisorClass(hv) + for pname in const_params: + self.assertTrue(pname in hyp.PARAMETERS, + "Hypervisor %s: parameter %s defined in constants" + " but not in the permitted hypervisor parameters" % + (hv, pname)) + for pname in hyp.PARAMETERS: + self.assertTrue(pname in const_params, + "Hypervisor %s: parameter %s defined in the hypervisor" + " but missing a default value" % + (hv, pname)) + + +if __name__ == "__main__": + testutils.GanetiTestProgram()