Browse Source

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 years ago
parent
commit
6aee40fc1f

+ 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