소스 검색

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