Browse code

Merge "Make exercise.sh with quantum work"

Jenkins authored on 2012/11/15 01:30:55
Showing 9 changed files
... ...
@@ -32,6 +32,12 @@ source $TOP_DIR/functions
32 32
 # Import configuration
33 33
 source $TOP_DIR/openrc
34 34
 
35
+# Import quantum functions if needed
36
+if is_service_enabled quantum; then
37
+    source $TOP_DIR/lib/quantum
38
+    setup_quantum
39
+fi
40
+
35 41
 # Import exercise configuration
36 42
 source $TOP_DIR/exerciserc
37 43
 
... ...
@@ -168,6 +174,10 @@ nova floating-ip-delete $FLOATING_IP || \
168 168
 # Delete a secgroup
169 169
 nova secgroup-delete $SECGROUP || die "Failure deleting security group $SECGROUP"
170 170
 
171
+if is_service_enabled quantum; then
172
+    teardown_quantum
173
+fi
174
+
171 175
 set +o xtrace
172 176
 echo "*********************************************************************"
173 177
 echo "SUCCESS: End DevStack Exercise: $0"
... ...
@@ -33,6 +33,12 @@ source $TOP_DIR/functions
33 33
 # Import EC2 configuration
34 34
 source $TOP_DIR/eucarc
35 35
 
36
+# Import quantum functions if needed
37
+if is_service_enabled quantum; then
38
+    source $TOP_DIR/lib/quantum
39
+    setup_quantum
40
+fi
41
+
36 42
 # Import exercise configuration
37 43
 source $TOP_DIR/exerciserc
38 44
 
... ...
@@ -169,6 +175,10 @@ fi
169 169
 # Delete group
170 170
 euca-delete-group $SECGROUP || die "Failure deleting security group $SECGROUP"
171 171
 
172
+if is_service_enabled quantum; then
173
+    teardown_quantum
174
+fi
175
+
172 176
 set +o xtrace
173 177
 echo "*********************************************************************"
174 178
 echo "SUCCESS: End DevStack Exercise: $0"
... ...
@@ -31,6 +31,12 @@ source $TOP_DIR/functions
31 31
 # Import configuration
32 32
 source $TOP_DIR/openrc
33 33
 
34
+# Import quantum functions if needed
35
+if is_service_enabled quantum; then
36
+    source $TOP_DIR/lib/quantum
37
+    setup_quantum
38
+fi
39
+
34 40
 # Import exercise configuration
35 41
 source $TOP_DIR/exerciserc
36 42
 
... ...
@@ -155,14 +161,16 @@ nova add-floating-ip $VM_UUID $FLOATING_IP || \
155 155
 # test we can ping our floating ip within ASSOCIATE_TIMEOUT seconds
156 156
 ping_check "$PUBLIC_NETWORK_NAME" $FLOATING_IP $ASSOCIATE_TIMEOUT
157 157
 
158
-# Allocate an IP from second floating pool
159
-TEST_FLOATING_IP=`nova floating-ip-create $TEST_FLOATING_POOL | grep $TEST_FLOATING_POOL | get_field 1`
160
-die_if_not_set TEST_FLOATING_IP "Failure creating floating IP in $TEST_FLOATING_POOL"
158
+if ! is_service_enabled quantum; then
159
+    # Allocate an IP from second floating pool
160
+    TEST_FLOATING_IP=`nova floating-ip-create $TEST_FLOATING_POOL | grep $TEST_FLOATING_POOL | get_field 1`
161
+    die_if_not_set TEST_FLOATING_IP "Failure creating floating IP in $TEST_FLOATING_POOL"
161 162
 
162
-# list floating addresses
163
-if ! timeout $ASSOCIATE_TIMEOUT sh -c "while ! nova floating-ip-list | grep $TEST_FLOATING_POOL | grep -q $TEST_FLOATING_IP; do sleep 1; done"; then
164
-    echo "Floating IP not allocated"
165
-    exit 1
163
+    # list floating addresses
164
+    if ! timeout $ASSOCIATE_TIMEOUT sh -c "while ! nova floating-ip-list | grep $TEST_FLOATING_POOL | grep -q $TEST_FLOATING_IP; do sleep 1; done"; then
165
+        echo "Floating IP not allocated"
166
+        exit 1
167
+     fi
166 168
 fi
167 169
 
