summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Gugino <mgugino@redhat.com>2017-10-10 19:26:21 -0400
committerMichael Gugino <mgugino@redhat.com>2017-10-11 08:55:07 -0400
commit090ba0dbd9bd31be49b66d996a61b936773d65f1 (patch)
tree9146669d44cf0ad4a69adda910ab02f1cfc2a497
parentaf04da3ae11cfe5cc80de214a4ec665f1d1676b1 (diff)
downloadopenshift-090ba0dbd9bd31be49b66d996a61b936773d65f1.tar.gz
openshift-090ba0dbd9bd31be49b66d996a61b936773d65f1.tar.bz2
openshift-090ba0dbd9bd31be49b66d996a61b936773d65f1.tar.xz
openshift-090ba0dbd9bd31be49b66d996a61b936773d65f1.zip
Ensure docker service status actually changes
Currently, docker is started during the docker role. If docker is started during the run of the role, the handler to restart docker is not triggered to prevent excess restarts of the docker service. The systemd docker that starts the docker service may report the result of the task as 'changed' even though docker is already running and the state of the service itself does not change. This commit checks the status of the docker service before starting it to ensure that docker was not in an 'active' state according to systemd. If the docker service is already in the 'active' state, the restart handler will trigger and restart docker at the end of the run of the role. Fixes: https://github.com/openshift/origin/issues/16709
-rw-r--r--roles/docker/tasks/package_docker.yml9
1 files changed, 8 insertions, 1 deletions
diff --git a/roles/docker/tasks/package_docker.yml b/roles/docker/tasks/package_docker.yml
index dbe0b0d28..888ae40e7 100644
--- a/roles/docker/tasks/package_docker.yml
+++ b/roles/docker/tasks/package_docker.yml
@@ -139,6 +139,13 @@
notify:
- restart docker
+# The following task is needed as the systemd module may report a change in
+# state even though docker is already running.
+- name: Detect if docker is already started
+ command: "systemctl show docker -p ActiveState"
+ changed_when: False
+ register: r_docker_already_running_result
+
- name: Start the Docker service
systemd:
name: docker
@@ -151,7 +158,7 @@
delay: 30
- set_fact:
- docker_service_status_changed: "{{ r_docker_package_docker_start_result | changed }}"
+ docker_service_status_changed: "{{ (r_docker_package_docker_start_result | changed) and (r_docker_already_running_result.stdout != 'ActiveState=active' ) }}"
- name: Check for credentials file for registry auth
stat: