From 19e26f63119d9339b8be9d675279e11bc27b59b2 Mon Sep 17 00:00:00 2001
From: root <root@srv8.soctools.grena.ge>
Date: Thu, 19 May 2022 13:14:43 +0400
Subject: [PATCH] change nifi restart commands to cleanup before starting it
 again

---
 roles/build/templates/nifi/Dockerfile.j2 |  2 +-
 roles/nifi/tasks/restart.yml             | 20 ++++++++++++++++++--
 2 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/roles/build/templates/nifi/Dockerfile.j2 b/roles/build/templates/nifi/Dockerfile.j2
index 63c5174..f85cf47 100644
--- a/roles/build/templates/nifi/Dockerfile.j2
+++ b/roles/build/templates/nifi/Dockerfile.j2
@@ -97,7 +97,7 @@ WORKDIR ${NIFI_HOME}
 # thus normal shell processing does not happen:
 # https://docs.docker.com/engine/reference/builder/#exec-form-entrypoint-example
 USER root
-RUN yum install -y supervisor rsync
+RUN yum install -y supervisor rsync python2-psutil
 RUN yum clean all
 COPY nifisupervisord.conf /etc/supervisord.conf
 ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
diff --git a/roles/nifi/tasks/restart.yml b/roles/nifi/tasks/restart.yml
index d5434f2..23b7983 100644
--- a/roles/nifi/tasks/restart.yml
+++ b/roles/nifi/tasks/restart.yml
@@ -1,6 +1,22 @@
 ---
 
-- name: Restart NiFi
+- name: Getting pids for nifi
+  pids:
+      name: nifi
+  register: pids_of_nifi
+
+- name: Stop NiFi
+  remote_user: root
+  command: "supervisorctl stop nifi"
+
+- name: Check nifi processes
+  remote_user: root
+  wait_for:
+    path: /proc/{{ item }}/status
+    state: absent
+  with_items: "{{ pids_of_nifi.pids }}"
+
+- name: Start NiFi
   remote_user: root
-  command: "supervisorctl restart nifi"
+  command: "supervisorctl start nifi"
 
-- 
GitLab