From 26cda587d65e7b3d419678c95de63f63b6b5c769 Mon Sep 17 00:00:00 2001
From: Nico Vermaas <vermaas@astron.nl>
Date: Mon, 11 Apr 2022 13:26:49 +0200
Subject: [PATCH] add 'clear services' button

---
 atdb/taskdatabase/templates/taskdatabase/index.html         | 2 +-
 .../templates/taskdatabase/monitoring_page.html             | 6 +++++-
 atdb/taskdatabase/urls.py                                   | 2 ++
 atdb/taskdatabase/views.py                                  | 6 ++++++
 4 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/atdb/taskdatabase/templates/taskdatabase/index.html b/atdb/taskdatabase/templates/taskdatabase/index.html
index 66d63c06..c0027a5f 100644
--- a/atdb/taskdatabase/templates/taskdatabase/index.html
+++ b/atdb/taskdatabase/templates/taskdatabase/index.html
@@ -34,7 +34,7 @@
         {% include 'taskdatabase/pagination.html' %}
        </div>
     </div>
-    <p class="footer"> Version 1.0.0 (11 apr 2021 - 8:00)
+    <p class="footer"> Version 1.0.0 (11 apr 2021 - 13:00)
 
 </div>
 
diff --git a/atdb/taskdatabase/templates/taskdatabase/monitoring_page.html b/atdb/taskdatabase/templates/taskdatabase/monitoring_page.html
index 98a438e6..6b85c675 100644
--- a/atdb/taskdatabase/templates/taskdatabase/monitoring_page.html
+++ b/atdb/taskdatabase/templates/taskdatabase/monitoring_page.html
@@ -16,7 +16,11 @@
           &nbsp;
           <div class="thumbnail">
                <h5>Health and Status of the LDV services.</h5>
-
+               {% if user.is_superuser %}
+              <p>
+                <a href="{% url 'clear-inactive-services' %}" class="btn btn-secondary btn-sm" role="button"><i class="fas fa-window-close"></i> Clear Services</a>
+              </p>
+              {% endif %}
                <table class="table table-striped">
                    <th>LDV-Service</th><th>Host</th><th>Status</th><th>Timestamp</th><th>Process id</th><th>Description</th>
                    <tbody>
diff --git a/atdb/taskdatabase/urls.py b/atdb/taskdatabase/urls.py
index 9d0a5aaa..b59a7581 100644
--- a/atdb/taskdatabase/urls.py
+++ b/atdb/taskdatabase/urls.py
@@ -70,6 +70,8 @@ urlpatterns = [
     path('monitor/', views.MonitorListViewAPI.as_view(),name='monitor-list-view-api'),
     path('monitor/<int:pk>/', views.MonitorDetailsViewAPI.as_view(),name='monitor-detail-view-api'),
     path('latest_monitor/', views.LatestMonitorListViewAPI.as_view(),name='latest-monitor-detail-view-api'),
+    path('monitor/clear_inactive_services/', views.ClearInactiveServices, name='clear-inactive-services'),
+
 
     # --- custom requests ---
     # /atdb/get_size?status__in=defined,staged
diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py
index 0fc33ba7..cc0bf873 100644
--- a/atdb/taskdatabase/views.py
+++ b/atdb/taskdatabase/views.py
@@ -894,6 +894,12 @@ class LatestMonitorListViewAPI(generics.ListCreateAPIView):
     filter_class = MonitorFilter
 
 
+@login_required
+def ClearInactiveServices(request):
+    LatestMonitor.objects.all().delete()
+    return redirect("/atdb/monitoring")
+
+
 # example: /atdb/job/5/
 class MonitorDetailsViewAPI(generics.RetrieveUpdateDestroyAPIView):
     model = Monitor
-- 
GitLab