Browse Source

perf: 优化 Session 支持 duration 字段

pull/12844/head
Bai 8 months ago committed by Bryan
parent
commit
cf1e048328
  1. 9
      apps/terminal/models/session/session.py
  2. 3
      apps/terminal/serializers/session.py

9
apps/terminal/models/session/session.py

@ -2,6 +2,7 @@ from __future__ import unicode_literals
import os
import uuid
from datetime import timedelta
from django.conf import settings
from django.core.cache import cache
@ -233,6 +234,14 @@ class Session(OrgModelMixin):
target_ip = instance.get_target_ip() if instance else ''
return target_ip
@property
def duration(self):
date_end = self.date_end or timezone.now()
delta = date_end - self.date_start
# 去掉毫秒的显示
delta = timedelta(seconds=int(delta.total_seconds()))
return str(delta)
@classmethod
def generate_fake(cls, count=100, is_finished=True):
import random

3
apps/terminal/serializers/session.py

@ -37,13 +37,14 @@ class SessionSerializer(BulkOrgResourceModelSerializer):
"user", "asset", "user_id", "asset_id", 'account', 'account_id',
"protocol", 'type', "login_from", "remote_addr",
"is_success", "is_finished", "has_replay", "has_command",
"date_start", "date_end", "comment", "terminal_display", "is_locked",
"date_start", "date_end", "duration", "comment", "terminal_display", "is_locked",
'command_amount', 'error_reason'
]
fields_fk = ["terminal", ]
fields_custom = ["can_replay", "can_join", "can_terminate"]
fields = fields_small + fields_fk + fields_custom
extra_kwargs = {
"Duration": {'label': _('Duration')},
"protocol": {'label': _('Protocol')},
'user_id': {'label': _('User ID')},
'asset_id': {'label': _('Asset ID')},

Loading…
Cancel
Save