Browse code

Merge "Use install(1) where possible"

Jenkins authored on 2015/03/20 23:30:06
Showing 13 changed files
... ...
@@ -163,11 +163,7 @@ function _config_ceilometer_apache_wsgi {
163 163
 
164 164
 # configure_ceilometer() - Set config files, create data dirs, etc
165 165
 function configure_ceilometer {
166
-    [ ! -d $CEILOMETER_CONF_DIR ] && sudo mkdir -m 755 -p $CEILOMETER_CONF_DIR
167
-    sudo chown $STACK_USER $CEILOMETER_CONF_DIR
168
-
169
-    [ ! -d $CEILOMETER_API_LOG_DIR ] &&  sudo mkdir -m 755 -p $CEILOMETER_API_LOG_DIR
170
-    sudo chown $STACK_USER $CEILOMETER_API_LOG_DIR
166
+    sudo install -d -o $STACK_USER -m 755 $CEILOMETER_CONF_DIR $CEILOMETER_API_LOG_DIR
171 167
 
172 168
     iniset_rpc_backend ceilometer $CEILOMETER_CONF DEFAULT
173 169
 
... ...
@@ -267,8 +263,7 @@ function configure_mongodb {
267 267
 # init_ceilometer() - Initialize etc.
268 268
 function init_ceilometer {
269 269
     # Create cache dir
270
-    sudo mkdir -p $CEILOMETER_AUTH_CACHE_DIR
271
-    sudo chown $STACK_USER $CEILOMETER_AUTH_CACHE_DIR
270
+    sudo install -d -o $STACK_USER $CEILOMETER_AUTH_CACHE_DIR
272 271
     rm -f $CEILOMETER_AUTH_CACHE_DIR/*
273 272
 
274 273
     if is_service_enabled mysql postgresql; then
... ...
@@ -174,16 +174,15 @@ function configure_cinder_rootwrap {
174 174
     if [[ -d $CINDER_CONF_DIR/rootwrap.d ]]; then
175 175
         sudo rm -rf $CINDER_CONF_DIR/rootwrap.d
176 176
     fi
177
+
177 178
     # Deploy filters to /etc/cinder/rootwrap.d
178
-    sudo mkdir -m 755 $CINDER_CONF_DIR/rootwrap.d
179
-    sudo cp $CINDER_DIR/etc/cinder/rootwrap.d/*.filters $CINDER_CONF_DIR/rootwrap.d
180
-    sudo chown -R root:root $CINDER_CONF_DIR/rootwrap.d
181
-    sudo chmod 644 $CINDER_CONF_DIR/rootwrap.d/*
179
+    sudo install -d -o root -g root -m 755 $CINDER_CONF_DIR/rootwrap.d
180
+    sudo install -o root -g root -m 644 $CINDER_DIR/etc/cinder/rootwrap.d/*.filters $CINDER_CONF_DIR/rootwrap.d
181
+
182 182
     # Set up rootwrap.conf, pointing to /etc/cinder/rootwrap.d
183
-    sudo cp $CINDER_DIR/etc/cinder/rootwrap.conf $CINDER_CONF_DIR/
183
+    sudo install -o root -g root -m 644 $CINDER_DIR/etc/cinder/rootwrap.conf $CINDER_CONF_DIR
184 184
     sudo sed -e "s:^filters_path=.*$:filters_path=$CINDER_CONF_DIR/rootwrap.d:" -i $CINDER_CONF_DIR/rootwrap.conf
185
-    sudo chown root:root $CINDER_CONF_DIR/rootwrap.conf
186
-    sudo chmod 0644 $CINDER_CONF_DIR/rootwrap.conf
185
+
187 186
     # Specify rootwrap.conf as first parameter to rootwrap
188 187
     ROOTWRAP_CSUDOER_CMD="$cinder_rootwrap $CINDER_CONF_DIR/rootwrap.conf *"
189 188
 
... ...
@@ -197,10 +196,7 @@ function configure_cinder_rootwrap {
197 197
 
198 198
 # configure_cinder() - Set config files, create data dirs, etc
199 199
 function configure_cinder {
200
-    if [[ ! -d $CINDER_CONF_DIR ]]; then
201
-        sudo mkdir -p $CINDER_CONF_DIR
202
-    fi
203
-    sudo chown $STACK_USER $CINDER_CONF_DIR
200
+    sudo install -d -o $STACK_USER -m 755 $CINDER_CONF_DIR
204 201
 
205 202
     cp -p $CINDER_DIR/etc/cinder/policy.json $CINDER_CONF_DIR
206 203
 
... ...
@@ -351,8 +347,7 @@ function create_cinder_accounts {
351 351
 # create_cinder_cache_dir() - Part of the init_cinder() process
352 352
 function create_cinder_cache_dir {
353 353
     # Create cache dir
354
-    sudo mkdir -p $CINDER_AUTH_CACHE_DIR
355
-    sudo chown $STACK_USER $CINDER_AUTH_CACHE_DIR
354
+    sudo install -d -o $STACK_USER $CINDER_AUTH_CACHE_DIR
356 355
     rm -f $CINDER_AUTH_CACHE_DIR/*
357 356
 }
358 357
 
... ...
@@ -90,15 +90,7 @@ function cleanup_glance {
90 90
 
91 91
 # configure_glance() - Set config files, create data dirs, etc
92 92
 function configure_glance {
93
-    if [[ ! -d $GLANCE_CONF_DIR ]]; then
94
-        sudo mkdir -p $GLANCE_CONF_DIR
95
-    fi
96
-    sudo chown $STACK_USER $GLANCE_CONF_DIR
97
-
98
-    if [[ ! -d $GLANCE_METADEF_DIR ]]; then
99
-        sudo mkdir -p $GLANCE_METADEF_DIR
100
-    fi
101
-    sudo chown $STACK_USER $GLANCE_METADEF_DIR
93
+    sudo install -d -o $STACK_USER $GLANCE_CONF_DIR $GLANCE_METADEF_DIR
102 94
 
103 95
     # Copy over our glance configurations and update them
104 96
     cp $GLANCE_DIR/etc/glance-registry.conf $GLANCE_REGISTRY_CONF
... ...
@@ -263,12 +255,8 @@ function create_glance_accounts {
263 263
 # create_glance_cache_dir() - Part of the init_glance() process
264 264
 function create_glance_cache_dir {
265 265
     # Create cache dir
266
-    sudo mkdir -p $GLANCE_AUTH_CACHE_DIR/api
267
-    sudo chown $STACK_USER $GLANCE_AUTH_CACHE_DIR/api
268
-    rm -f $GLANCE_AUTH_CACHE_DIR/api/*
269
-    sudo mkdir -p $GLANCE_AUTH_CACHE_DIR/registry
270
-    sudo chown $STACK_USER $GLANCE_AUTH_CACHE_DIR/registry
271
-    rm -f $GLANCE_AUTH_CACHE_DIR/registry/*
266
+    sudo install -d -o $STACK_USER $GLANCE_AUTH_CACHE_DIR/api $GLANCE_AUTH_CACHE_DIR/registry
267
+    rm -f $GLANCE_AUTH_CACHE_DIR/api/* $GLANCE_AUTH_CACHE_DIR/registry/*
272 268
 }
273 269
 
274 270
 # init_glance() - Initialize databases, etc.
... ...
@@ -89,10 +89,7 @@ function cleanup_heat {
89 89
 # configure_heat() - Set config files, create data dirs, etc
90 90
 function configure_heat {
91 91
 
92
-    if [[ ! -d $HEAT_CONF_DIR ]]; then
93
-        sudo mkdir -p $HEAT_CONF_DIR
94
-    fi
95
-    sudo chown $STACK_USER $HEAT_CONF_DIR
92
+    sudo install -d -o $STACK_USER $HEAT_CONF_DIR
96 93
     # remove old config files
97 94
     rm -f $HEAT_CONF_DIR/heat-*.conf
98 95
 
... ...
@@ -174,15 +171,11 @@ function configure_heat {
174 174
         iniset $HEAT_CONF DEFAULT enable_stack_abandon true
175 175
     fi
176 176
 
177
-    # heat environment
178
-    sudo mkdir -p $HEAT_ENV_DIR
179
-    sudo chown $STACK_USER $HEAT_ENV_DIR
177
+    sudo install -d -o $STACK_USER $HEAT_ENV_DIR $HEAT_TEMPLATES_DIR
178
+
180 179
     # copy the default environment
181 180
     cp $HEAT_DIR/etc/heat/environment.d/* $HEAT_ENV_DIR/
182 181
 
183
-    # heat template resources.
184
-    sudo mkdir -p $HEAT_TEMPLATES_DIR
185
-    sudo chown $STACK_USER $HEAT_TEMPLATES_DIR
186 182
     # copy the default templates
187 183
     cp $HEAT_DIR/etc/heat/templates/* $HEAT_TEMPLATES_DIR/
188 184
 
... ...
@@ -201,8 +194,7 @@ function init_heat {
201 201
 # create_heat_cache_dir() - Part of the init_heat() process
202 202
 function create_heat_cache_dir {
203 203
     # Create cache dirs
204
-    sudo mkdir -p $HEAT_AUTH_CACHE_DIR
205
-    sudo chown $STACK_USER $HEAT_AUTH_CACHE_DIR
204
+    sudo install -d -o $STACK_USER $HEAT_AUTH_CACHE_DIR
206 205
 }
207 206
 
208 207
 # install_heatclient() - Collect source and prepare
... ...
@@ -234,22 +234,14 @@ function cleanup_ironic {
234 234
 # configure_ironic_dirs() - Create all directories required by Ironic and
235 235
 # associated services.
236 236
 function configure_ironic_dirs {
237
-    if [[ ! -d $IRONIC_CONF_DIR ]]; then
238
-        sudo mkdir -p $IRONIC_CONF_DIR
239
-    fi
237
+    sudo install -d -o $STACK_USER $IRONIC_CONF_DIR $STACK_USER $IRONIC_DATA_DIR \
238
+        $IRONIC_STATE_PATH $IRONIC_TFTPBOOT_DIR $IRONIC_TFTPBOOT_DIR/pxelinux.cfg
239
+    sudo chown -R $STACK_USER:$LIBVIRT_GROUP $IRONIC_TFTPBOOT_DIR
240 240
 
241 241
     if [[ "$IRONIC_IPXE_ENABLED" == "True" ]] ; then
242
-        sudo mkdir -p $IRONIC_HTTP_DIR
243
-        sudo chown -R $STACK_USER:$LIBVIRT_GROUP $IRONIC_HTTP_DIR
242
+        sudo install -d -o $STACK_USER -g $LIBVIRT_GROUP $IRONIC_HTTP_DIR
244 243
     fi
245 244
 
246
-    sudo mkdir -p $IRONIC_DATA_DIR
247
-    sudo mkdir -p $IRONIC_STATE_PATH
248
-    sudo mkdir -p $IRONIC_TFTPBOOT_DIR
249
-    sudo chown -R $STACK_USER $IRONIC_DATA_DIR $IRONIC_STATE_PATH
250
-    sudo chown -R $STACK_USER:$LIBVIRT_GROUP $IRONIC_TFTPBOOT_DIR
251
-    mkdir -p $IRONIC_TFTPBOOT_DIR/pxelinux.cfg
252
-
253 245
     if [ ! -f $IRONIC_PXE_BOOT_IMAGE ]; then
254 246
         die $LINENO "PXE boot file $IRONIC_PXE_BOOT_IMAGE not found."
255 247
     fi
... ...
@@ -268,7 +260,6 @@ function configure_ironic_dirs {
268 268
 # configure_ironic() - Set config files, create data dirs, etc
269 269
 function configure_ironic {
270 270
     configure_ironic_dirs
271
-    sudo chown $STACK_USER $IRONIC_CONF_DIR
272 271
 
273 272
     # Copy over ironic configuration file and configure common parameters.
274 273
     cp $IRONIC_DIR/etc/ironic/ironic.conf.sample $IRONIC_CONF_FILE
... ...
@@ -175,14 +175,10 @@ function _config_keystone_apache_wsgi {
175 175
 
176 176
 # configure_keystone() - Set config files, create data dirs, etc
177 177
 function configure_keystone {
178
-    if [[ ! -d $KEYSTONE_CONF_DIR ]]; then
179
-        sudo mkdir -p $KEYSTONE_CONF_DIR
180
-    fi
181
-    sudo chown $STACK_USER $KEYSTONE_CONF_DIR
178
+    sudo install -d -o $STACK_USER $KEYSTONE_CONF_DIR
182 179
 
183 180
     if [[ "$KEYSTONE_CONF_DIR" != "$KEYSTONE_DIR/etc" ]]; then
184
-        cp -p $KEYSTONE_DIR/etc/keystone.conf.sample $KEYSTONE_CONF
185
-        chmod 600 $KEYSTONE_CONF
181
+        install -m 600 $KEYSTONE_DIR/etc/keystone.conf.sample $KEYSTONE_CONF
186 182
         cp -p $KEYSTONE_DIR/etc/policy.json $KEYSTONE_CONF_DIR
187 183
         if [[ -f "$KEYSTONE_DIR/etc/keystone-paste.ini" ]]; then
188 184
             cp -p "$KEYSTONE_DIR/etc/keystone-paste.ini" "$KEYSTONE_PASTE_INI"
... ...
@@ -480,8 +476,7 @@ function init_keystone {
480 480
         $KEYSTONE_DIR/bin/keystone-manage pki_setup
481 481
 
482 482
         # Create cache dir
483
-        sudo mkdir -p $KEYSTONE_AUTH_CACHE_DIR
484
-        sudo chown $STACK_USER $KEYSTONE_AUTH_CACHE_DIR
483
+        sudo install -d -o $STACK_USER $KEYSTONE_AUTH_CACHE_DIR
485 484
         rm -f $KEYSTONE_AUTH_CACHE_DIR/*
486 485
     fi
487 486
 }
... ...
@@ -499,8 +499,7 @@ function create_nova_conf_neutron {
499 499
 # create_neutron_cache_dir() - Part of the _neutron_setup_keystone() process
500 500
 function create_neutron_cache_dir {
501 501
     # Create cache dir
502
-    sudo mkdir -p $NEUTRON_AUTH_CACHE_DIR
503
-    sudo chown $STACK_USER $NEUTRON_AUTH_CACHE_DIR
502
+    sudo install -d -o $STACK_USER $NEUTRON_AUTH_CACHE_DIR
504 503
     rm -f $NEUTRON_AUTH_CACHE_DIR/*
505 504
 }
506 505
 
... ...
@@ -804,10 +803,7 @@ function cleanup_neutron {
804 804
 
805 805
 function _create_neutron_conf_dir {
806 806
     # Put config files in ``NEUTRON_CONF_DIR`` for everyone to find
807
-    if [[ ! -d $NEUTRON_CONF_DIR ]]; then
808
-        sudo mkdir -p $NEUTRON_CONF_DIR
809
-    fi
810
-    sudo chown $STACK_USER $NEUTRON_CONF_DIR
807
+    sudo install -d -o $STACK_USER $NEUTRON_CONF_DIR
811 808
 }
812 809
 
813 810
 # _configure_neutron_common()
... ...
@@ -1094,10 +1090,8 @@ function _neutron_service_plugin_class_add {
1094 1094
 # _neutron_deploy_rootwrap_filters() - deploy rootwrap filters to $Q_CONF_ROOTWRAP_D (owned by root).
1095 1095
 function _neutron_deploy_rootwrap_filters {
1096 1096
     local srcdir=$1
1097
-    mkdir -p -m 755 $Q_CONF_ROOTWRAP_D
1098
-    sudo cp -pr $srcdir/etc/neutron/rootwrap.d/* $Q_CONF_ROOTWRAP_D/
1099
-    sudo chown -R root:root $Q_CONF_ROOTWRAP_D
1100
-    sudo chmod 644 $Q_CONF_ROOTWRAP_D/*
1097
+    sudo install -d -o root -m 755 $Q_CONF_ROOTWRAP_D
1098
+    sudo install -o root -m 644 $srcdir/etc/neutron/rootwrap.d/* $Q_CONF_ROOTWRAP_D/
1101 1099
 }
1102 1100
 
1103 1101
 # _neutron_setup_rootwrap() - configure Neutron's rootwrap
... ...
@@ -1116,13 +1110,11 @@ function _neutron_setup_rootwrap {
1116 1116
     # Set up ``rootwrap.conf``, pointing to ``$NEUTRON_CONF_DIR/rootwrap.d``
1117 1117
     # location moved in newer versions, prefer new location
1118 1118
     if test -r $NEUTRON_DIR/etc/neutron/rootwrap.conf; then
1119
-        sudo cp -p $NEUTRON_DIR/etc/neutron/rootwrap.conf $Q_RR_CONF_FILE
1119
+        sudo install -o root -g root -m 644 $NEUTRON_DIR/etc/neutron/rootwrap.conf $Q_RR_CONF_FILE
1120 1120
     else
1121
-        sudo cp -p $NEUTRON_DIR/etc/rootwrap.conf $Q_RR_CONF_FILE
1121
+        sudo install -o root -g root -m 644 $NEUTRON_DIR/etc/rootwrap.conf $Q_RR_CONF_FILE
1122 1122
     fi
1123 1123
     sudo sed -e "s:^filters_path=.*$:filters_path=$Q_CONF_ROOTWRAP_D:" -i $Q_RR_CONF_FILE
1124
-    sudo chown root:root $Q_RR_CONF_FILE
1125
-    sudo chmod 0644 $Q_RR_CONF_FILE
1126 1124
     # Specify ``rootwrap.conf`` as first parameter to neutron-rootwrap
1127 1125
     ROOTWRAP_SUDOER_CMD="$NEUTRON_ROOTWRAP $Q_RR_CONF_FILE *"
1128 1126
     ROOTWRAP_DAEMON_SUDOER_CMD="$NEUTRON_ROOTWRAP-daemon $Q_RR_CONF_FILE"
... ...
@@ -232,16 +232,15 @@ function configure_nova_rootwrap {
232 232
     if [[ -d $NOVA_CONF_DIR/rootwrap.d ]]; then
233 233
         sudo rm -rf $NOVA_CONF_DIR/rootwrap.d
234 234
     fi
235
+
235 236
     # Deploy filters to /etc/nova/rootwrap.d
236
-    sudo mkdir -m 755 $NOVA_CONF_DIR/rootwrap.d
237
-    sudo cp $NOVA_DIR/etc/nova/rootwrap.d/*.filters $NOVA_CONF_DIR/rootwrap.d
238
-    sudo chown -R root:root $NOVA_CONF_DIR/rootwrap.d
239
-    sudo chmod 644 $NOVA_CONF_DIR/rootwrap.d/*
237
+    sudo install -d -o root -g root -m 755 $NOVA_CONF_DIR/rootwrap.d
238
+    sudo install -o root -g root -m 644  $NOVA_DIR/etc/nova/rootwrap.d/*.filters $NOVA_CONF_DIR/rootwrap.d
239
+
240 240
     # Set up rootwrap.conf, pointing to /etc/nova/rootwrap.d
241
-    sudo cp $NOVA_DIR/etc/nova/rootwrap.conf $NOVA_CONF_DIR/
241
+    sudo install -o root -g root -m 644 $NOVA_DIR/etc/nova/rootwrap.conf $NOVA_CONF_DIR
242 242
     sudo sed -e "s:^filters_path=.*$:filters_path=$NOVA_CONF_DIR/rootwrap.d:" -i $NOVA_CONF_DIR/rootwrap.conf
243
-    sudo chown root:root $NOVA_CONF_DIR/rootwrap.conf
244
-    sudo chmod 0644 $NOVA_CONF_DIR/rootwrap.conf
243
+
245 244
     # Specify rootwrap.conf as first parameter to nova-rootwrap
246 245
     local rootwrap_sudoer_cmd="$NOVA_ROOTWRAP $NOVA_CONF_DIR/rootwrap.conf *"
247 246
 
... ...
@@ -256,10 +255,7 @@ function configure_nova_rootwrap {
256 256
 # configure_nova() - Set config files, create data dirs, etc
257 257
 function configure_nova {
258 258
     # Put config files in ``/etc/nova`` for everyone to find
259
-    if [[ ! -d $NOVA_CONF_DIR ]]; then
260
-        sudo mkdir -p $NOVA_CONF_DIR
261
-    fi
262
-    sudo chown $STACK_USER $NOVA_CONF_DIR
259
+    sudo install -d -o $STACK_USER $NOVA_CONF_DIR
263 260
 
264 261
     install_default_policy nova
265 262
 
... ...
@@ -318,8 +314,7 @@ function configure_nova {
318 318
         # ----------------
319 319
 
320 320
         # Nova stores each instance in its own directory.
321
-        sudo mkdir -p $NOVA_INSTANCES_PATH
322
-        sudo chown -R $STACK_USER $NOVA_INSTANCES_PATH
321
+        sudo install -d -o $STACK_USER $NOVA_INSTANCES_PATH
323 322
 
324 323
         # You can specify a different disk to be mounted and used for backing the
325 324
         # virtual machines.  If there is a partition labeled nova-instances we
... ...
@@ -603,8 +598,7 @@ function init_nova_cells {
603 603
 # create_nova_cache_dir() - Part of the init_nova() process
604 604
 function create_nova_cache_dir {
605 605
     # Create cache dir
606
-    sudo mkdir -p $NOVA_AUTH_CACHE_DIR
607
-    sudo chown $STACK_USER $NOVA_AUTH_CACHE_DIR
606
+    sudo install -d -o $STACK_USER $NOVA_AUTH_CACHE_DIR
608 607
     rm -f $NOVA_AUTH_CACHE_DIR/*
609 608
 }
610 609
 
... ...
@@ -621,8 +615,7 @@ function create_nova_conf_nova_network {
621 621
 # create_nova_keys_dir() - Part of the init_nova() process
622 622
 function create_nova_keys_dir {
623 623
     # Create keys dir
624
-    sudo mkdir -p ${NOVA_STATE_PATH}/keys
625
-    sudo chown -R $STACK_USER ${NOVA_STATE_PATH}
624
+    sudo install -d -o $STACK_USER ${NOVA_STATE_PATH} ${NOVA_STATE_PATH}/keys
626 625
 }
627 626
 
628 627
 # init_nova() - Initialize databases, etc.
... ...
@@ -101,20 +101,14 @@ function cleanup_sahara {
101 101
 
102 102
 # configure_sahara() - Set config files, create data dirs, etc
103 103
 function configure_sahara {
104
-
105
-    if [[ ! -d $SAHARA_CONF_DIR ]]; then
106
-        sudo mkdir -p $SAHARA_CONF_DIR
107
-    fi
108
-    sudo chown $STACK_USER $SAHARA_CONF_DIR
104
+    sudo install -d -o $STACK_USER $SAHARA_CONF_DIR
109 105
 
110 106
     if [[ -f $SAHARA_DIR/etc/sahara/policy.json ]]; then
111 107
         cp -p $SAHARA_DIR/etc/sahara/policy.json $SAHARA_CONF_DIR
112 108
     fi
113 109
 
114 110
     # Create auth cache dir
115
-    sudo mkdir -p $SAHARA_AUTH_CACHE_DIR
116
-    sudo chown $STACK_USER $SAHARA_AUTH_CACHE_DIR
117
-    sudo chmod 700 $SAHARA_AUTH_CACHE_DIR
111
+    sudo install -d -o $STACK_USER -m 700 $SAHARA_AUTH_CACHE_DIR
118 112
     rm -rf $SAHARA_AUTH_CACHE_DIR/*
119 113
 
120 114
     configure_auth_token_middleware $SAHARA_CONF_FILE sahara $SAHARA_AUTH_CACHE_DIR
... ...
@@ -306,8 +306,8 @@ function configure_swift {
306 306
     # Make sure to kill all swift processes first
307 307
     swift-init --run-dir=${SWIFT_DATA_DIR}/run all stop || true
308 308
 
309
-    sudo mkdir -p ${SWIFT_CONF_DIR}/{object,container,account}-server
310
-    sudo chown -R ${STACK_USER}: ${SWIFT_CONF_DIR}
309
+    sudo install -d -o ${STACK_USER} ${SWIFT_CONF_DIR}
310
+    sudo install -d -o ${STACK_USER} ${SWIFT_CONF_DIR}/{object,container,account}-server
311 311
 
312 312
     if [[ "$SWIFT_CONF_DIR" != "/etc/swift" ]]; then
313 313
         # Some swift tools are hard-coded to use ``/etc/swift`` and are apparently not going to be fixed.
... ...
@@ -530,8 +530,7 @@ function create_swift_disk {
530 530
     # changing the permissions so we can run it as our user.
531 531
 
532 532
     local user_group=$(id -g ${STACK_USER})
533
-    sudo mkdir -p ${SWIFT_DATA_DIR}/{drives,cache,run,logs}
534
-    sudo chown -R ${STACK_USER}:${user_group} ${SWIFT_DATA_DIR}
533
+    sudo install -d -o ${STACK_USER} -g ${user_group} ${SWIFT_DATA_DIR}/{drives,cache,run,logs}
535 534
 
536 535
     # Create a loopback disk and format it to XFS.
537 536
     if [[ -e ${SWIFT_DISK_IMAGE} ]]; then
... ...
@@ -671,8 +670,7 @@ function init_swift {
671 671
     } && popd >/dev/null
672 672
 
673 673
     # Create cache dir
674
-    sudo mkdir -p $SWIFT_AUTH_CACHE_DIR
675
-    sudo chown $STACK_USER $SWIFT_AUTH_CACHE_DIR
674
+    sudo install -d -o ${STACK_USER} $SWIFT_AUTH_CACHE_DIR
676 675
     rm -f $SWIFT_AUTH_CACHE_DIR/*
677 676
 }
678 677
 
... ...
@@ -170,12 +170,8 @@ function configure_tempest {
170 170
 
171 171
     # Create tempest.conf from tempest.conf.sample
172 172
     # copy every time, because the image UUIDS are going to change
173
-    if [[ ! -d $TEMPEST_CONFIG_DIR ]]; then
174
-        sudo mkdir -p $TEMPEST_CONFIG_DIR
175
-    fi
176
-    sudo chown $STACK_USER $TEMPEST_CONFIG_DIR
177
-    cp $TEMPEST_DIR/etc/tempest.conf.sample $TEMPEST_CONFIG
178
-    chmod 644 $TEMPEST_CONFIG
173
+    sudo install -d -o $STACK_USER $TEMPEST_CONFIG_DIR
174
+    install -m 644 $TEMPEST_DIR/etc/tempest.conf.sample $TEMPEST_CONFIG
179 175
 
180 176
     password=${ADMIN_PASSWORD:-secrete}
181 177
 
... ...
@@ -121,10 +121,7 @@ function configure_trove {
121 121
     setup_develop $TROVE_DIR
122 122
 
123 123
     # Create the trove conf dir and cache dirs if they don't exist
124
-    sudo mkdir -p ${TROVE_CONF_DIR}
125
-    sudo mkdir -p ${TROVE_AUTH_CACHE_DIR}
126
-    sudo chown -R $STACK_USER: ${TROVE_CONF_DIR}
127
-    sudo chown -R $STACK_USER: ${TROVE_AUTH_CACHE_DIR}
124
+    sudo install -d -o $STACK_USER ${TROVE_CONF_DIR} ${TROVE_AUTH_CACHE_DIR}
128 125
 
129 126
     # Copy api-paste file over to the trove conf dir
130 127
     cp $TROVE_LOCAL_API_PASTE_INI $TROVE_API_PASTE_INI
... ...
@@ -105,8 +105,7 @@ function configure_zaqarclient {
105 105
 function configure_zaqar {
106 106
     setup_develop $ZAQAR_DIR
107 107
 
108
-    [ ! -d $ZAQAR_CONF_DIR ] && sudo mkdir -m 755 -p $ZAQAR_CONF_DIR
109
-    sudo chown $USER $ZAQAR_CONF_DIR
108
+    sudo install -d -o $STACK_USER -m 755 $ZAQAR_CONF_DIR
110 109
 
111 110
     iniset $ZAQAR_CONF DEFAULT debug True
112 111
     iniset $ZAQAR_CONF DEFAULT verbose True
... ...
@@ -168,8 +167,7 @@ function configure_mongodb {
168 168
 # init_zaqar() - Initialize etc.
169 169
 function init_zaqar {
170 170
     # Create cache dir
171
-    sudo mkdir -p $ZAQAR_AUTH_CACHE_DIR
172
-    sudo chown $STACK_USER $ZAQAR_AUTH_CACHE_DIR
171
+    sudo install -d -o $STACK_USER $ZAQAR_AUTH_CACHE_DIR
173 172
     rm -f $ZAQAR_AUTH_CACHE_DIR/*
174 173
 }
175 174