168 170
 # dis-allow icmp traffic (ping)
... ...
@@ -171,12 +179,13 @@ nova secgroup-delete-rule $SECGROUP icmp -1 -1 0.0.0.0/0 || die "Failure deletin
171 171
 # FIXME (anthony): make xs support security groups
172 172
 if [ "$VIRT_DRIVER" != "xenserver" -a "$VIRT_DRIVER" != "openvz" ]; then
173 173
     # test we can aren't able to ping our floating ip within ASSOCIATE_TIMEOUT seconds
174
-    ping_check "$PUBLIC_NETWORK_NAME" $FLOATING_IP $ASSOCIATE_TIMEOUT
174
+    ping_check "$PUBLIC_NETWORK_NAME" $FLOATING_IP $ASSOCIATE_TIMEOUT Fail
175 175
 fi
176 176
 
177
-# Delete second floating IP
178
-nova floating-ip-delete $TEST_FLOATING_IP || die "Failure deleting floating IP $TEST_FLOATING_IP"
179
-
177
+if ! is_service_enabled quantum; then
178
+    # Delete second floating IP
179
+    nova floating-ip-delete $TEST_FLOATING_IP || die "Failure deleting floating IP $TEST_FLOATING_IP"
180
+fi
180 181
 
181 182
 # de-allocate the floating ip
182 183
 nova floating-ip-delete $FLOATING_IP || die "Failure deleting floating IP $FLOATING_IP"
... ...
@@ -193,6 +202,10 @@ fi
193 193
 # Delete a secgroup
194 194
 nova secgroup-delete $SECGROUP || die "Failure deleting security group $SECGROUP"
195 195
 
196
+if is_service_enabled quantum; then
197
+    teardown_quantum
198
+fi
199
+
196 200
 set +o xtrace
197 201
 echo "*********************************************************************"
198 202
 echo "SUCCESS: End DevStack Exercise: $0"
... ...
@@ -52,13 +52,17 @@ source $TOP_DIR/functions
52 52
 # Import configuration
53 53
 source $TOP_DIR/openrc
54 54
 
55
-# Import exercise configuration
56
-source $TOP_DIR/exerciserc
57
-
58 55
 # If quantum is not enabled we exit with exitcode 55 which mean
59 56
 # exercise is skipped.
60 57
 is_service_enabled quantum && is_service_enabled q-agt && is_service_enabled q-dhcp || exit 55
61 58
 
59
+# Import quantum fucntions
60
+source $TOP_DIR/lib/quantum
61
+setup_quantum
62
+
63
+# Import exercise configuration
64
+source $TOP_DIR/exerciserc
65
+
62 66
 #------------------------------------------------------------------------------
63 67
 # Test settings for quantum
64 68
 #------------------------------------------------------------------------------
... ...
@@ -76,14 +80,14 @@ DEMO1_NUM_NET=1
76 76
 DEMO2_NUM_NET=2
77 77
 
78 78
 PUBLIC_NET1_CIDR="200.0.0.0/24"
79
-DEMO1_NET1_CIDR="10.1.0.0/24"
80
-DEMO2_NET1_CIDR="10.2.0.0/24"
81
-DEMO2_NET2_CIDR="10.2.1.0/24"
79
+DEMO1_NET1_CIDR="10.10.0.0/24"
80
+DEMO2_NET1_CIDR="10.20.0.0/24"
81
+DEMO2_NET2_CIDR="10.20.1.0/24"
82 82
 
83 83
 PUBLIC_NET1_GATEWAY="200.0.0.1"
84
-DEMO1_NET1_GATEWAY="10.1.0.1"
85
-DEMO2_NET1_GATEWAY="10.2.0.1"
86
-DEMO2_NET2_GATEWAY="10.2.1.1"
84
+DEMO1_NET1_GATEWAY="10.10.0.1"
85
+DEMO2_NET1_GATEWAY="10.20.0.1"
86
+DEMO2_NET2_GATEWAY="10.20.1.1"
87 87
 
88 88
 PUBLIC_NUM_VM=1
89 89
 DEMO1_NUM_VM=1
