From 9dabcafe1a8c4eab58412ca74d66e2d2e0b62042 Mon Sep 17 00:00:00 2001
From: root <root@srv3.soctools.grena.ge>
Date: Tue, 13 Sep 2022 17:33:27 +0400
Subject: [PATCH] add option to stop docker containers without destroy

---
 roles/docker/tasks/cassandra.yml     | 11 +++++++++--
 roles/docker/tasks/cortex.yml        | 12 ++++++++++--
 roles/docker/tasks/haproxy.yml       |  9 ++++++++-
 roles/docker/tasks/keycloak.yml      | 11 +++++++++--
 roles/docker/tasks/misp.yml          |  9 ++++++++-
 roles/docker/tasks/mysql.yml         |  9 ++++++++-
 roles/docker/tasks/networkremove.yml |  2 +-
 roles/docker/tasks/nifi.yml          | 11 +++++++++--
 roles/docker/tasks/odfees.yml        | 11 +++++++++--
 roles/docker/tasks/odfekibana.yml    | 11 +++++++++--
 roles/docker/tasks/thehive.yml       | 11 +++++++++--
 roles/docker/tasks/zookeeper.yml     | 10 ++++++++--
 soctools.yml                         |  2 +-
 13 files changed, 98 insertions(+), 21 deletions(-)

diff --git a/roles/docker/tasks/cassandra.yml b/roles/docker/tasks/cassandra.yml
index bfb41cc..2269b8b 100644
--- a/roles/docker/tasks/cassandra.yml
+++ b/roles/docker/tasks/cassandra.yml
@@ -15,11 +15,18 @@
   tags:
     - start-docker-containers
 
-- name: Disconnect cassandra containers from network and remove
+- name: Stop cassandra containers
   docker_container:
     name: "{{ item }}"
-    state: absent
+    state: stopped
   with_items: "{{ groups['cassandra'] }}"
   tags:
     - stop-docker-containers
 
+- name: Destroy cassandra containers
+  docker_container:
+    name: "{{ item }}"
+    state: absent
+  with_items: "{{ groups['cassandra'] }}"
+  tags:
+    - destroy-docker-containers
diff --git a/roles/docker/tasks/cortex.yml b/roles/docker/tasks/cortex.yml
index ec2ff38..cad6573 100644
--- a/roles/docker/tasks/cortex.yml
+++ b/roles/docker/tasks/cortex.yml
@@ -15,10 +15,18 @@
   tags:
     - start-docker-containers
 
-- name: Disconnect cortex containers from network and remove
+- name: Stop cortex containers
   docker_container:
     name: "{{ item }}"
-    state: absent
+    state: stopped
   with_items: "{{ groups['cortex'] }}"
   tags:
     - stop-docker-containers
+
+- name: Destroy cortex containers
+  docker_container:
+    name: "{{ item }}"
+    state: absent
+  with_items: "{{ groups['cortex'] }}"
+  tags:
+    - destroy-docker-containers
diff --git a/roles/docker/tasks/haproxy.yml b/roles/docker/tasks/haproxy.yml
index 6353030..f4d25cb 100644
--- a/roles/docker/tasks/haproxy.yml
+++ b/roles/docker/tasks/haproxy.yml
@@ -25,9 +25,16 @@
   tags:
     - start-docker-containers
 
+- name: Stop haproxy container
+  docker_container:
+    name: "{{ haproxy_name }}"
+    state: stopped
+  tags:
+    - stop-docker-containers
+
 - name: Destroy haproxy container
   docker_container:
     name: "{{ haproxy_name }}"
     state: absent
   tags:
-    - stop-docker-containers
+    - destroy-docker-containers
diff --git a/roles/docker/tasks/keycloak.yml b/roles/docker/tasks/keycloak.yml
index 7193449..8711dfc 100644
--- a/roles/docker/tasks/keycloak.yml
+++ b/roles/docker/tasks/keycloak.yml
@@ -13,11 +13,18 @@
   tags:
     - start-docker-containers
 
-- name: Disconnect keycloak containers from network and remove
+- name: Stop keycloak containers
   docker_container:
     name: "{{ item }}"
-    state: absent
+    state: stopped
   with_items: "{{ groups['keycloakcontainers'] }}"
   tags:
     - stop-docker-containers
 
+- name: Destroy keycloak containers
+  docker_container:
+    name: "{{ item }}"
+    state: absent
+  with_items: "{{ groups['keycloakcontainers'] }}"
+  tags:
+    - destroy-docker-containers
diff --git a/roles/docker/tasks/misp.yml b/roles/docker/tasks/misp.yml
index acba5ea..61038ef 100644
--- a/roles/docker/tasks/misp.yml
+++ b/roles/docker/tasks/misp.yml
@@ -12,9 +12,16 @@
   tags:
     - start-docker-containers
 
+- name: Stop misp container
+  docker_container:
+    name: "{{ misp_name }}"
+    state: stopped
+  tags:
+    - stop-docker-containers
+
 - name: Destroy misp container
   docker_container:
     name: "{{ misp_name }}"
     state: absent
   tags:
-    - stop-docker-containers
+    - destroy-docker-containers
diff --git a/roles/docker/tasks/mysql.yml b/roles/docker/tasks/mysql.yml
index d7779da..adcebee 100644
--- a/roles/docker/tasks/mysql.yml
+++ b/roles/docker/tasks/mysql.yml
@@ -13,9 +13,16 @@
   tags:
     - start-docker-containers
 
