From 7892e50aa22ee6eb4c02a85aca67b85f5111c27e Mon Sep 17 00:00:00 2001 From: Bai Date: Thu, 29 Jul 2021 14:53:04 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20session.Task=20model=20add=20`kwargs`?= =?UTF-8?q?=20field=20(=E8=AE=B0=E5=BD=95kill=5Fsession=E7=9A=84=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=90=8D=E7=A7=B0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/terminal/api/task.py | 6 ++++-- apps/terminal/migrations/0038_task_kwargs.py | 18 ++++++++++++++++++ apps/terminal/models/task.py | 1 + 3 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 apps/terminal/migrations/0038_task_kwargs.py diff --git a/apps/terminal/api/task.py b/apps/terminal/api/task.py index d030b80a2..33f4997bd 100644 --- a/apps/terminal/api/task.py +++ b/apps/terminal/api/task.py @@ -31,7 +31,9 @@ class KillSessionAPI(APIView): if session and not session.is_finished: validated_session.append(session_id) self.model.objects.create( - name="kill_session", args=session.id, - terminal=session.terminal, + name="kill_session", args=session.id, terminal=session.terminal, + kwargs={ + 'terminated_by_user': str(request.user) + } ) return Response({"ok": validated_session}) diff --git a/apps/terminal/migrations/0038_task_kwargs.py b/apps/terminal/migrations/0038_task_kwargs.py new file mode 100644 index 000000000..389a5586b --- /dev/null +++ b/apps/terminal/migrations/0038_task_kwargs.py @@ -0,0 +1,18 @@ +# Generated by Django 3.1.6 on 2021-07-29 06:06 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('terminal', '0037_auto_20210623_1748'), + ] + + operations = [ + migrations.AddField( + model_name='task', + name='kwargs', + field=models.JSONField(default=dict, verbose_name='Kwargs'), + ), + ] diff --git a/apps/terminal/models/task.py b/apps/terminal/models/task.py index c863c9f77..5f1f3f0fe 100644 --- a/apps/terminal/models/task.py +++ b/apps/terminal/models/task.py @@ -15,6 +15,7 @@ class Task(models.Model): id = models.UUIDField(default=uuid.uuid4, primary_key=True) name = models.CharField(max_length=128, choices=NAME_CHOICES, verbose_name=_("Name")) args = models.CharField(max_length=1024, verbose_name=_("Args")) + kwargs = models.JSONField(default=dict, verbose_name=_("Kwargs")) terminal = models.ForeignKey(Terminal, null=True, on_delete=models.SET_NULL) is_finished = models.BooleanField(default=False) date_created = models.DateTimeField(auto_now_add=True)