mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-18 08:20:51 +00:00
Config (#3502)
* [Update] 修改config * [Update] 移动存储设置到到terminal中 * [Update] 修改permission 查看 * [Update] pre merge * [Update] 录像存储 * [Update] 命令存储 * [Update] 添加存储测试可连接性 * [Update] 修改 meta 值的 key 为大写 * [Update] 修改 Terminal 相关 Storage 配置 * [Update] 删除之前获取录像/命令存储的代码 * [Update] 修改导入失败 * [Update] 迁移文件添加default存储 * [Update] 删除之前代码,添加help_text信息 * [Update] 删除之前代码 * [Update] 删除之前代码 * [Update] 抽象命令/录像存储 APIView * [Update] 抽象命令/录像存储 APIView 1 * [Update] 抽象命令/录像存储 DictField * [Update] 抽象命令/录像存储列表页面 * [Update] 修复CustomDictField的bug * [Update] RemoteApp 页面添加 hidden * [Update] 用户页面添加用户关联授权 * [Update] 修改存储测试可连接性 target * [Update] 修改配置 * [Update] 修改存储前端 Form 渲染逻辑 * [Update] 修改存储细节 * [Update] 统一存储类型到 const 文件 * [Update] 修改迁移文件及Model,创建默认存储 * [Update] 修改迁移文件及Model初始化默认数据 * [Update] 修改迁移文件 * [Update] 修改迁移文件 * [Update] 修改迁移文件 * [Update] 修改迁移文件 * [Update] 修改迁移文件 * [Update] 修改迁移文件 * [Update] 修改迁移文件 * [Update] 限制删除默认存储配置,只允许创建扩展的存储类型 * [Update] 修改ip字段长度 * [Update] 修改ip字段长度 * [Update] 修改一些css * [Update] 修改关联 * [Update] 添加操作日志定时清理 * [Update] 修改记录syslog的instance encoder * [Update] 忽略登录产生的操作日志 * [Update] 限制更新存储时不覆盖原有AK SK 等字段 * [Update] 修改迁移文件添加comment字段 * [Update] 修改迁移文件 * [Update] 添加 comment 字段 * [Update] 修改默认存储no -> null * [Update] 修改细节 * [Update] 更新翻译(存储配置 * [Update] 修改定时任务注册,修改系统用户资产、节点关系api * [Update] 添加监控磁盘任务 * [Update] 修改session * [Update] 拆分serializer * [Update] 还原setting原来的manager
This commit is contained in:
5
apps/ops/serializers/__init__.py
Normal file
5
apps/ops/serializers/__init__.py
Normal file
@@ -0,0 +1,5 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
|
||||
from .celery import *
|
||||
from .adhoc import *
|
80
apps/ops/serializers/adhoc.py
Normal file
80
apps/ops/serializers/adhoc.py
Normal file
@@ -0,0 +1,80 @@
|
||||
# ~*~ coding: utf-8 ~*~
|
||||
from __future__ import unicode_literals
|
||||
from rest_framework import serializers
|
||||
from django.shortcuts import reverse
|
||||
|
||||
from ..models import Task, AdHoc, AdHocRunHistory, CommandExecution
|
||||
|
||||
|
||||
class TaskSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Task
|
||||
fields = [
|
||||
'id', 'name', 'interval', 'crontab', 'is_periodic',
|
||||
'is_deleted', 'comment', 'created_by', 'date_created',
|
||||
'versions', 'is_success', 'timedelta', 'assets_amount',
|
||||
'date_updated', 'history_summary',
|
||||
]
|
||||
|
||||
|
||||
class AdHocSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = AdHoc
|
||||
exclude = ('_tasks', '_options', '_hosts', '_become')
|
||||
|
||||
def get_field_names(self, declared_fields, info):
|
||||
fields = super().get_field_names(declared_fields, info)
|
||||
fields.extend(['tasks', 'options', 'hosts', 'become', 'short_id'])
|
||||
return fields
|
||||
|
||||
|
||||
class AdHocRunHistorySerializer(serializers.ModelSerializer):
|
||||
task = serializers.SerializerMethodField()
|
||||
adhoc_short_id = serializers.SerializerMethodField()
|
||||
stat = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = AdHocRunHistory
|
||||
exclude = ('_result', '_summary')
|
||||
|
||||
@staticmethod
|
||||
def get_adhoc_short_id(obj):
|
||||
return obj.adhoc.short_id
|
||||
|
||||
@staticmethod
|
||||
def get_task(obj):
|
||||
return obj.adhoc.task.id
|
||||
|
||||
@staticmethod
|
||||
def get_stat(obj):
|
||||
return {
|
||||
"total": obj.adhoc.hosts.count(),
|
||||
"success": len(obj.summary.get("contacted", [])),
|
||||
"failed": len(obj.summary.get("dark", [])),
|
||||
}
|
||||
|
||||
def get_field_names(self, declared_fields, info):
|
||||
fields = super().get_field_names(declared_fields, info)
|
||||
fields.extend(['summary', 'short_id'])
|
||||
return fields
|
||||
|
||||
|
||||
class CommandExecutionSerializer(serializers.ModelSerializer):
|
||||
result = serializers.JSONField(read_only=True)
|
||||
log_url = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = CommandExecution
|
||||
fields = [
|
||||
'id', 'hosts', 'run_as', 'command', 'result', 'log_url',
|
||||
'is_finished', 'date_created', 'date_finished'
|
||||
]
|
||||
read_only_fields = [
|
||||
'result', 'is_finished', 'log_url', 'date_created',
|
||||
'date_finished'
|
||||
]
|
||||
|
||||
@staticmethod
|
||||
def get_log_url(obj):
|
||||
return reverse('api-ops:celery-task-log', kwargs={'pk': obj.id})
|
||||
|
29
apps/ops/serializers/celery.py
Normal file
29
apps/ops/serializers/celery.py
Normal file
@@ -0,0 +1,29 @@
|
||||
# ~*~ coding: utf-8 ~*~
|
||||
from __future__ import unicode_literals
|
||||
from rest_framework import serializers
|
||||
|
||||
from django_celery_beat.models import PeriodicTask
|
||||
|
||||
__all__ = [
|
||||
'CeleryResultSerializer', 'CeleryTaskSerializer',
|
||||
'CeleryPeriodTaskSerializer'
|
||||
]
|
||||
|
||||
|
||||
class CeleryResultSerializer(serializers.Serializer):
|
||||
id = serializers.UUIDField()
|
||||
result = serializers.JSONField()
|
||||
state = serializers.CharField(max_length=16)
|
||||
|
||||
|
||||
class CeleryTaskSerializer(serializers.Serializer):
|
||||
pass
|
||||
|
||||
|
||||
class CeleryPeriodTaskSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = PeriodicTask
|
||||
fields = [
|
||||
'name', 'task', 'enabled', 'description',
|
||||
'last_run_at', 'total_run_count'
|
||||
]
|
Reference in New Issue
Block a user