浏览代码

Protect against missing commands

Rather than trying to keep track of state everywhere, lets just check
to see if the command exist before we attempt to run them
Scott Dodson 8 年之前
父节点
当前提交
6aee40fc1f
共有 2 个文件被更改,包括 23 次插入0 次删除
  1. 12 0
      roles/openshift_excluder/tasks/exclude.yml
  2. 11 0
      roles/openshift_excluder/tasks/unexclude.yml

+ 12 - 0
roles/openshift_excluder/tasks/exclude.yml

@@ -3,16 +3,28 @@
 # - exclude_docker_excluder
 # - exclude_openshift_excluder
 - block:
+
+  - name: Check for docker-excluder
+    stat:
+      path: /sbin/{{ openshift.common.service_type }}-docker-excluder
+    register: docker_excluder_stat
   - name: Enable docker excluder
     command: "{{ openshift.common.service_type }}-docker-excluder exclude"
     when:
     - exclude_docker_excluder | default(false) | bool
+    - docker_excluder_stat.stat.exists
 
+  - name: Check for openshift excluder
+    stat:
+      path: /sbin/{{ openshift.common.service_type }}-excluder
+    register: openshift_excluder_stat
   - name: Enable openshift excluder
     command: "{{ openshift.common.service_type }}-excluder exclude"
     # if the openshift override is set, it means the openshift excluder is disabled no matter what
     # if the openshift override is not set, the excluder is set based on enable_openshift_excluder
     when:
     - exclude_openshift_excluder | default(false) | bool
+    - openshift_excluder_stat.stat.exists
+
   when:
   - not openshift.common.is_atomic | bool

+ 11 - 0
roles/openshift_excluder/tasks/unexclude.yml

@@ -3,15 +3,26 @@
 # - unexclude_docker_excluder
 # - unexclude_openshift_excluder
 - block:
+
+  - name: Check for docker-excluder
+    stat:
+      path: /sbin/{{ openshift.common.service_type }}-docker-excluder
+    register: docker_excluder_stat
   - name: disable docker excluder
     command: "{{ openshift.common.service_type }}-docker-excluder unexclude"
     when:
     - unexclude_docker_excluder | default(false) | bool
+    - docker_excluder_stat.stat.exists
 
+  - name: Check for openshift excluder
+    stat:
+      path: /sbin/{{ openshift.common.service_type }}-excluder
+    register: openshift_excluder_stat
   - name: disable openshift excluder
     command: "{{ openshift.common.service_type }}-excluder unexclude"
     when:
     - unexclude_openshift_excluder | default(false) | bool
+    - openshift_excluder_stat.stat.exists
 
   when:
   - not openshift.common.is_atomic | bool