Revision 335c14dc
b/test/py/ganeti.utils.io_unittest-runasroot.py | ||
---|---|---|
25 | 25 |
import tempfile |
26 | 26 |
import shutil |
27 | 27 |
import errno |
28 |
import grp |
|
29 |
import pwd |
|
30 |
import stat |
|
28 | 31 |
|
29 | 32 |
from ganeti import constants |
30 | 33 |
from ganeti import utils |
... | ... | |
92 | 95 |
keep_perms=utils.KP_IF_EXISTS) |
93 | 96 |
self.assertFileGid(target, tgid) |
94 | 97 |
|
98 |
class TestCanRead(testutils.GanetiTestCase): |
|
99 |
def setUp(self): |
|
100 |
testutils.GanetiTestCase.setUp(self) |
|
101 |
self.tmpdir = tempfile.mkdtemp() |
|
102 |
self.confdUid = pwd.getpwnam(constants.CONFD_USER).pw_uid |
|
103 |
self.masterdUid = pwd.getpwnam(constants.MASTERD_USER).pw_uid |
|
104 |
self.masterdGid = grp.getgrnam(constants.MASTERD_GROUP).gr_gid |
|
105 |
|
|
106 |
def tearDown(self): |
|
107 |
testutils.GanetiTestCase.tearDown(self) |
|
108 |
if self.tmpdir: |
|
109 |
shutil.rmtree(self.tmpdir) |
|
110 |
|
|
111 |
def testUserCanRead(self): |
|
112 |
target = utils.PathJoin(self.tmpdir, "target1") |
|
113 |
f=open(target, "w") |
|
114 |
f.close() |
|
115 |
utils.EnforcePermission(target, 0400, uid=self.confdUid, |
|
116 |
gid=self.masterdGid) |
|
117 |
self.assertTrue(utils.CanRead(constants.CONFD_USER, target)) |
|
118 |
if constants.CONFD_USER != constants.MASTERD_USER: |
|
119 |
self.assertFalse(utils.CanRead(constants.MASTERD_USER, target)) |
|
120 |
|
|
121 |
def testGroupCanRead(self): |
|
122 |
target = utils.PathJoin(self.tmpdir, "target2") |
|
123 |
f=open(target, "w") |
|
124 |
f.close() |
|
125 |
utils.EnforcePermission(target, 0040, uid=self.confdUid, |
|
126 |
gid=self.masterdGid) |
|
127 |
self.assertFalse(utils.CanRead(constants.CONFD_USER, target)) |
|
128 |
if constants.CONFD_USER != constants.MASTERD_USER: |
|
129 |
self.assertTrue(utils.CanRead(constants.MASTERD_USER, target)) |
|
130 |
|
|
131 |
utils.EnforcePermission(target, 0040, uid=self.masterdUid+1, |
|
132 |
gid=self.masterdGid) |
|
133 |
self.assertTrue(utils.CanRead(constants.MASTERD_USER, target)) |
|
134 |
|
|
95 | 135 |
|
96 | 136 |
if __name__ == "__main__": |
97 | 137 |
testutils.GanetiTestProgram() |
Also available in: Unified diff