• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'''
2	Access Control Lists testing based on newpynfs framework
3	Aurelien Charbon - Bull SA
4'''
5from random_gen import *
6import commands
7import os
8import threading
9import time
10import random
11
12alphabet='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789_-() ~'
13t_alphabet=len(alphabet)
14
15def test_acl_default(path):
16
17# set default acl on the test directory
18	u = commands.getoutput('mkdir ' + path + "/" + testdir)
19	u = commands.getoutput('getfacl ' + path + "/" + testdir)
20	acl=[]
21	for i in range (len(splitedresult)-1)
22		splitedline = splitedresult[i].split('::')
23		name = splitedline[0]
24		entry = splitedline[1]
25		acl.append(name,entry)
26# create a file in this directory
27	u = commands.getoutput('touch ' + path + "/" + testdir + testfile)
28# get the file's ACL and verify
29	u = commands.getoutput('getfacl ' + path + "/" + testdir + testfile)
30	splitedresult = u.split('\n')
31	acl2=[]
32	for i in range (len(splitedresult)-1):
33		splitedline = splitedresult[i].split('::')
34		name = splitedline[0]
35		entry = splitedline[1]
36		acl2.append(name,entry)
37
38	result_final = True
39	while i < len(acl2):
40		result = False:
41		while j < len(acl2) and result = False:
42			if acl2[i] == acl[j]:
43			result = True
44		if result == False:
45			result_final = False
46
47''' Measuring time to add an ACE to a list regarding the number of ACE already in the list'''
48''' Doing the measurement on 100 files '''
49def test_acl_long():
50	path = '/mnt/nfs/test-acl'
51	test = RandomGen()
52	test.createFile(path,100)
53	test.getUserList()
54	t0=time.time()
55	for test_file in test.fList:
56		for user in test.uList:
57			mode = test.createRandomMode()
58			u = commands.getoutput('setfacl -m u:' + user + ':' + mode + " " + path + "/" + test_file)
59	t1=time.time()
60	print t1-t0
61
62def test_nfs_acl():
63	print "test acl 10000\n"
64	test = RandomGen()
65	f = open('/tmp/acl-result-10000','w')
66
67        path = '/mnt/nfs/test-acl'
68	for i in range(10000):
69		print "test avec " + str(i) + " ACE"
70		test.getUserList()
71		testfile = 'testfile' + str(i)
72		u = commands.getoutput('touch ' + path + "/" + testfile)
73		t0=time.time()
74                for j in range(i):
75			user = test.uList.pop()
76			mode = test.createRandomMode()
77                        u = commands.getoutput('setfacl -m u:' + user + ':' + mode + " " + path + "/" + testfile)
78		t1=time.time()
79                f.write(str(i) + "\t" + str(t1-t0)+"\n")
80        f.close()
81
82
83def test_nfs_getfacl():
84	# mesures sur le getfacl
85	test = RandomGen()
86
87	path = '/mnt/nfs/test-acl' # NFS mounted directory
88	u = commands.getoutput('rm ' + path + "/*")	# clean directory
89	print "test acl getfacl\n"
90	f = open('/tmp/acl-result-getfacl','w')
91	for i in range(37):
92
93		test.getUserList()
94		testfile = 'testfile' + str(i)
95
96		u = commands.getoutput('touch ' + path + "/" + testfile)
97		print "setfacl " + str(i) + " " + u
98		for j in range(i):
99			user = test.uList.pop()
100			mode = test.createRandomMode()
101                        u = commands.getoutput('setfacl -m u:' + user + ':' + mode + " " + path + "/" + testfile)
102
103		t1=time.time()
104		u = commands.getoutput('getfacl ' + path + "/" + testfile)
105		print "getfacl - " + str(i) + u + "\n"
106		t2=time.time()
107		f.write(str(i) + "\t" + str(t2-t1)+"\n")
108	f.close()
109
110
111def main():
112	# test getFileList
113	path = '/mnt/nfs/test-acl'
114	test = RandomGen()
115	test.getFileList(path)
116	print test.fList
117main()
118
119
120
121
122
123