Only modify folders created by devstack

running chown and chmod on files and folders not created by
devstack causes a few issues:

* On nfs mounted directories it can take an extremely
  long time to chown -R some of the git repos, especially
  if any tox commands have been ran in the host
* chown can cause the host files to get into a weird state
  if nfs is set up wrong.

If files and folders are pre-existing we should assume
they are in the correct state, and not modify them.

Fix setup-devstack-log-dir to create the logs directory with
correct permissions in the first place.

Change-Id: I5ebdaded3ffd0a5bc70c5e9ab5b18daefb358f58
Signed-off-by: Graham Hayes <gr@ham.ie>
This commit is contained in:
Graham Hayes 2015-07-20 16:28:52 +01:00 committed by Graham Hayes
parent 6aeaceb0c4
commit 352d58a7af
No known key found for this signature in database
GPG Key ID: 1B263DC59F4AEFD5
3 changed files with 25 additions and 6 deletions

View File

@ -2,4 +2,7 @@
file:
path: '{{ devstack_base_dir }}/logs'
state: directory
mode: 0755
owner: stack
group: stack
become: yes

View File

@ -46,3 +46,14 @@
dest: "{{ devstack_data_base_dir }}/data/"
mode: push
when: 'inventory_hostname in groups["subnode"]|default([])'
- name: Ensure the data folder and subfolders have the correct permissions
become: true
file:
path: "{{ devstack_data_base_dir }}/data"
state: directory
owner: stack
group: stack
mode: 0755
recurse: yes
when: 'inventory_hostname in groups["subnode"]|default([])'

View File

@ -365,9 +365,12 @@ DEST=${DEST:-/opt/stack}
# Create the destination directory and ensure it is writable by the user
# and read/executable by everybody for daemons (e.g. apache run for horizon)
sudo mkdir -p $DEST
safe_chown -R $STACK_USER $DEST
safe_chmod 0755 $DEST
# If directory exists do not modify the permissions.
if [[ ! -d $DEST ]]; then
sudo mkdir -p $DEST
safe_chown -R $STACK_USER $DEST
safe_chmod 0755 $DEST
fi
# Destination path for devstack logs
if [[ -n ${LOGDIR:-} ]]; then
@ -376,9 +379,11 @@ fi
# Destination path for service data
DATA_DIR=${DATA_DIR:-${DEST}/data}
sudo mkdir -p $DATA_DIR
safe_chown -R $STACK_USER $DATA_DIR
safe_chmod 0755 $DATA_DIR
if [[ ! -d $DATA_DIR ]]; then
sudo mkdir -p $DATA_DIR
safe_chown -R $STACK_USER $DATA_DIR
safe_chmod 0755 $DATA_DIR
fi
# Configure proper hostname
# Certain services such as rabbitmq require that the local hostname resolves