blob: d8075df442b4f8b586400ce59bfc594d7de1d23f [file] [log] [blame]
Sean Daguebb357152016-06-07 11:20:55 -04001#!/usr/bin/env bash
2#
3# Licensed under the Apache License, Version 2.0 (the "License"); you may
4# not use this file except in compliance with the License. You may obtain
5# a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
12# implied. See the License for the specific language governing
13# permissions and limitations under the License.
14
15# Tests for DevStack INI functions
16
17TOP=$(cd $(dirname "$0")/.. && pwd)
18
19# Import config functions
20source $TOP/inc/ini-config
21
22source $TOP/tests/unittest.sh
23
24echo "Testing INI local.conf functions"
25
26# test that can determine if file has section in specified meta-section
27
28function test_localconf_has_section {
29 local file_localconf
30 local file_conf1
31 local file_conf2
32 file_localconf=`mktemp`
33 file_conf1=`mktemp`
34 file_conf2=`mktemp`
35
36 cat <<- EOF > $file_localconf
37[[local|localrc]]
38LOCALRC_VAR1=localrc_val1
39LOCALRC_VAR2=localrc_val2
40LOCALRC_VAR3=localrc_val3
41
42[[post-config|$file_conf1]]
43[conf1_t1]
44conf1_t1_opt1=conf1_t1_val1
45conf1_t1_opt2=conf1_t1_val2
46conf1_t1_opt3=conf1_t1_val3
47[conf1_t2]
48conf1_t2_opt1=conf1_t2_val1
49conf1_t2_opt2=conf1_t2_val2
50conf1_t2_opt3=conf1_t2_val3
51[conf1_t3]
52conf1_t3_opt1=conf1_t3_val1
53conf1_t3_opt2=conf1_t3_val2
54conf1_t3_opt3=conf1_t3_val3
55
56[[post-extra|$file_conf2]]
57[conf2_t1]
58conf2_t1_opt1=conf2_t1_val1
59conf2_t1_opt2=conf2_t1_val2
60conf2_t1_opt3=conf2_t1_val3
61EOF
62
63 localconf_has_section $file_localconf post-config $file_conf1 conf1_t1
64 assert_equal $? 0
65 localconf_has_section $file_localconf post-config $file_conf1 conf1_t2
66 assert_equal $? 0
67 localconf_has_section $file_localconf post-config $file_conf1 conf1_t3
68 assert_equal $? 0
69 localconf_has_section $file_localconf post-extra $file_conf2 conf2_t1
70 assert_equal $? 0
71 localconf_has_section $file_localconf post-config $file_conf1 conf1_t4
72 assert_equal $? 1
73 localconf_has_section $file_localconf post-install $file_conf1 conf1_t1
74 assert_equal $? 1
75 localconf_has_section $file_localconf local localrc conf1_t2
76 assert_equal $? 1
77 rm -f $file_localconf $file_conf1 $file_conf2
78}
79
80# test that can determine if file has option in specified meta-section and section
81function test_localconf_has_option {
82 local file_localconf
83 local file_conf1
84 local file_conf2
85 file_localconf=`mktemp`
86 file_conf1=`mktemp`
87 file_conf2=`mktemp`
88 cat <<- EOF > $file_localconf
89[[post-config|$file_conf1]]
90[conf1_t1]
91conf1_t1_opt1 = conf1_t1_val1
92conf1_t1_opt2 = conf1_t1_val2
93conf1_t1_opt3 = conf1_t1_val3
94[conf1_t2]
95conf1_t2_opt1=conf1_t2_val1
96conf1_t2_opt2=conf1_t2_val2
97conf1_t2_opt3=conf1_t2_val3
98[conf1_t3]
99conf1_t3_opt1=conf1_t3_val1
100conf1_t3_opt2=conf1_t3_val2
101conf1_t3_opt3=conf1_t3_val3
102
103[[local|localrc]]
104LOCALRC_VAR1=localrc_val1
105LOCALRC_VAR2=localrc_val2
106LOCALRC_VAR3=localrc_val3
107
108[[post-extra|$file_conf2]]
109[conf2_t1]
110conf2_t1_opt1=conf2_t1_val1
111conf2_t1_opt2=conf2_t1_val2
112conf2_t1_opt3=conf2_t1_val3
113EOF
114
115 localconf_has_option $file_localconf local localrc "" LOCALRC_VAR1
116 assert_equal $? 0
117 localconf_has_option $file_localconf local localrc "" LOCALRC_VAR2
118 assert_equal $? 0
119 localconf_has_option $file_localconf local localrc "" LOCALRC_VAR3
120 assert_equal $? 0
121 localconf_has_option $file_localconf post-config $file_conf1 conf1_t1 conf1_t1_opt1
122 assert_equal $? 0
123 localconf_has_option $file_localconf post-config $file_conf1 conf1_t2 conf1_t2_opt2
124 assert_equal $? 0
125 localconf_has_option $file_localconf post-config $file_conf1 conf1_t3 conf1_t3_opt3
126 assert_equal $? 0
127 localconf_has_option $file_localconf post-extra $file_conf2 conf2_t1 conf2_t1_opt2
128 assert_equal $? 0
129 localconf_has_option $file_localconf post-config $file_conf1 conf1_t1_opt4
130 assert_equal $? 1
131 localconf_has_option $file_localconf post-install $file_conf1 conf1_t1_opt1
132 assert_equal $? 1
133 localconf_has_option $file_localconf local localrc conf1_t2 conf1_t2_opt1
134 assert_equal $? 1
135 rm -f $file_localconf $file_conf1 $file_conf2
136}
137
138# test that update option in specified meta-section and section
139function test_localconf_update_option {
140 local file_localconf
141 local file_localconf_expected
142 local file_conf1
143 local file_conf2
144 file_localconf=`mktemp`
145 file_localconf_expected=`mktemp`
146 file_conf1=`mktemp`
147 file_conf2=`mktemp`
148 cat <<- EOF > $file_localconf
149[[local|localrc]]
150LOCALRC_VAR1 = localrc_val1
151LOCALRC_VAR2 = localrc_val2
152LOCALRC_VAR3 = localrc_val3
153
154[[post-config|$file_conf1]]
155[conf1_t1]
156conf1_t1_opt1=conf1_t1_val1
157conf1_t1_opt2=conf1_t1_val2
158conf1_t1_opt3=conf1_t1_val3
159[conf1_t2]
160conf1_t2_opt1=conf1_t2_val1
161conf1_t2_opt2=conf1_t2_val2
162conf1_t2_opt3=conf1_t2_val3
163[conf1_t3]
164conf1_t3_opt1=conf1_t3_val1
165conf1_t3_opt2=conf1_t3_val2
166conf1_t3_opt3=conf1_t3_val3
167
168[[post-extra|$file_conf2]]
169[conf2_t1]
170conf2_t1_opt1=conf2_t1_val1
171conf2_t1_opt2=conf2_t1_val2
172conf2_t1_opt3=conf2_t1_val3
173EOF
174 cat <<- EOF > $file_localconf_expected
175[[local|localrc]]
176LOCALRC_VAR1 = localrc_val1
177LOCALRC_VAR2 = localrc_val2_update
178LOCALRC_VAR3 = localrc_val3
179
180[[post-config|$file_conf1]]
181[conf1_t1]
182conf1_t1_opt1=conf1_t1_val1_update
183conf1_t1_opt2=conf1_t1_val2
184conf1_t1_opt3=conf1_t1_val3
185[conf1_t2]
186conf1_t2_opt1=conf1_t2_val1
187conf1_t2_opt2=conf1_t2_val2_update
188conf1_t2_opt3=conf1_t2_val3
189[conf1_t3]
190conf1_t3_opt1=conf1_t3_val1
191conf1_t3_opt2=conf1_t3_val2
192conf1_t3_opt3=conf1_t3_val3_update
193
194[[post-extra|$file_conf2]]
195[conf2_t1]
196conf2_t1_opt1=conf2_t1_val1
197conf2_t1_opt2=conf2_t1_val2
198conf2_t1_opt3=conf2_t1_val3_update
199EOF
200
201 localconf_update_option "$SUDO" $file_localconf local localrc "" LOCALRC_VAR2 localrc_val2_update
202 localconf_update_option "$SUDO" $file_localconf post-config $file_conf1 conf1_t1 conf1_t1_opt1 conf1_t1_val1_update
203 localconf_update_option "$SUDO" $file_localconf post-config $file_conf1 conf1_t2 conf1_t2_opt2 conf1_t2_val2_update
204 localconf_update_option "$SUDO" $file_localconf post-config $file_conf1 conf1_t3 conf1_t3_opt3 conf1_t3_val3_update
205 localconf_update_option "$SUDO" $file_localconf post-extra $file_conf2 conf2_t1 conf2_t1_opt3 conf2_t1_val3_update
206 result=`cat $file_localconf`
207 result_expected=`cat $file_localconf_expected`
208 assert_equal "$result" "$result_expected"
209 localconf_update_option "$SUDO" $file_localconf post-config $file_conf1 conf1_t2 conf1_t3_opt1 conf1_t3_val1_update
210 localconf_update_option "$SUDO" $file_localconf post-extra $file_conf2 conf2_t1 conf2_t1_opt4 conf2_t1_val4_update
211 localconf_update_option "$SUDO" $file_localconf post-install $file_conf2 conf2_t1 conf2_t1_opt1 conf2_t1_val1_update
212 localconf_update_option "$SUDO" $file_localconf local localrc "" LOCALRC_VAR4 localrc_val4_update
213 result=`cat $file_localconf`
214 result_expected=`cat $file_localconf_expected`
215 assert_equal "$result" "$result_expected"
216 rm -f $file_localconf $file_localconf_expected $file_conf1 $file_conf2
217}
218
219# test that add option in specified meta-section and section
220function test_localconf_add_option {
221 local file_localconf
222 local file_localconf_expected
223 local file_conf1
224 local file_conf2
225 file_localconf=`mktemp`
226 file_localconf_expected=`mktemp`
227 file_conf1=`mktemp`
228 file_conf2=`mktemp`
229 cat <<- EOF > $file_localconf
230[[post-config|$file_conf1]]
231[conf1_t1]
232conf1_t1_opt1=conf1_t1_val1
233conf1_t1_opt2=conf1_t1_val2
234conf1_t1_opt3=conf1_t1_val3
235[conf1_t2]
236conf1_t2_opt1=conf1_t2_val1
237conf1_t2_opt2=conf1_t2_val2
238conf1_t2_opt3=conf1_t2_val3
239[conf1_t3]
240conf1_t3_opt1=conf1_t3_val1
241conf1_t3_opt2=conf1_t3_val2
242conf1_t3_opt3=conf1_t3_val3
243
244[[local|localrc]]
245LOCALRC_VAR1=localrc_val1
246LOCALRC_VAR2=localrc_val2
247LOCALRC_VAR3=localrc_val3
248
249[[post-extra|$file_conf2]]
250[conf2_t1]
251conf2_t1_opt1 = conf2_t1_val1
252conf2_t1_opt2 = conf2_t1_val2
253conf2_t1_opt3 = conf2_t1_val3
254EOF
255 cat <<- EOF > $file_localconf_expected
256[[post-config|$file_conf1]]
257[conf1_t1]
258conf1_t1_opt4 = conf1_t1_val4
259conf1_t1_opt1=conf1_t1_val1
260conf1_t1_opt2=conf1_t1_val2
261conf1_t1_opt3=conf1_t1_val3
262[conf1_t2]
263conf1_t2_opt4 = conf1_t2_val4
264conf1_t2_opt1=conf1_t2_val1
265conf1_t2_opt2=conf1_t2_val2
266conf1_t2_opt3=conf1_t2_val3
267[conf1_t3]
268conf1_t3_opt4 = conf1_t3_val4
269conf1_t3_opt1=conf1_t3_val1
270conf1_t3_opt2=conf1_t3_val2
271conf1_t3_opt3=conf1_t3_val3
272
273[[local|localrc]]
274LOCALRC_VAR4 = localrc_val4
275LOCALRC_VAR1=localrc_val1
276LOCALRC_VAR2=localrc_val2
277LOCALRC_VAR3=localrc_val3
278
279[[post-extra|$file_conf2]]
280[conf2_t1]
281conf2_t1_opt4 = conf2_t1_val4
282conf2_t1_opt1 = conf2_t1_val1
283conf2_t1_opt2 = conf2_t1_val2
284conf2_t1_opt3 = conf2_t1_val3
285EOF
286
287 localconf_add_option "$SUDO" $file_localconf local localrc "" LOCALRC_VAR4 localrc_val4
288 localconf_add_option "$SUDO" $file_localconf post-config $file_conf1 conf1_t1 conf1_t1_opt4 conf1_t1_val4
289 localconf_add_option "$SUDO" $file_localconf post-config $file_conf1 conf1_t2 conf1_t2_opt4 conf1_t2_val4
290 localconf_add_option "$SUDO" $file_localconf post-config $file_conf1 conf1_t3 conf1_t3_opt4 conf1_t3_val4
291 localconf_add_option "$SUDO" $file_localconf post-extra $file_conf2 conf2_t1 conf2_t1_opt4 conf2_t1_val4
292 result=`cat $file_localconf`
293 result_expected=`cat $file_localconf_expected`
294 assert_equal "$result" "$result_expected"
295 localconf_add_option "$SUDO" $file_localconf local localrc.conf "" LOCALRC_VAR4 localrc_val4_update
296 localconf_add_option "$SUDO" $file_localconf post-config $file_conf1 conf1_t4 conf1_t4_opt1 conf1_t4_val1
297 localconf_add_option "$SUDO" $file_localconf post-extra $file_conf2 conf2_t2 conf2_t2_opt4 conf2_t2_val4
298 localconf_add_option "$SUDO" $file_localconf post-install $file_conf2 conf2_t1 conf2_t1_opt4 conf2_t2_val4
299 result=`cat $file_localconf`
300 result_expected=`cat $file_localconf_expected`
301 assert_equal "$result" "$result_expected"
302 rm -f $file_localconf $file_localconf_expected $file_conf1 $file_conf2
303}
304
305# test that add section and option in specified meta-section
306function test_localconf_add_section_and_option {
307 local file_localconf
308 local file_localconf_expected
309 local file_conf1
310 local file_conf2
311 file_localconf=`mktemp`
312 file_localconf_expected=`mktemp`
313 file_conf1=`mktemp`
314 file_conf2=`mktemp`
315 cat <<- EOF > $file_localconf
316[[post-config|$file_conf1]]
317[conf1_t1]
318conf1_t1_opt1=conf1_t1_val1
319conf1_t1_opt2=conf1_t1_val2
320conf1_t1_opt3=conf1_t1_val3
321[conf1_t2]
322conf1_t2_opt1=conf1_t2_val1
323conf1_t2_opt2=conf1_t2_val2
324conf1_t2_opt3=conf1_t2_val3
325[conf1_t3]
326conf1_t3_opt1=conf1_t3_val1
327conf1_t3_opt2=conf1_t3_val2
328conf1_t3_opt3=conf1_t3_val3
329
330[[local|localrc]]
331LOCALRC_VAR1=localrc_val1
332LOCALRC_VAR2=localrc_val2
333LOCALRC_VAR3=localrc_val3
334
335[[post-extra|$file_conf2]]
336[conf2_t1]
337conf2_t1_opt1=conf2_t1_val1
338conf2_t1_opt2=conf2_t1_val2
339conf2_t1_opt3=conf2_t1_val3
340EOF
341 cat <<- EOF > $file_localconf_expected
342[[post-config|$file_conf1]]
343[conf1_t4]
344conf1_t4_opt1 = conf1_t4_val1
345[conf1_t1]
346conf1_t1_opt1=conf1_t1_val1
347conf1_t1_opt2=conf1_t1_val2
348conf1_t1_opt3=conf1_t1_val3
349[conf1_t2]
350conf1_t2_opt1=conf1_t2_val1
351conf1_t2_opt2=conf1_t2_val2
352conf1_t2_opt3=conf1_t2_val3
353[conf1_t3]
354conf1_t3_opt1=conf1_t3_val1
355conf1_t3_opt2=conf1_t3_val2
356conf1_t3_opt3=conf1_t3_val3
357
358[[local|localrc]]
359LOCALRC_VAR1=localrc_val1
360LOCALRC_VAR2=localrc_val2
361LOCALRC_VAR3=localrc_val3
362
363[[post-extra|$file_conf2]]
364[conf2_t2]
365conf2_t2_opt1 = conf2_t2_val1
366[conf2_t1]
367conf2_t1_opt1=conf2_t1_val1
368conf2_t1_opt2=conf2_t1_val2
369conf2_t1_opt3=conf2_t1_val3
370EOF
371
372 localconf_add_section_and_option "$SUDO" $file_localconf post-config $file_conf1 conf1_t4 conf1_t4_opt1 conf1_t4_val1
373 localconf_add_section_and_option "$SUDO" $file_localconf post-extra $file_conf2 conf2_t2 conf2_t2_opt1 conf2_t2_val1
374 result=`cat $file_localconf`
375 result_expected=`cat $file_localconf_expected`
376 assert_equal "$result" "$result_expected"
377 localconf_add_section_and_option "$SUDO" $file_localconf post-install $file_conf2 conf2_t2 conf2_t2_opt1 conf2_t2_val1
378 result=`cat $file_localconf`
379 result_expected=`cat $file_localconf_expected`
380 assert_equal "$result" "$result_expected"
381 rm -f $file_localconf $file_localconf_expected $file_conf1 $file_conf2
382}
383
384# test that add section and option in specified meta-section
385function test_localconf_set {
386 local file_localconf
387 local file_localconf_expected
388 local file_conf1
389 local file_conf2
390 file_localconf=`mktemp`
391 file_localconf_expected=`mktemp`
392 file_conf1=`mktemp`
393 file_conf2=`mktemp`
394 cat <<- EOF > $file_localconf
395[[local|localrc]]
396LOCALRC_VAR1=localrc_val1
397LOCALRC_VAR2=localrc_val2
398LOCALRC_VAR3=localrc_val3
399
400[[post-config|$file_conf1]]
401[conf1_t1]
402conf1_t1_opt1=conf1_t1_val1
403conf1_t1_opt2=conf1_t1_val2
404conf1_t1_opt3=conf1_t1_val3
405[conf1_t2]
406conf1_t2_opt1=conf1_t2_val1
407conf1_t2_opt2=conf1_t2_val2
408conf1_t2_opt3=conf1_t2_val3
409[conf1_t3]
410conf1_t3_opt1=conf1_t3_val1
411conf1_t3_opt2=conf1_t3_val2
412conf1_t3_opt3=conf1_t3_val3
413
414[[post-extra|$file_conf2]]
415[conf2_t1]
416conf2_t1_opt1=conf2_t1_val1
417conf2_t1_opt2=conf2_t1_val2
418conf2_t1_opt3=conf2_t1_val3
419EOF
420 cat <<- EOF > $file_localconf_expected
421[[local|localrc]]
422LOCALRC_VAR1=localrc_val1
423LOCALRC_VAR2=localrc_val2_update
424LOCALRC_VAR3=localrc_val3
425
426[[post-config|$file_conf1]]
427[conf1_t4]
428conf1_t4_opt1 = conf1_t4_val1
429[conf1_t1]
430conf1_t1_opt1=conf1_t1_val1
431conf1_t1_opt2=conf1_t1_val2
432conf1_t1_opt3=conf1_t1_val3
433[conf1_t2]
434conf1_t2_opt1=conf1_t2_val1
435conf1_t2_opt2=conf1_t2_val2
436conf1_t2_opt3=conf1_t2_val3
437[conf1_t3]
438conf1_t3_opt1=conf1_t3_val1
439conf1_t3_opt2=conf1_t3_val2
440conf1_t3_opt3=conf1_t3_val3
441
442[[post-extra|$file_conf2]]
443[conf2_t1]
444conf2_t1_opt4 = conf2_t1_val4
445conf2_t1_opt1=conf2_t1_val1
446conf2_t1_opt2=conf2_t1_val2
447conf2_t1_opt3=conf2_t1_val3
448
449[[post-install|/etc/neutron/plugin/ml2/ml2_conf.ini]]
450[ml2]
451ml2_opt1 = ml2_val1
452EOF
453
454 if [[ -n "$SUDO" ]]; then
455 SUDO_ARG="-sudo"
456 else
457 SUDO_ARG=""
458 fi
459 localconf_set $SUDO_ARG $file_localconf post-install /etc/neutron/plugin/ml2/ml2_conf.ini ml2 ml2_opt1 ml2_val1
460 localconf_set $SUDO_ARG $file_localconf local localrc "" LOCALRC_VAR2 localrc_val2_update
461 localconf_set $SUDO_ARG $file_localconf post-config $file_conf1 conf1_t4 conf1_t4_opt1 conf1_t4_val1
462 localconf_set $SUDO_ARG $file_localconf post-extra $file_conf2 conf2_t1 conf2_t1_opt4 conf2_t1_val4
463 result=`cat $file_localconf`
464 result_expected=`cat $file_localconf_expected`
465 assert_equal "$result" "$result_expected"
466 rm -f $file_localconf $file_localconf_expected $file_conf1 $file_conf2
467}
468
469
470test_localconf_has_section
471test_localconf_has_option
472test_localconf_update_option
473test_localconf_add_option
474test_localconf_add_section_and_option
475test_localconf_set