From ff228e2d88d88e325fa3446434ded71342d9ea3a Mon Sep 17 00:00:00 2001 From: Guillaume Abrioux Date: Wed, 18 Oct 2017 11:43:40 +0200 Subject: [PATCH] mgr: fix broken task on jewel 3a58757 introduced an issue for Jewel deployments, since this role is skipped, `enabled_ceph_mgr_modules.stdout` doesn't exist, therefore, it ends up with an attribute error. Uses `.get()` to retrieve `stdout` with a default value so it won't fail if this attribute doesn't exist (jewel). Signed-off-by: Guillaume Abrioux --- roles/ceph-mgr/tasks/main.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/roles/ceph-mgr/tasks/main.yml b/roles/ceph-mgr/tasks/main.yml index fabef8e08..f017f8892 100644 --- a/roles/ceph-mgr/tasks/main.yml +++ b/roles/ceph-mgr/tasks/main.yml @@ -20,8 +20,12 @@ - name: disable ceph mgr enabled modules command: "{{ docker_exec_cmd_mgr | default('') }} ceph --cluster {{ cluster }} mgr module disable {{ item }}" - with_items: "{{ enabled_ceph_mgr_modules.stdout | from_json }}" + # When ceph release is jewel, ceph-mgr role is skipped. It means, the enabled_ceph_mgr_modules doesn't contain 'stdout' attribute. + # Therefore, we need to get a default value which can be used up by from_json filter. + with_items: "{{ enabled_ceph_mgr_modules.get('stdout', '{}') | from_json }}" delegate_to: "{{ groups[mon_group_name][0] }}" + when: + - not enabled_ceph_mgr_modules.get('skipped') - name: add modules to ceph-mgr command: "{{ docker_exec_cmd_mgr | default('') }} ceph --cluster {{ cluster }} mgr module enable {{ item }}"