| Sean Dague | bb35715 | 2016-06-07 11:20:55 -0400 | [diff] [blame] | 1 | #!/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 |  | 
|  | 17 | TOP=$(cd $(dirname "$0")/.. && pwd) | 
|  | 18 |  | 
|  | 19 | # Import config functions | 
|  | 20 | source $TOP/inc/ini-config | 
|  | 21 |  | 
|  | 22 | source $TOP/tests/unittest.sh | 
|  | 23 |  | 
|  | 24 | echo "Testing INI local.conf functions" | 
|  | 25 |  | 
|  | 26 | # test that can determine if file has section in specified meta-section | 
|  | 27 |  | 
|  | 28 | function 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]] | 
|  | 38 | LOCALRC_VAR1=localrc_val1 | 
|  | 39 | LOCALRC_VAR2=localrc_val2 | 
|  | 40 | LOCALRC_VAR3=localrc_val3 | 
|  | 41 |  | 
|  | 42 | [[post-config|$file_conf1]] | 
|  | 43 | [conf1_t1] | 
|  | 44 | conf1_t1_opt1=conf1_t1_val1 | 
|  | 45 | conf1_t1_opt2=conf1_t1_val2 | 
|  | 46 | conf1_t1_opt3=conf1_t1_val3 | 
|  | 47 | [conf1_t2] | 
|  | 48 | conf1_t2_opt1=conf1_t2_val1 | 
|  | 49 | conf1_t2_opt2=conf1_t2_val2 | 
|  | 50 | conf1_t2_opt3=conf1_t2_val3 | 
|  | 51 | [conf1_t3] | 
|  | 52 | conf1_t3_opt1=conf1_t3_val1 | 
|  | 53 | conf1_t3_opt2=conf1_t3_val2 | 
|  | 54 | conf1_t3_opt3=conf1_t3_val3 | 
|  | 55 |  | 
|  | 56 | [[post-extra|$file_conf2]] | 
|  | 57 | [conf2_t1] | 
|  | 58 | conf2_t1_opt1=conf2_t1_val1 | 
|  | 59 | conf2_t1_opt2=conf2_t1_val2 | 
|  | 60 | conf2_t1_opt3=conf2_t1_val3 | 
|  | 61 | EOF | 
|  | 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 | 
|  | 81 | function 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] | 
|  | 91 | conf1_t1_opt1 = conf1_t1_val1 | 
|  | 92 | conf1_t1_opt2 = conf1_t1_val2 | 
|  | 93 | conf1_t1_opt3 = conf1_t1_val3 | 
|  | 94 | [conf1_t2] | 
|  | 95 | conf1_t2_opt1=conf1_t2_val1 | 
|  | 96 | conf1_t2_opt2=conf1_t2_val2 | 
|  | 97 | conf1_t2_opt3=conf1_t2_val3 | 
|  | 98 | [conf1_t3] | 
|  | 99 | conf1_t3_opt1=conf1_t3_val1 | 
|  | 100 | conf1_t3_opt2=conf1_t3_val2 | 
|  | 101 | conf1_t3_opt3=conf1_t3_val3 | 
|  | 102 |  | 
|  | 103 | [[local|localrc]] | 
|  | 104 | LOCALRC_VAR1=localrc_val1 | 
|  | 105 | LOCALRC_VAR2=localrc_val2 | 
|  | 106 | LOCALRC_VAR3=localrc_val3 | 
|  | 107 |  | 
|  | 108 | [[post-extra|$file_conf2]] | 
|  | 109 | [conf2_t1] | 
|  | 110 | conf2_t1_opt1=conf2_t1_val1 | 
|  | 111 | conf2_t1_opt2=conf2_t1_val2 | 
|  | 112 | conf2_t1_opt3=conf2_t1_val3 | 
|  | 113 | EOF | 
|  | 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 | 
|  | 139 | function 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]] | 
|  | 150 | LOCALRC_VAR1 = localrc_val1 | 
|  | 151 | LOCALRC_VAR2 = localrc_val2 | 
|  | 152 | LOCALRC_VAR3 = localrc_val3 | 
|  | 153 |  | 
|  | 154 | [[post-config|$file_conf1]] | 
|  | 155 | [conf1_t1] | 
|  | 156 | conf1_t1_opt1=conf1_t1_val1 | 
|  | 157 | conf1_t1_opt2=conf1_t1_val2 | 
|  | 158 | conf1_t1_opt3=conf1_t1_val3 | 
|  | 159 | [conf1_t2] | 
|  | 160 | conf1_t2_opt1=conf1_t2_val1 | 
|  | 161 | conf1_t2_opt2=conf1_t2_val2 | 
|  | 162 | conf1_t2_opt3=conf1_t2_val3 | 
|  | 163 | [conf1_t3] | 
|  | 164 | conf1_t3_opt1=conf1_t3_val1 | 
|  | 165 | conf1_t3_opt2=conf1_t3_val2 | 
|  | 166 | conf1_t3_opt3=conf1_t3_val3 | 
|  | 167 |  | 
|  | 168 | [[post-extra|$file_conf2]] | 
|  | 169 | [conf2_t1] | 
|  | 170 | conf2_t1_opt1=conf2_t1_val1 | 
|  | 171 | conf2_t1_opt2=conf2_t1_val2 | 
|  | 172 | conf2_t1_opt3=conf2_t1_val3 | 
|  | 173 | EOF | 
|  | 174 | cat <<- EOF > $file_localconf_expected | 
|  | 175 | [[local|localrc]] | 
|  | 176 | LOCALRC_VAR1 = localrc_val1 | 
|  | 177 | LOCALRC_VAR2 = localrc_val2_update | 
|  | 178 | LOCALRC_VAR3 = localrc_val3 | 
|  | 179 |  | 
|  | 180 | [[post-config|$file_conf1]] | 
|  | 181 | [conf1_t1] | 
|  | 182 | conf1_t1_opt1=conf1_t1_val1_update | 
|  | 183 | conf1_t1_opt2=conf1_t1_val2 | 
|  | 184 | conf1_t1_opt3=conf1_t1_val3 | 
|  | 185 | [conf1_t2] | 
|  | 186 | conf1_t2_opt1=conf1_t2_val1 | 
|  | 187 | conf1_t2_opt2=conf1_t2_val2_update | 
|  | 188 | conf1_t2_opt3=conf1_t2_val3 | 
|  | 189 | [conf1_t3] | 
|  | 190 | conf1_t3_opt1=conf1_t3_val1 | 
|  | 191 | conf1_t3_opt2=conf1_t3_val2 | 
|  | 192 | conf1_t3_opt3=conf1_t3_val3_update | 
|  | 193 |  | 
|  | 194 | [[post-extra|$file_conf2]] | 
|  | 195 | [conf2_t1] | 
|  | 196 | conf2_t1_opt1=conf2_t1_val1 | 
|  | 197 | conf2_t1_opt2=conf2_t1_val2 | 
|  | 198 | conf2_t1_opt3=conf2_t1_val3_update | 
|  | 199 | EOF | 
|  | 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 | 
|  | 220 | function 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] | 
|  | 232 | conf1_t1_opt1=conf1_t1_val1 | 
|  | 233 | conf1_t1_opt2=conf1_t1_val2 | 
|  | 234 | conf1_t1_opt3=conf1_t1_val3 | 
|  | 235 | [conf1_t2] | 
|  | 236 | conf1_t2_opt1=conf1_t2_val1 | 
|  | 237 | conf1_t2_opt2=conf1_t2_val2 | 
|  | 238 | conf1_t2_opt3=conf1_t2_val3 | 
|  | 239 | [conf1_t3] | 
|  | 240 | conf1_t3_opt1=conf1_t3_val1 | 
|  | 241 | conf1_t3_opt2=conf1_t3_val2 | 
|  | 242 | conf1_t3_opt3=conf1_t3_val3 | 
|  | 243 |  | 
|  | 244 | [[local|localrc]] | 
|  | 245 | LOCALRC_VAR1=localrc_val1 | 
|  | 246 | LOCALRC_VAR2=localrc_val2 | 
|  | 247 | LOCALRC_VAR3=localrc_val3 | 
|  | 248 |  | 
|  | 249 | [[post-extra|$file_conf2]] | 
|  | 250 | [conf2_t1] | 
|  | 251 | conf2_t1_opt1 = conf2_t1_val1 | 
|  | 252 | conf2_t1_opt2 = conf2_t1_val2 | 
|  | 253 | conf2_t1_opt3 = conf2_t1_val3 | 
|  | 254 | EOF | 
|  | 255 | cat <<- EOF > $file_localconf_expected | 
|  | 256 | [[post-config|$file_conf1]] | 
|  | 257 | [conf1_t1] | 
|  | 258 | conf1_t1_opt4 = conf1_t1_val4 | 
|  | 259 | conf1_t1_opt1=conf1_t1_val1 | 
|  | 260 | conf1_t1_opt2=conf1_t1_val2 | 
|  | 261 | conf1_t1_opt3=conf1_t1_val3 | 
|  | 262 | [conf1_t2] | 
|  | 263 | conf1_t2_opt4 = conf1_t2_val4 | 
|  | 264 | conf1_t2_opt1=conf1_t2_val1 | 
|  | 265 | conf1_t2_opt2=conf1_t2_val2 | 
|  | 266 | conf1_t2_opt3=conf1_t2_val3 | 
|  | 267 | [conf1_t3] | 
|  | 268 | conf1_t3_opt4 = conf1_t3_val4 | 
|  | 269 | conf1_t3_opt1=conf1_t3_val1 | 
|  | 270 | conf1_t3_opt2=conf1_t3_val2 | 
|  | 271 | conf1_t3_opt3=conf1_t3_val3 | 
|  | 272 |  | 
|  | 273 | [[local|localrc]] | 
|  | 274 | LOCALRC_VAR4 = localrc_val4 | 
|  | 275 | LOCALRC_VAR1=localrc_val1 | 
|  | 276 | LOCALRC_VAR2=localrc_val2 | 
|  | 277 | LOCALRC_VAR3=localrc_val3 | 
|  | 278 |  | 
|  | 279 | [[post-extra|$file_conf2]] | 
|  | 280 | [conf2_t1] | 
|  | 281 | conf2_t1_opt4 = conf2_t1_val4 | 
|  | 282 | conf2_t1_opt1 = conf2_t1_val1 | 
|  | 283 | conf2_t1_opt2 = conf2_t1_val2 | 
|  | 284 | conf2_t1_opt3 = conf2_t1_val3 | 
|  | 285 | EOF | 
|  | 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 | 
|  | 306 | function 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] | 
|  | 318 | conf1_t1_opt1=conf1_t1_val1 | 
|  | 319 | conf1_t1_opt2=conf1_t1_val2 | 
|  | 320 | conf1_t1_opt3=conf1_t1_val3 | 
|  | 321 | [conf1_t2] | 
|  | 322 | conf1_t2_opt1=conf1_t2_val1 | 
|  | 323 | conf1_t2_opt2=conf1_t2_val2 | 
|  | 324 | conf1_t2_opt3=conf1_t2_val3 | 
|  | 325 | [conf1_t3] | 
|  | 326 | conf1_t3_opt1=conf1_t3_val1 | 
|  | 327 | conf1_t3_opt2=conf1_t3_val2 | 
|  | 328 | conf1_t3_opt3=conf1_t3_val3 | 
|  | 329 |  | 
|  | 330 | [[local|localrc]] | 
|  | 331 | LOCALRC_VAR1=localrc_val1 | 
|  | 332 | LOCALRC_VAR2=localrc_val2 | 
|  | 333 | LOCALRC_VAR3=localrc_val3 | 
|  | 334 |  | 
|  | 335 | [[post-extra|$file_conf2]] | 
|  | 336 | [conf2_t1] | 
|  | 337 | conf2_t1_opt1=conf2_t1_val1 | 
|  | 338 | conf2_t1_opt2=conf2_t1_val2 | 
|  | 339 | conf2_t1_opt3=conf2_t1_val3 | 
|  | 340 | EOF | 
|  | 341 | cat <<- EOF > $file_localconf_expected | 
|  | 342 | [[post-config|$file_conf1]] | 
|  | 343 | [conf1_t4] | 
|  | 344 | conf1_t4_opt1 = conf1_t4_val1 | 
|  | 345 | [conf1_t1] | 
|  | 346 | conf1_t1_opt1=conf1_t1_val1 | 
|  | 347 | conf1_t1_opt2=conf1_t1_val2 | 
|  | 348 | conf1_t1_opt3=conf1_t1_val3 | 
|  | 349 | [conf1_t2] | 
|  | 350 | conf1_t2_opt1=conf1_t2_val1 | 
|  | 351 | conf1_t2_opt2=conf1_t2_val2 | 
|  | 352 | conf1_t2_opt3=conf1_t2_val3 | 
|  | 353 | [conf1_t3] | 
|  | 354 | conf1_t3_opt1=conf1_t3_val1 | 
|  | 355 | conf1_t3_opt2=conf1_t3_val2 | 
|  | 356 | conf1_t3_opt3=conf1_t3_val3 | 
|  | 357 |  | 
|  | 358 | [[local|localrc]] | 
|  | 359 | LOCALRC_VAR1=localrc_val1 | 
|  | 360 | LOCALRC_VAR2=localrc_val2 | 
|  | 361 | LOCALRC_VAR3=localrc_val3 | 
|  | 362 |  | 
|  | 363 | [[post-extra|$file_conf2]] | 
|  | 364 | [conf2_t2] | 
|  | 365 | conf2_t2_opt1 = conf2_t2_val1 | 
|  | 366 | [conf2_t1] | 
|  | 367 | conf2_t1_opt1=conf2_t1_val1 | 
|  | 368 | conf2_t1_opt2=conf2_t1_val2 | 
|  | 369 | conf2_t1_opt3=conf2_t1_val3 | 
|  | 370 | EOF | 
|  | 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 | 
|  | 385 | function 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]] | 
|  | 396 | LOCALRC_VAR1=localrc_val1 | 
|  | 397 | LOCALRC_VAR2=localrc_val2 | 
|  | 398 | LOCALRC_VAR3=localrc_val3 | 
|  | 399 |  | 
|  | 400 | [[post-config|$file_conf1]] | 
|  | 401 | [conf1_t1] | 
|  | 402 | conf1_t1_opt1=conf1_t1_val1 | 
|  | 403 | conf1_t1_opt2=conf1_t1_val2 | 
|  | 404 | conf1_t1_opt3=conf1_t1_val3 | 
|  | 405 | [conf1_t2] | 
|  | 406 | conf1_t2_opt1=conf1_t2_val1 | 
|  | 407 | conf1_t2_opt2=conf1_t2_val2 | 
|  | 408 | conf1_t2_opt3=conf1_t2_val3 | 
|  | 409 | [conf1_t3] | 
|  | 410 | conf1_t3_opt1=conf1_t3_val1 | 
|  | 411 | conf1_t3_opt2=conf1_t3_val2 | 
|  | 412 | conf1_t3_opt3=conf1_t3_val3 | 
|  | 413 |  | 
|  | 414 | [[post-extra|$file_conf2]] | 
|  | 415 | [conf2_t1] | 
|  | 416 | conf2_t1_opt1=conf2_t1_val1 | 
|  | 417 | conf2_t1_opt2=conf2_t1_val2 | 
|  | 418 | conf2_t1_opt3=conf2_t1_val3 | 
|  | 419 | EOF | 
|  | 420 | cat <<- EOF > $file_localconf_expected | 
|  | 421 | [[local|localrc]] | 
|  | 422 | LOCALRC_VAR1=localrc_val1 | 
|  | 423 | LOCALRC_VAR2=localrc_val2_update | 
|  | 424 | LOCALRC_VAR3=localrc_val3 | 
|  | 425 |  | 
|  | 426 | [[post-config|$file_conf1]] | 
|  | 427 | [conf1_t4] | 
|  | 428 | conf1_t4_opt1 = conf1_t4_val1 | 
|  | 429 | [conf1_t1] | 
|  | 430 | conf1_t1_opt1=conf1_t1_val1 | 
|  | 431 | conf1_t1_opt2=conf1_t1_val2 | 
|  | 432 | conf1_t1_opt3=conf1_t1_val3 | 
|  | 433 | [conf1_t2] | 
|  | 434 | conf1_t2_opt1=conf1_t2_val1 | 
|  | 435 | conf1_t2_opt2=conf1_t2_val2 | 
|  | 436 | conf1_t2_opt3=conf1_t2_val3 | 
|  | 437 | [conf1_t3] | 
|  | 438 | conf1_t3_opt1=conf1_t3_val1 | 
|  | 439 | conf1_t3_opt2=conf1_t3_val2 | 
|  | 440 | conf1_t3_opt3=conf1_t3_val3 | 
|  | 441 |  | 
|  | 442 | [[post-extra|$file_conf2]] | 
|  | 443 | [conf2_t1] | 
|  | 444 | conf2_t1_opt4 = conf2_t1_val4 | 
|  | 445 | conf2_t1_opt1=conf2_t1_val1 | 
|  | 446 | conf2_t1_opt2=conf2_t1_val2 | 
|  | 447 | conf2_t1_opt3=conf2_t1_val3 | 
|  | 448 |  | 
|  | 449 | [[post-install|/etc/neutron/plugin/ml2/ml2_conf.ini]] | 
|  | 450 | [ml2] | 
|  | 451 | ml2_opt1 = ml2_val1 | 
|  | 452 | EOF | 
|  | 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 |  | 
|  | 470 | test_localconf_has_section | 
|  | 471 | test_localconf_has_option | 
|  | 472 | test_localconf_update_option | 
|  | 473 | test_localconf_add_option | 
|  | 474 | test_localconf_add_section_and_option | 
|  | 475 | test_localconf_set |