... ...
@@ -188,7 +192,7 @@ function get_flavor_id {
188 188
 
189 189
 function confirm_server_active {
190 190
     local VM_UUID=$1
191
-    if ! timeout $ACTIVE_TIMEOUT sh -c "while ! nova  --no_cache show $VM_UUID | grep status | grep -q ACTIVE; do sleep 1; done"; then
191
+    if ! timeout $ACTIVE_TIMEOUT sh -c "while ! nova show $VM_UUID | grep status | grep -q ACTIVE; do sleep 1; done"; then
192 192
     echo "server '$VM_UUID' did not become active!"
193 193
     false
194 194
 fi
... ...
@@ -232,6 +236,7 @@ function create_tenants {
232 232
     source $TOP_DIR/openrc admin admin
233 233
     add_tenant demo1 demo1 demo1
234 234
     add_tenant demo2 demo2 demo2
235
+    source $TOP_DIR/openrc demo demo
235 236
 }
236 237
 
237 238
 function delete_tenants_and_users {
... ...
@@ -241,6 +246,7 @@ function delete_tenants_and_users {
241 241
     remove_user demo2
242 242
     remove_tenant demo2
243 243
     echo "removed all tenants"
244
+    source $TOP_DIR/openrc demo demo
244 245
 }
245 246
 
246 247
 function create_network {
... ...
@@ -256,12 +262,8 @@ function create_network {
256 256
     source $TOP_DIR/openrc $TENANT $TENANT
257 257
     local NET_ID=$(quantum net-create --tenant_id $TENANT_ID $NET_NAME $EXTRA| grep ' id ' | awk '{print $4}' )
258 258
     quantum subnet-create --ip_version 4 --tenant_id $TENANT_ID --gateway $GATEWAY $NET_ID $CIDR
259
-    #T0DO(nati) comment out until l3-agent is merged
260
-    #local ROUTER_ID=$($QUANTUM router-create --tenant_id $TENANT_ID $ROUTER_NAME| grep ' id ' | awk '{print $4}' )
261
-    #for NET_NAME in ${NET_NAMES//,/ };do
262
-    #    SUBNET_ID=`get_subnet_id $NET_NAME`
263
-    #    $QUANTUM router-interface-create $NAME --subnet_id $SUBNET_ID
264
-    #done
259
+    quantum-debug probe-create $NET_ID
260
+    source $TOP_DIR/openrc demo demo
265 261
 }
266 262
 
267 263
 function create_networks {
... ...
@@ -285,7 +287,7 @@ function create_vm {
285 285
     done
286 286
     #TODO (nati) Add multi-nic test
287 287
     #TODO (nati) Add public-net test
288
-    local VM_UUID=`nova --no_cache boot --flavor $(get_flavor_id m1.tiny) \
288
+    local VM_UUID=`nova boot --flavor $(get_flavor_id m1.tiny) \
289 289
         --image $(get_image_id) \
290 290
         $NIC \
291 291
         $TENANT-server$NUM | grep ' id ' | cut -d"|" -f3 | sed 's/ //g'`
... ...
@@ -301,32 +303,26 @@ function ping_ip {
301 301
    # Test agent connection.  Assumes namespaces are disabled, and
302 302
    # that DHCP is in use, but not L3
303 303
    local VM_NAME=$1
304
-   IP=`nova  --no_cache show $VM_NAME | grep 'network' | awk '{print $5}'`
305
-   if ! timeout $BOOT_TIMEOUT sh -c "while ! ping -c1 -w1 $IP; do sleep 1; done"; then
306
-        echo "Could not ping $VM_NAME"
307
-        false
308
-   fi
304
+   local NET_NAME=$2
305
+   IP=`nova show $VM_NAME | grep 'network' | awk '{print $5}'`
306
+   ping_check $NET_NAME $IP $BOOT_TIMEOUT
309 307
 }
310 308
 
311 309
 function check_vm {
312 310
     local TENANT=$1
313 311
     local NUM=$2
314 312
     local VM_NAME="$TENANT-server$NUM"
313
+    local NET_NAME=$3
315 314
     source $TOP_DIR/openrc $TENANT $TENANT
316
-    ping_ip $VM_NAME
315
+    ping_ip $VM_NAME $NET_NAME
317 316
     # TODO (nati) test ssh connection
318 317
     # TODO (nati) test inter connection between vm
319
-    # TODO (nati) test namespace dhcp
320 318
     # TODO (nati) test dhcp host routes
321 319
     # TODO (nati) test multi-nic
322
-    # TODO (nati) use test-agent
323
-    # TODO (nati) test L3 forwarding
324
-    # TODO (nati) test floating ip
325
-    # TODO (nati) test security group
326 320
 }
327 321
 
328 322
 function check_vms {
329
-    foreach_tenant_vm 'check_vm ${%TENANT%_NAME} %NUM%'
323
+    foreach_tenant_vm 'check_vm ${%TENANT%_NAME} %NUM% ${%TENANT%_VM%NUM%_NET}'
330 324
 }
331 325
 
332 326
 function shutdown_vm {
... ...
@@ -334,12 +330,12 @@ function shutdown_vm {
334 334
     local NUM=$2
335 335
     source $TOP_DIR/openrc $TENANT $TENANT
336 336
     VM_NAME=${TENANT}-server$NUM
337
-    nova --no_cache delete $VM_NAME
337
+    nova delete $VM_NAME
338 338
 }
339 339
 
340 340
 function shutdown_vms {
341 341
     foreach_tenant_vm 'shutdown_vm ${%TENANT%_NAME} %NUM%'
342
-    if ! timeout $TERMINATE_TIMEOUT sh -c "while nova --no_cache list | grep -q ACTIVE; do sleep 1; done"; then
342
+    if ! timeout $TERMINATE_TIMEOUT sh -c "while nova list | grep -q ACTIVE; do sleep 1; done"; then
343 343
         echo "Some VMs failed to shutdown"
344 344
         false
345 345
     fi
... ...
@@ -347,17 +343,22 @@ function shutdown_vms {
347 347
 
348 348
 function delete_network {
349 349
     local TENANT=$1
350
+    local NUM=$2
351
+    local NET_NAME="${TENANT}-net$NUM"
350 352
     source $TOP_DIR/openrc admin admin
351 353
     local TENANT_ID=$(get_tenant_id $TENANT)
352 354
     #TODO(nati) comment out until l3-agent merged
353 355
     #for res in port subnet net router;do
354
-    for res in port subnet net;do
355
-        quantum ${res}-list -F id -F tenant_id | grep $TENANT_ID | awk '{print $2}' | xargs -I % quantum ${res}-delete %
356
+    for net_id in `quantum net-list -c id -c name | grep $NET_NAME | awk '{print $2}'`;do
357
+        delete_probe $net_id
358
+        quantum subnet-list | grep $net_id | awk '{print $2}' | xargs -I% quantum subnet-delete %
359
+        quantum net-delete $net_id
356 360
     done
361
+    source $TOP_DIR/openrc demo demo
357 362
 }
358 363
 
359 364
 function delete_networks {
360
-   foreach_tenant 'delete_network ${%TENANT%_NAME}'
365
+   foreach_tenant_net 'delete_network ${%TENANT%_NAME} ${%NUM%}'
361 366
    #TODO(nati) add secuirty group check after it is implemented
362 367
    # source $TOP_DIR/openrc demo1 demo1
363 368
    # nova secgroup-delete-rule default icmp -1 -1 0.0.0.0/0
... ...
@@ -474,6 +475,7 @@ main() {
474 474
 }
475 475
 
476 476
 
477
+teardown_quantum
477 478
 #-------------------------------------------------------------------------------
478 479
 # Kick off script.
479 480
 #-------------------------------------------------------------------------------
... ...
@@ -30,6 +30,12 @@ source $TOP_DIR/functions
30 30
 # Import configuration
31 31
 source $TOP_DIR/openrc
32 32
 
33
+# Import quantum functions if needed
34
+if is_service_enabled quantum; then
35
+    source $TOP_DIR/lib/quantum
36
+    setup_quantum
37
+fi
38
+
33 39
 # Import exercise configuration
34 40
 source $TOP_DIR/exerciserc
35 41
 
... ...
@@ -206,6 +212,10 @@ fi
206 206
 # Delete a secgroup
207 207
 nova secgroup-delete $SECGROUP || die "Failure deleting security group $SECGROUP"
208 208
 
209
+if is_service_enabled quantum; then
210
+    teardown_quantum
211
+fi
212
+
209 213
 set +o xtrace
210 214
 echo "*********************************************************************"
211 215
 echo "SUCCESS: End DevStack Exercise: $0"
... ...
@@ -872,7 +872,11 @@ function yum_install() {
872 872
 # ping check
873 873
 # Uses globals ``ENABLED_SERVICES``
874 874
 function ping_check() {
875
-    _ping_check_novanet "$1" $2 $3
875
+    if is_service_enabled quantum; then
876
+        _ping_check_quantum  "$1" $2 $3 $4
877
+        return
878
+    fi
879
+    _ping_check_novanet "$1" $2 $3 $4
876 880
 }
877 881
 
878 882
 # ping check for nova
... ...
@@ -881,19 +885,39 @@ function _ping_check_novanet() {
881 881
     local from_net=$1
882 882
     local ip=$2
883 883
     local boot_timeout=$3
884
+    local expected=${4:-"True"}
885
+    local check_command=""
884 886
     MULTI_HOST=`trueorfalse False $MULTI_HOST`
885 887
     if [[ "$MULTI_HOST" = "True" && "$from_net" = "$PRIVATE_NETWORK_NAME" ]]; then
886 888
         sleep $boot_timeout
887 889
         return
888 890
     fi
889
-    if ! timeout $boot_timeout sh -c "while ! ping -c1 -w1 $ip; do sleep 1; done"; then
890
-        echo "Couldn't ping server"
891
+    if [[ "$expected" = "True" ]]; then
892
+        check_command="while ! ping -c1 -w1 $ip; do sleep 1; done"
893
+    else
894
+        check_command="while ping -c1 -w1 $ip; do sleep 1; done"
895
+    fi
896
+    if ! timeout $boot_timeout sh -c "$check_command"; then
897
+        if [[ "$expected" = "True" ]]; then
898
+            echo "[Fail] Couldn't ping server"
899
+        else
900
+            echo "[Fail] Could ping server"
901
+        fi
891 902
         exit 1
892 903
     fi
893 904
 }
894 905
 
895 906
 # ssh check
907
+
896 908
 function ssh_check() {
909
+    if is_service_enabled quantum; then
910
+        _ssh_check_quantum  "$1" $2 $3 $4 $5
911
+        return
912
+    fi
913
+    _ssh_check_novanet "$1" $2 $3 $4 $5
914
+}
915
+
916
+function _ssh_check_novanet() {
897 917
     local NET_NAME=$1
898 918
     local KEY_FILE=$2
899 919
     local FLOATING_IP=$3
... ...
@@ -5,6 +5,8 @@
5 5
 XTRACE=$(set +o | grep xtrace)
6 6
 set +o xtrace
7 7
 
8
+export QUANTUM_TEST_CONFIG_FILE=${QUANTUM_TEST_CONFIG_FILE:-"/etc/quantum/debug.ini"}
9
+
8 10
 # Configures keystone integration for quantum service and agents
9 11
 function quantum_setup_keystone() {
10 12
     local conf_file=$1
... ...
@@ -57,5 +59,72 @@ function is_quantum_ovs_base_plugin() {
57 57
     return 1
58 58
 }
59 59
 
60
+function _get_net_id() {
61
+    quantum --os-tenant-name admin --os-username admin --os-password $ADMIN_PASSWORD net-list | grep $1 | awk '{print $2}'
62
+}
63
+
64
+function _get_probe_cmd_prefix() {
65
+    local from_net="$1"
66
+    net_id=`_get_net_id $from_net`
67
+    probe_id=`quantum-debug --os-tenant-name admin --os-username admin --os-password $ADMIN_PASSWORD probe-list -c id -c network_id | grep $net_id | awk '{print $2}' | head -n 1`
68
+    echo "sudo ip netns exec qprobe-$probe_id"
69
+}
70
+
71
+function delete_probe() {
72
+    local from_net="$1"
73
+    net_id=`_get_net_id $from_net`
74
+    probe_id=`quantum-debug --os-tenant-name admin --os-username admin --os-password $ADMIN_PASSWORD probe-list -c id -c network_id | grep $net_id | awk '{print $2}'`
75
+    quantum-debug --os-tenant-name admin --os-username admin probe-delete $probe_id
76
+}
77
+
78
+function _ping_check_quantum() {
79
+    local from_net=$1
80
+    local ip=$2
81
+    local timeout_sec=$3
82
+    local expected=${4:-"True"}
83
+    local check_command=""
84
+    probe_cmd=`_get_probe_cmd_prefix $from_net`
85
+    if [[ "$expected" = "True" ]]; then
86
+        check_command="while ! $probe_cmd ping -c1 -w1 $ip; do sleep 1; done"
87
+    else
88
+        check_command="while $probe_cmd ping -c1 -w1 $ip; do sleep 1; done"
89
+    fi
90
+    if ! timeout $timeout_sec sh -c "$check_command"; then
91
+        if [[ "$expected" = "True" ]]; then
92
+            echo "[Fail] Couldn't ping server"
93
+        else
94
+            echo "[Fail] Could ping server"
95
+        fi
96
+        exit 1
97
+    fi
98
+}
99
+
100
+# ssh check
101
+function _ssh_check_quantum() {
102
+    local from_net=$1
103
+    local key_file=$2
104
+    local ip=$3
105
+    local user=$4
106
+    local timeout_sec=$5
107
+    local probe_cmd = ""
108
+    probe_cmd=`_get_probe_cmd_prefix $from_net`
109
+    if ! timeout $timeout_sec sh -c "while ! $probe_cmd ssh -o StrictHostKeyChecking=no -i $key_file ${user}@$ip echo success ; do sleep 1; done"; then
110
+        echo "server didn't become ssh-able!"
111
+        exit 1
112
+    fi
113
+}
114
+
115
+function setup_quantum() {
116
+    public_net_id=`_get_net_id $PUBLIC_NETWORK_NAME`
117
+    quantum-debug --os-tenant-name admin --os-username admin --os-password $ADMIN_PASSWORD probe-create $public_net_id
118
+    private_net_id=`_get_net_id $PRIVATE_NETWORK_NAME`
119
+    quantum-debug --os-tenant-name admin --os-username admin --os-password $ADMIN_PASSWORD probe-create $private_net_id
120
+}
121
+
122
+function teardown_quantum() {
123
+    delete_probe $PUBLIC_NETWORK_NAME
124
+    delete_probe $PRIVATE_NETWORK_NAME
125
+}
126
+
60 127
 # Restore xtrace
61 128
 $XTRACE
... ...
@@ -73,5 +73,5 @@ export COMPUTE_API_VERSION=${COMPUTE_API_VERSION:-$NOVA_VERSION}
73 73
 # export KEYSTONECLIENT_DEBUG=1
74 74
 # export NOVACLIENT_DEBUG=1
75 75
 
76
-# set qunatum debug command
77
-export TEST_CONFIG_FILE=/etc/quantum/debug.ini
76
+# set quantum debug command
77
+export QUANTUM_TEST_CONFIG_FILE=${QUANTUM_TEST_CONFIG_FILE:-"/etc/quantum/debug.ini"}
... ...
@@ -342,6 +342,8 @@ Q_USE_NAMESPACE=${Q_USE_NAMESPACE:-True}
342 342
 Q_USE_ROOTWRAP=${Q_USE_ROOTWRAP:-True}
343 343
 # Meta data IP
344 344
 Q_META_DATA_IP=${Q_META_DATA_IP:-$HOST_IP}
345
+# Use quantum-debug command
346
+Q_USE_DEBUG_COMMAND=${Q_USE_DEBUG_COMMAND:-False}
345 347
 
346 348
 RYU_DIR=$DEST/ryu
347 349
 # Ryu API Host
... ...
@@ -1465,6 +1467,15 @@ if is_service_enabled quantum; then
1465 1465
         iniset $Q_CONF_FILE DEFAULT rabbit_host $RABBIT_HOST
1466 1466
         iniset $Q_CONF_FILE DEFAULT rabbit_password $RABBIT_PASSWORD
1467 1467
     fi
1468
+    if [[ "$Q_USE_DEBUG_COMMAND" == "True" ]]; then
1469
+        Q_DEBUG_CONF_FILE=/etc/quantum/debug.ini
1470
+        cp $QUANTUM_DIR/etc/l3_agent.ini $Q_DEBUG_CONF_FILE
1471
+        iniset $Q_L3_CONF_FILE DEFAULT verbose False
1472
+        iniset $Q_L3_CONF_FILE DEFAULT debug False
1473
+        iniset $Q_L3_CONF_FILE DEFAULT metadata_ip $Q_META_DATA_IP
1474
+        iniset $Q_L3_CONF_FILE DEFAULT use_namespaces $Q_USE_NAMESPACE
1475
+        iniset $Q_L3_CONF_FILE DEFAULT root_helper "sudo"
1476
+    fi
1468 1477
 fi
1469 1478
 
1470 1479