]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-volume: decorators: add a check for super user privileges
authorAlfredo Deza <adeza@redhat.com>
Fri, 23 Jun 2017 18:38:14 +0000 (14:38 -0400)
committerAlfredo Deza <adeza@redhat.com>
Fri, 4 Aug 2017 14:25:57 +0000 (10:25 -0400)
Signed-off-by: Alfredo Deza <adeza@redhat.com>
src/ceph-volume/ceph_volume/decorators.py

index f41f89fb4d0f820e05a8b96585c536cc3298592c..d8bea58fe92b536d50959f697468784ba426f0ae 100644 (file)
@@ -1,9 +1,22 @@
 import os
 import sys
-from ceph_volume import terminal
+from ceph_volume import terminal, exceptions
 from functools import wraps
 
 
+def needs_root(func):
+    """
+    Check for super user privileges on functions/methods. Raise
+    ``SuperUserError`` with a nice message.
+    """
+    @wraps(func)
+    def is_root(*a, **kw):
+        if not os.getuid() == 0:
+            raise exceptions.SuperUserError()
+        return func
+    return is_root
+
+
 def catches(catch=None, handler=None, exit=True):
     """
     Very simple decorator that tries any of the exception(s) passed in as