4 from sfa.iotlab.LDAPapi import LDAPapi
5 from difflib import SequenceMatcher
10 if len(sys.argv) > 1 :
11 options_list = sys.argv[1:]
13 rspec_rep = options_list[0]
16 print "Must supply Rspecs directory ", sys.argv[1:]
20 rspec_dir = parse_options()
21 print "DIRECTORY SUPPLIED" , rspec_dir
22 rspec_filename_list = ['firexp_avakian_slice_iotlab.rspec',
23 'firexp_iotlab_slice_iotlab.rspec',
24 'iotlab_avakian_slice_iotlab2.rspec',
25 'iotlab_avakian_slice_plab.rspec',
26 'firexp_iotlab_slice_all.rspec',
27 'iotlab_avakian_slice_all.rspec',
28 'iotlab_avakian_slice_iotlab.rspec',
29 'iotlab_user_slice_iotlab.rspec',
30 'test_delete_all_leases.rspec']
32 rspec_filename_dict = {
33 ('iotlab_avakian', 'iotlab', 'allocate' ):
34 "sfi.py allocate iotlab.avakian_slice " + rspec_dir + \
35 'iotlab_avakian_slice_iotlab.rspec',
37 ('iotlab_avakian', 'iotlab2', 'allocate'):
38 "sfi.py allocate iotlab.avakian_slice " + rspec_dir + \
39 'iotlab_avakian_slice_iotlab2.rspec',
41 ('firexp_user','iotlab', 'allocate'):
42 "sfi.py allocate firexp.flab.iotlab_slice " + rspec_dir + \
43 'firexp_iotlab_slice_iotlab.rspec',
45 ('firexp_user', 'all', 'allocate'):
46 "sfi.py allocate firexp.flab.iotlab_slice "+ rspec_dir + \
47 'firexp_iotlab_slice_all.rspec',
49 ('iotlab_user', 'iotlab', 'allocate'):
50 "sfi.py allocate iotlab.user_slice "+ rspec_dir + \
51 'iotlab_user_slice_iotlab.rspec',
53 ('firexp_avakian','iotlab', 'allocate'):
54 "sfi.py allocate firexp.flab.avakian_slice " + rspec_dir + \
55 'firexp_avakian_slice_iotlab.rspec',
57 ('iotlab_avakian', 'plab', 'allocate') :
58 "sfi.py allocate iotlab.avakian_slice " + rspec_dir + \
59 'iotlab_avakian_slice_plab.rspec',
61 ('iotlab_avakian', 'all', 'allocate') :
62 "sfi.py allocate iotlab.avakian_slice " + rspec_dir + \
63 'iotlab_avakian_slice_all.rspec',
65 ('iotlab_avakian', 'iotlab', 'provision' ):
66 "sfi.py provision iotlab.avakian_slice \
67 iotlab_avakian_slice_iotlab.rspec",
69 ('iotlab_avakian', 'iotlab2', 'provision'):
70 "sfi.py provision iotlab.avakian_slice \
71 iotlab_avakian_slice_iotlab2.rspec",
73 ('firexp_user','iotlab', 'provision'):
74 "sfi.py provision firexp.flab.iotlab_slice firexp_iotlab_slice_iotlab.rspec",
76 ('firexp_user', 'all', 'provision'):
77 "sfi.py provision firexp.flab.iotlab_slice firexp_iotlab_slice_all.rspec",
79 ('iotlab_user', 'iotlab', 'provision'):
80 "sfi.py provision iotlab.user_slice iotlab_user_slice_iotlab.rspec",
82 ('firexp_avakian','iotlab', 'provision'):
83 "sfi.py provision firexp.flab.avakian_slice firexp_avakian_slice_iotlab.rspec",
85 ('iotlab_avakian', 'plab', 'provision') :
86 "sfi.py provision iotlab.avakian_slice iotlab_avakian_slice_plab.rspec",
88 ('iotlab_avakian', 'all', 'provision') :
89 "sfi.py provision iotlab.avakian_slice iotlab_avakian_slice_all.rspec",
91 ('iotlab_avakian', 'iotlab', 'describe' ):
92 "sfi.py describe iotlab.avakian_slice iotlab_avakian_slice_iotlab.rspec",
94 ('iotlab_avakian', 'iotlab2', 'describe'):
95 "sfi.py describe iotlab.avakian_slice iotlab_avakian_slice_iotlab2.rspec",
97 ('firexp_user','iotlab', 'describe'):
98 "sfi.py describe firexp.flab.iotlab_slice firexp_iotlab_slice_iotlab.rspec",
100 ('firexp_user', 'all', 'describe'):
101 "sfi.py describe firexp.flab.iotlab_slice firexp_iotlab_slice_all.rspec",
103 ('iotlab_user', 'iotlab', 'describe'):
104 "sfi.py describe iotlab.user_slice iotlab_user_slice_iotlab.rspec",
106 ('firexp_avakian','iotlab', 'describe'):
107 "sfi.py describe firexp.flab.avakian_slice firexp_avakian_slice_iotlab.rspec",
109 ('iotlab_avakian', 'plab', 'describe') :
110 "sfi.py describe iotlab.avakian_slice iotlab_avakian_slice_plab.rspec",
112 ('iotlab_avakian', 'all', 'describe') :
113 "sfi.py describe iotlab.avakian_slice iotlab_avakian_slice_all.rspec"
116 print rspec_filename_dict
117 # check if the firexp user (uid user) is already in LDAP
118 # in this is the case, delete it :
119 ldap_server = LDAPapi()
120 dn = 'uid=' + 'user' + ',' + ldap_server.baseDN
121 result = ldap_server.LdapSearch('(uid=user)', [])
124 retval = ldap_server.LdapDelete(dn)
125 print "deleting firexp user : ", retval
129 with open ("/root/.sfi/sfi_config", "r") as sfi_config:
130 sfi_config_txt = [line for line in sfi_config]
132 with open("/root/.sfi/sfi_config_iotlab", "r") as sfi_config_iotlab:
133 sfi_config_iotlab_txt = [line for line in sfi_config_iotlab]
135 with open("/root/.sfi/sfi_config_firexp", "r") as sfi_config_firexp:
136 sfi_config_firexp_txt = [line for line in sfi_config_firexp]
137 # check that we are using the iotlab sfi configuration
138 result1 = SequenceMatcher(None, sfi_config_txt, sfi_config_iotlab_txt)
140 result2 = SequenceMatcher(None, sfi_config_txt, sfi_config_firexp_txt)
142 if result1.ratio() != 1.0:
143 os.system('cp /root/.sfi/sfi_config_iotlab /root/.sfi/sfi_config')
145 os.system('cat /root/.sfi/sfi_config')
146 os.system('rm /root/tests_rspecs/iotlab_devlille_OUTPUT.rspec')
148 print " ================= SFI.PY LIST IOTLAB ============="
149 os.system('sfi.py list iotlab')
152 print " ================= SFI.PY RESOURCES ============="
153 raw_input("Press Enter to continue...")
154 os.system('sfi.py resources')
157 print " ================= SFI.PY RESOURCES -R IOTLAB ============="
158 raw_input("Press Enter to continue...")
159 os.system('sfi.py resources -r iotlab')
162 print " ================= SFI.PY RESOURCES -L ALL ============="
163 raw_input("Press Enter to continue...")
164 os.system('sfi.py resources -l all')
166 print " ================= SFI.PY RESOURCES -R IOTLAB -L ALL ============="
167 raw_input("Press Enter to continue...")
168 os.system('sfi.py resources -r iotlab -l all')
170 # print " ================= SFI.PY RESOURCES -O output rspec ==========="
171 # os.system('sfi.py resources -o /root/tests_rspecs/iotlab_devlille_OUTPUT.rspec')
173 print " ================= SFI.PY RESOURCES -L LEASES ============="
174 raw_input("Press Enter to continue...")
175 os.system('sfi.py resources -l leases')
178 print " ================= SFI.PY SHOW USER ============="
179 raw_input("Press Enter to continue...")
180 os.system('sfi.py show iotlab.avakian')
182 print " ================= SFI.PY SHOW NODE ============="
183 os.system('sfi.py show iotlab.m3-3.devgrenoble.iot-lab.info')
187 print " ================= SFI.PY STATUS SLICE ============="
188 os.system('sfi.py status iotlab.avakian_slice')
190 print " ================= SFI.PY ALLOCATE SLICE on iotlab only ============="
191 raw_input("Press Enter to continue...")
192 os.system( rspec_filename_dict[('iotlab_avakian','iotlab' , 'allocate')])
195 print " ================= SFI.PY PROVISION SLICE on iotlab only ============="
196 raw_input("Press Enter to continue...")
197 os.system( rspec_filename_dict[('iotlab_avakian','iotlab' , 'provision')])
200 print " ================= SFI.PY DESCRIBE SLICE on iotlab only ============="
201 raw_input("Press Enter to continue...")
202 os.system( rspec_filename_dict[('iotlab_avakian','iotlab' , 'describe')])
205 print " ================= SFI.PY RESOURCES -l all iotlab.avakian_slice ============="
206 raw_input("Press Enter to continue...")
207 os.system('sfi.py resources -l all iotlab.avakian_slice')
210 print " ================= SFI.PY DELETE SLICE ============="
211 raw_input("Press Enter to continue...")
212 os.system('sfi.py delete iotlab.avakian_slice')
215 print " ================= SFI.PY ALLOCATE SLICE on iotlab and firexp ============="
216 raw_input("Press Enter to continue...")
217 os.system(rspec_filename_dict[('iotlab_avakian','all', 'allocate')])
220 print " ================= SFI.PY RESOURCES -l all -r iotlab iotlab.avakian_slice ============="
221 raw_input("Press Enter to continue...")
222 os.system('sfi.py resources -l all -r iotlab iotlab.avakian_slice')
225 print " =================SFI.PY RESOURCES -L LEASES -R IOTLAB ============== "
226 os.system('sfi.py resources -r iotlab -l leases')
229 print " ================= SFI.PY DELETE SLICE ============="
230 raw_input("Press Enter to continue...")
231 os.system('sfi.py delete iotlab.avakian_slice')
235 print " *********changing to firexp sfi config ***************"
236 os.system('cp /root/.sfi/sfi_config_firexp /root/.sfi/sfi_config')
240 print " ================= SFI.PY ALLOCATE SLICE on iotlab and firexp ============="
241 raw_input("Press Enter to continue...")
242 os.system(rspec_filename_dict[('firexp_user','all', 'allocate')])
244 print " ================= SFI.PY DESCRIBE SLICE on iotlab and firexp ============="
245 raw_input("Press Enter to continue...")
246 os.system(rspec_filename_dict[('firexp_user','all', 'describe')])
248 print " ================= SFI.PY PROVISION SLICE on iotlab and firexp ============="
249 raw_input("Press Enter to continue...")
250 os.system(rspec_filename_dict[('firexp_user','all', 'provision')])
253 print " ================= SFI.PY SHOW SLICE ============="
254 raw_input("Press Enter to continue...")
255 os.system('sfi.py show firexp.flab.iotlab_slice')
258 print " ================= SFI.PY RESOURCES -l leases firexp.flab.iotlab_slice ============="
259 raw_input("Press Enter to continue...")
260 os.system('sfi.py resources -l leases firexp.flab.iotlab_slice')
263 print " ================= SFI.PY RESOURCES firexp.flab.iotlab_slice ============="
264 raw_input("Press Enter to continue...")
265 os.system('sfi.py resources firexp.flab.iotlab_slice')