bugfix 51/46151/1
authorwutianwei <wutianwei1@huawei.com>
Tue, 24 Oct 2017 01:28:08 +0000 (09:28 +0800)
committerwutianwei <wutianwei1@huawei.com>
Tue, 24 Oct 2017 01:28:08 +0000 (09:28 +0800)
When not define ceph role in DHA, there are somes issue on config-osa.
This patch add the judgement to check the parameter define or not.

Change-Id: If221fd3d02c87fc60f545b44f94043f38e34d283
Signed-off-by: wutianwei <wutianwei1@huawei.com>
deploy/adapters/ansible/roles/config-osa/tasks/main.yml
deploy/adapters/ansible/roles/storage/tasks/main.yml
deploy/adapters/ansible/roles/storage/tasks/storage.yml [new file with mode: 0755]

index d2ce5c3..d96a83d 100755 (executable)
     src: user_ceph.yml
     dest: /etc/openstack_deploy/user_ceph.yml
   when:
-    - "{{ hostvars[inventory_hostname]['groups']['ceph_mon'] | length > 0 }}"
-    - "{{ hostvars[inventory_hostname]['groups']['ceph_osd'] | length > 0 }}"
+    - hostvars[inventory_hostname]['groups']['ceph_mon'] is defined and
+      "{{ hostvars[inventory_hostname]['groups']['ceph_mon'] | length > 0 }}"
+    - hostvars[inventory_hostname]['groups']['ceph_osd'] is defined and
+      "{{ hostvars[inventory_hostname]['groups']['ceph_osd'] | length > 0 }}"
 
 - name: render ceph.yml.j2
   template:
     src: ceph.yml.j2
     dest: /etc/openstack_deploy/conf.d/ceph.yml
   when:
-    - "{{ hostvars[inventory_hostname]['groups']['ceph_mon'] | length > 0 }}"
-    - "{{ hostvars[inventory_hostname]['groups']['ceph_osd'] | length > 0 }}"
+    - hostvars[inventory_hostname]['groups']['ceph_mon'] is defined and
+      "{{ hostvars[inventory_hostname]['groups']['ceph_mon'] | length > 0 }}"
+    - hostvars[inventory_hostname]['groups']['ceph_osd'] is defined and
+      "{{ hostvars[inventory_hostname]['groups']['ceph_osd'] | length > 0 }}"
 
 - name: render user_variables_ceph.yml.j2
   template:
     src: user_variables_ceph.yml.j2
     dest: /etc/openstack_deploy/user_variables_ceph.yml
   when:
-    - "{{ hostvars[inventory_hostname]['groups']['ceph_mon'] | length > 0 }}"
-    - "{{ hostvars[inventory_hostname]['groups']['ceph_osd'] | length > 0 }}"
+    - hostvars[inventory_hostname]['groups']['ceph_mon'] is defined and
+      "{{ hostvars[inventory_hostname]['groups']['ceph_mon'] | length > 0 }}"
+    - hostvars[inventory_hostname]['groups']['ceph_osd'] is defined and
+      "{{ hostvars[inventory_hostname]['groups']['ceph_osd'] | length > 0 }}"
 
 - name: adapt no ha scenario
   include: noha.yml
index 3d9635c..e04019a 100755 (executable)
@@ -7,69 +7,21 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 ---
-- name: check if physical device exists
-  stat: path={{ physical_device }}
-  register: status
-  tags:
-    - storage
-
-- name: load loop.yml
-  include: loop.yml
-  when: status.stat.exists == False or status.stat.isblk == False
-  tags:
-    - storage
-
-- name: load real.yml
-  include: real.yml
-  when: status.stat.exists == True and status.stat.isblk == True
-  tags:
-    - storage
-
-- name: make setup_storage directory
-  file: path=/opt/setup_storage state=directory mode=0755
-  tags:
-    - storage
-
-- name: copy setup storage scripts
-  copy: src={{ item }} dest=/opt/setup_storage mode=0755
-  with_items:
-    - losetup.sh
-  tags:
-    - storage
-
-- name: set autostart file
-  copy: src=storage dest=/etc/init.d/storage mode=0755
-  tags:
-    - storage
-
-- name: set autostart file for centos
-  copy:
-    src: storage.service
-    dest: /usr/lib/systemd/system/storage.service
-    mode: 0755
-  when: ansible_os_family == "RedHat"
-  tags:
-    - storage
-
-- name: add to boot scripts
-  shell: update-rc.d storage defaults
-  when: ansible_os_family == "Debian"
-  tags:
-    - storage
-
-- name: add to boot scripts
-  shell: |
-    chkconfig --add storage;
-    chkconfig --level 2345 storage on;
-  when: ansible_os_family == 'RedHat'
+- name: load storage.yml
+  include: storage.yml
+  when:
+    - hostvars[inventory_hostname]['groups']['ceph_mon'] is not defined
+    - hostvars[inventory_hostname]['groups']['ceph_osd'] is not defined
   tags:
     - storage
 
 - name: load ceph.yml
   include: ceph.yml
   when:
-    - "{{ hostvars[inventory_hostname]['groups']['ceph_mon'] |length > 0 }}"
-    - "{{ hostvars[inventory_hostname]['groups']['ceph_osd'] | length > 0 }}"
+    - hostvars[inventory_hostname]['groups']['ceph_mon'] is defined and
+      "{{ hostvars[inventory_hostname]['groups']['ceph_mon'] | length > 0 }}"
+    - hostvars[inventory_hostname]['groups']['ceph_osd'] is defined and
+      "{{ hostvars[inventory_hostname]['groups']['ceph_osd'] | length > 0 }}"
   tags:
     - storage
 
diff --git a/deploy/adapters/ansible/roles/storage/tasks/storage.yml b/deploy/adapters/ansible/roles/storage/tasks/storage.yml
new file mode 100755 (executable)
index 0000000..b054be9
--- /dev/null
@@ -0,0 +1,68 @@
+##############################################################################
+# Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+- name: check if physical device exists
+  stat: path={{ physical_device }}
+  register: status
+  tags:
+    - storage
+
+- name: load loop.yml
+  include: loop.yml
+  when: status.stat.exists == False or status.stat.isblk == False
+  tags:
+    - storage
+
+- name: load real.yml
+  include: real.yml
+  when: status.stat.exists == True and status.stat.isblk == True
+  tags:
+    - storage
+
+- name: make setup_storage directory
+  file: path=/opt/setup_storage state=directory mode=0755
+  tags:
+    - storage
+
+- name: copy setup storage scripts
+  copy: src={{ item }} dest=/opt/setup_storage mode=0755
+  with_items:
+    - losetup.sh
+  tags:
+    - storage
+
+- name: set autostart file
+  copy: src=storage dest=/etc/init.d/storage mode=0755
+  tags:
+    - storage
+
+- name: set autostart file for centos
+  copy:
+    src: storage.service
+    dest: /usr/lib/systemd/system/storage.service
+    mode: 0755
+  when: ansible_os_family == "RedHat"
+  tags:
+    - storage
+
+- name: add to boot scripts
+  shell: update-rc.d storage defaults
+  when: ansible_os_family == "Debian"
+  tags:
+    - storage
+
+- name: add to boot scripts
+  shell: |
+    chkconfig --add storage;
+    chkconfig --level 2345 storage on;
+  when: ansible_os_family == 'RedHat'
+  tags:
+    - storage
+
+- meta: flush_handlers