+- name: Stop mysql container
+  docker_container:
+    name: "{{ mysql_name }}"
+    state: stopped
+  tags:
+    - stop-docker-containers
+
 - name: Destroy mysql container
   docker_container:
     name: "{{ mysql_name }}"
     state: absent
   tags:
-    - stop-docker-containers
+    - destroy-docker-containers
diff --git a/roles/docker/tasks/networkremove.yml b/roles/docker/tasks/networkremove.yml
index 5a217ce..eb78813 100644
--- a/roles/docker/tasks/networkremove.yml
+++ b/roles/docker/tasks/networkremove.yml
@@ -5,5 +5,5 @@
     name: "{{ soctools_netname }}"
     state: absent
   tags:
-    - stop-docker-containers
+    - destroy-docker-containers
 
diff --git a/roles/docker/tasks/nifi.yml b/roles/docker/tasks/nifi.yml
index fa32278..3df0042 100644
--- a/roles/docker/tasks/nifi.yml
+++ b/roles/docker/tasks/nifi.yml
@@ -15,11 +15,18 @@
   tags:
     - start-docker-containers
 
-- name: Disconnect Nifi containers from network and remove
+- name: Stop Nifi containers
   docker_container:
     name: "{{ item }}"
-    state: absent
+    state: stopped
   with_items: "{{ groups['nificontainers'] }}"
   tags:
     - stop-docker-containers
 
+- name: Destroy Nifi containers
+  docker_container:
+    name: "{{ item }}"
+    state: absent
+  with_items: "{{ groups['nificontainers'] }}"
+  tags:
+    - destroy-docker-containers
diff --git a/roles/docker/tasks/odfees.yml b/roles/docker/tasks/odfees.yml
index 7ae76b5..9d09c30 100644
--- a/roles/docker/tasks/odfees.yml
+++ b/roles/docker/tasks/odfees.yml
@@ -15,11 +15,18 @@
   tags:
     - start-docker-containers
 
-- name: Disconnect odfe elasticsearch containers from network and remove
+- name: Stop odfe elasticsearch containers
   docker_container:
     name: "{{ item }}"
-    state: absent
+    state: stopped
   with_items: "{{ groups['odfeescontainers'] }}"
   tags:
     - stop-docker-containers
 
+- name: Destroy odfe elasticsearch containers
+  docker_container:
+    name: "{{ item }}"
+    state: absent
+  with_items: "{{ groups['odfeescontainers'] }}"
+  tags:
+    - destroy-docker-containers
diff --git a/roles/docker/tasks/odfekibana.yml b/roles/docker/tasks/odfekibana.yml
index 8426ce6..877946c 100644
--- a/roles/docker/tasks/odfekibana.yml
+++ b/roles/docker/tasks/odfekibana.yml
@@ -13,11 +13,18 @@
   tags:
     - start-docker-containers
 
-- name: Disconnect odfe kibana containers from network and remove
+- name: Stop odfe kibana containers
   docker_container:
     name: "{{ item }}"
-    state: absent
+    state: stopped
   with_items: "{{ groups['odfekibanacontainers'] }}"
   tags:
     - stop-docker-containers
 
+- name: Destroy odfe kibana containers
+  docker_container:
+    name: "{{ item }}"
+    state: absent
+  with_items: "{{ groups['odfekibanacontainers'] }}"
+  tags:
+    - destroy-docker-containers
diff --git a/roles/docker/tasks/thehive.yml b/roles/docker/tasks/thehive.yml
index 18dc840..2a5a778 100644
--- a/roles/docker/tasks/thehive.yml
+++ b/roles/docker/tasks/thehive.yml
@@ -13,11 +13,18 @@
   tags:
     - start-docker-containers
 
-- name: Disconnect thehive containers from network and remove
+- name: Stop thehive containers
   docker_container:
     name: "{{ item }}"
-    state: absent
+    state: stopped
   with_items: "{{ groups['thehive'] }}"
   tags:
     - stop-docker-containers
 
+- name: Destroy thehive containers
+  docker_container:
+    name: "{{ item }}"
+    state: absent
+  with_items: "{{ groups['thehive'] }}"
+  tags:
+    - destroy-docker-container
diff --git a/roles/docker/tasks/zookeeper.yml b/roles/docker/tasks/zookeeper.yml
index d0b3f71..c6e4fd5 100644
--- a/roles/docker/tasks/zookeeper.yml
+++ b/roles/docker/tasks/zookeeper.yml
@@ -13,10 +13,16 @@
   tags:
     - start-docker-containers
 
-- name: Remove zookeeper
+- name: Stop zookeeper Container
   docker_container:
     name: "{{ zookeeper_name }}"
-    state: absent
+    state: stopped
   tags:
     - stop-docker-containers
 
+- name: Destroy zookeeper Container
+  docker_container:
+    name: "{{ zookeeper_name }}"
+    state: absent
+  tags:
+    - destroy-docker-containers
diff --git a/soctools.yml b/soctools.yml
index 4636ad1..acd3b50 100644
--- a/soctools.yml
+++ b/soctools.yml
@@ -2,7 +2,7 @@
 
 - name: Manage Docker Containers
   import_playbook: dockercontainers.yml
-  when: "'start-docker-containers' in ansible_run_tags or 'stop-docker-containers' in ansible_run_tags"
+  when: "'start-docker-containers' in ansible_run_tags or 'stop-docker-containers' in ansible_run_tags or 'destroy-docker-containers' in ansible_run_tags"
 
 - name: Init and start soctools cluster
   import_playbook: initsoctools.yml
-- 
GitLab