diff --git a/lib/utils/__init__.py b/lib/utils/__init__.py index d808ce44dabc1404bc7fdd6ea64ad0d47ab3a043..41360be3d3f0265434ae55cf13e7f31a872dd065 100644 --- a/lib/utils/__init__.py +++ b/lib/utils/__init__.py @@ -66,8 +66,6 @@ from ganeti.utils.nodesetup import * # pylint: disable-msg=W0401 from ganeti.utils.process import * # pylint: disable-msg=W0401 -_RANDOM_UUID_FILE = "/proc/sys/kernel/random/uuid" - _VALID_SERVICE_NAME_RE = re.compile("^[-_.a-zA-Z0-9]{1,128}$") UUID_RE = re.compile('^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-' @@ -289,17 +287,6 @@ def GetHomeDir(user, default=None): return result.pw_dir -def NewUUID(): - """Returns a random UUID. - - @note: This is a Linux-specific method as it uses the /proc - filesystem. - @rtype: str - - """ - return ReadFile(_RANDOM_UUID_FILE, size=128).rstrip("\n") - - def FirstFree(seq, base=0): """Returns the first non-existing integer from seq. diff --git a/lib/utils/io.py b/lib/utils/io.py index 1e99d8ab65cb62046d95e67905ca7ca81fa600c8..e6f98735e2a8bc2b63845b2b01bf80cc02aa242d 100644 --- a/lib/utils/io.py +++ b/lib/utils/io.py @@ -34,6 +34,10 @@ from ganeti import constants from ganeti.utils import filelock +#: Path generating random UUID +_RANDOM_UUID_FILE = "/proc/sys/kernel/random/uuid" + + def ReadFile(file_name, size=-1): """Reads a file. @@ -760,3 +764,14 @@ def ReadWatcherPauseFile(filename, now=None, remove_after=3600): value = None return value + + +def NewUUID(): + """Returns a random UUID. + + @note: This is a Linux-specific method as it uses the /proc + filesystem. + @rtype: str + + """ + return ReadFile(_RANDOM_UUID_FILE, size=128).rstrip("\n") diff --git a/test/ganeti.utils.io_unittest.py b/test/ganeti.utils.io_unittest.py index 41abdd6576f242aa548e4f62a961ddc01546a6c9..43b4634b4dee3a67ef05047069b42fc26d525f69 100755 --- a/test/ganeti.utils.io_unittest.py +++ b/test/ganeti.utils.io_unittest.py @@ -691,5 +691,12 @@ class TestSshKeys(testutils.GanetiTestCase): " ssh-dss AAAAB3NzaC1w520smc01ms0jfJs22 root@key-b\n") +class TestNewUUID(unittest.TestCase): + """Test case for NewUUID""" + + def runTest(self): + self.failUnless(utils.UUID_RE.match(utils.NewUUID())) + + if __name__ == "__main__": testutils.GanetiTestProgram() diff --git a/test/ganeti.utils_unittest.py b/test/ganeti.utils_unittest.py index 84c96c764d0abc5aa3fc0e4d73a87ec8c3eca720..e557b2be1eb069f6d6caf0ff0f3a9bf0ace03b3e 100755 --- a/test/ganeti.utils_unittest.py +++ b/test/ganeti.utils_unittest.py @@ -81,12 +81,6 @@ class TestGetMounts(unittest.TestCase): ("none", "/proc", "proc", "rw,nosuid,nodev,noexec,relatime"), ]) -class TestNewUUID(unittest.TestCase): - """Test case for NewUUID""" - - def runTest(self): - self.failUnless(utils.UUID_RE.match(utils.NewUUID())) - class TestFirstFree(unittest.TestCase): """Test case for the FirstFree function"""