Skip to content
Snippets Groups Projects
Commit 663d98de authored by Nico Vermaas's avatar Nico Vermaas
Browse files

Merge branch 'SDC-496-service-monitor' into 'master'

Merge branch 'master' into 'SDC-496-service-monitor'

See merge request !172
parents 16fee653 7e5f9761
No related branches found
No related tags found
3 merge requests!176Master,!173https://support.astron.nl/jira/browse/SDC-496,!172Merge branch 'master' into 'SDC-496-service-monitor'
Pipeline #24215 passed
# Generated by Django 3.1.4 on 2022-01-27 13:56
import datetime
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('taskdatabase', '0008_postprocessingrule'),
]
operations = [
migrations.CreateModel(
name='Monitor',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(default='unknown', max_length=50)),
('type', models.CharField(blank=True, default='ldv-service', max_length=20, null=True)),
('timestamp', models.DateTimeField(blank=True, default=datetime.datetime.utcnow)),
('hostname', models.CharField(default='unknown', max_length=50)),
('process_id', models.IntegerField(null=True)),
('description', models.CharField(blank=True, max_length=100, null=True)),
('new_status', models.CharField(default='defining', max_length=50, null=True)),
('metadata', models.JSONField(blank=True, null=True)),
],
),
migrations.AlterField(
model_name='task',
name='task_type',
field=models.CharField(default='regular', max_length=20),
),
]
# Generated by Django 3.1.4 on 2022-01-27 13:58
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('taskdatabase', '0009_auto_20220127_1456'),
]
operations = [
migrations.RenameField(
model_name='monitor',
old_name='new_status',
new_name='status',
),
migrations.AlterField(
model_name='monitor',
name='description',
field=models.CharField(blank=True, max_length=255, null=True),
),
]
...@@ -125,3 +125,14 @@ class PostProcessingRule(models.Model): ...@@ -125,3 +125,14 @@ class PostProcessingRule(models.Model):
# relationships # relationships
workflow_to_process = models.ForeignKey(Workflow, related_name='to_process', on_delete=models.SET_NULL, null=True, blank=True) workflow_to_process = models.ForeignKey(Workflow, related_name='to_process', on_delete=models.SET_NULL, null=True, blank=True)
workflow_to_apply = models.ForeignKey(Workflow, related_name='to_apply',on_delete=models.SET_NULL, null=True, blank=True) workflow_to_apply = models.ForeignKey(Workflow, related_name='to_apply',on_delete=models.SET_NULL, null=True, blank=True)
class Monitor(models.Model):
name = models.CharField(max_length=50, default="unknown")
type = models.CharField(max_length=20, default="ldv-service", null=True, blank=True)
timestamp = models.DateTimeField(default=datetime.utcnow, blank=True)
hostname = models.CharField(max_length=50, default="unknown")
process_id = models.IntegerField(null=True)
description = models.CharField(max_length=255, blank=True, null=True)
status = models.CharField(max_length=50, default="defining", null=True)
metadata = models.JSONField(null=True, blank=True)
\ No newline at end of file
from rest_framework import serializers from rest_framework import serializers
from .models import Status, Task, Workflow, LogEntry, Configuration, Job, PostProcessingRule from .models import Status, Task, Workflow, LogEntry, Configuration, Job, PostProcessingRule, Monitor
...@@ -168,4 +168,11 @@ class PostProcessingRuleSerializer(serializers.ModelSerializer): ...@@ -168,4 +168,11 @@ class PostProcessingRuleSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = PostProcessingRule model = PostProcessingRule
fields = "__all__"
class MonitorSerializer(serializers.ModelSerializer):
class Meta:
model = Monitor
fields = "__all__" fields = "__all__"
\ No newline at end of file
...@@ -80,7 +80,7 @@ ...@@ -80,7 +80,7 @@
{% include 'taskdatabase/pagination.html' %} {% include 'taskdatabase/pagination.html' %}
</div> </div>
</div> </div>
<p class="footer"> Version 1.0.0 (27 jan 2021 - 14:00) <p class="footer"> Version 1.0.0 (27 jan 2021 - 15:00)
</div> </div>
......
...@@ -53,6 +53,9 @@ urlpatterns = [ ...@@ -53,6 +53,9 @@ urlpatterns = [
path('postprocessing/', views.PostProcessingRuleListViewAPI.as_view()), path('postprocessing/', views.PostProcessingRuleListViewAPI.as_view()),
path('postprocessing/<int:pk>/', views.PostProcessingRuleDetailsViewAPI.as_view(), name='postprocessing-detail-view-api'), path('postprocessing/<int:pk>/', views.PostProcessingRuleDetailsViewAPI.as_view(), name='postprocessing-detail-view-api'),
path('monitor/', views.MonitorListViewAPI.as_view()),
path('monitor/<int:pk>/', views.MonitorDetailsViewAPI.as_view(),name='monitor-detail-view-api'),
# --- custom requests --- # --- custom requests ---
# /atdb/get_size?status__in=defined,staged # /atdb/get_size?status__in=defined,staged
path('tasks/get_size/', views.GetSizeView.as_view(), name='get-size-view'), path('tasks/get_size/', views.GetSizeView.as_view(), name='get-size-view'),
......
...@@ -22,7 +22,7 @@ from django.shortcuts import render, redirect ...@@ -22,7 +22,7 @@ from django.shortcuts import render, redirect
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.conf import settings from django.conf import settings
from .models import Task, Status, Workflow, LogEntry, Configuration, Job, PostProcessingRule from .models import Task, Status, Workflow, LogEntry, Configuration, Job, PostProcessingRule, Monitor
from .tables import TaskTable from .tables import TaskTable
from django.db.models import Q from django.db.models import Q
...@@ -33,7 +33,9 @@ from .serializers import \ ...@@ -33,7 +33,9 @@ from .serializers import \
WorkflowSerializer,\ WorkflowSerializer,\
LogEntrySerializer,\ LogEntrySerializer,\
ConfigurationSerializer,\ ConfigurationSerializer,\
JobSerializer, PostProcessingRuleSerializer JobSerializer, \
PostProcessingRuleSerializer, \
MonitorSerializer
from .services import algorithms from .services import algorithms
...@@ -537,6 +539,24 @@ class PostProcessingRuleDetailsViewAPI(generics.RetrieveUpdateDestroyAPIView): ...@@ -537,6 +539,24 @@ class PostProcessingRuleDetailsViewAPI(generics.RetrieveUpdateDestroyAPIView):
queryset = PostProcessingRule.objects.all() queryset = PostProcessingRule.objects.all()
serializer_class = PostProcessingRuleSerializer serializer_class = PostProcessingRuleSerializer
# example: /atdb/job/
class MonitorListViewAPI(generics.ListCreateAPIView):
model = Monitor
queryset = Monitor.objects.all()
serializer_class = MonitorSerializer
filter_backends = (filters.DjangoFilterBackend,)
#filter_class = PostProcessingFilter
# example: /atdb/job/5/
class MonitorDetailsViewAPI(generics.RetrieveUpdateDestroyAPIView):
model = Monitor
queryset = Monitor.objects.all()
serializer_class = MonitorSerializer
# --- controller resources, triggered by a button in the GUI or directoy with a URL --- # --- controller resources, triggered by a button in the GUI or directoy with a URL ---
# set task status to 'new_status' - called from the GUI # set task status to 'new_status' - called from the GUI
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment