From f6dbec1436c13c3d9a79eb0cbc088e99b9962a65 Mon Sep 17 00:00:00 2001 From: halcyon <864072399@qq.com> Date: Wed, 2 Dec 2015 23:39:17 +0800 Subject: [PATCH] day update --- jasset/asset_api.py | 11 +- jasset/views.py | 14 +++ jumpserver/templatetags/mytags.py | 13 +++ templates/jasset/asset_detail.html | 157 ++++++++++++++++++----------- templates/jasset/asset_list.html | 15 ++- 5 files changed, 139 insertions(+), 71 deletions(-) diff --git a/jasset/asset_api.py b/jasset/asset_api.py index 2c8446f70..1e8083062 100644 --- a/jasset/asset_api.py +++ b/jasset/asset_api.py @@ -312,7 +312,14 @@ def get_ansible_asset_info(asset_ip, setup_info): disk_need = {} for disk_name, disk_info in disk_all.iteritems(): if disk_name.startswith('sd') or disk_name.startswith('hd') or disk_name.startswith('vd'): - disk_need[disk_name] = disk_info.get("size") + disk_size = disk_info.get("size") + if 'M' in disk_size: + disk_format = round(float(disk_size[:-2]) / 1000, 0) + elif 'T' in disk_size: + disk_format = round(float(disk_size[:-2]) * 1000, 0) + else: + disk_format = float(disk_size) + disk_need[disk_name] = disk_format all_ip = setup_info.get("ansible_all_ipv4_addresses") other_ip_list = all_ip.remove(asset_ip) if asset_ip in all_ip else [] other_ip = ','.join(other_ip_list) if other_ip_list else '' @@ -325,7 +332,7 @@ def get_ansible_asset_info(asset_ip, setup_info): cpu = cpu_type + ' * ' + unicode(cpu_cores) memory = setup_info.get("ansible_memtotal_mb") try: - memory_format = round((int(memory) / 1000), 1) + memory_format = int(round((int(memory) / 1000), 0)) except Exception: memory_format = memory disk = disk_need diff --git a/jasset/views.py b/jasset/views.py index dff5621d8..ac8f166dc 100644 --- a/jasset/views.py +++ b/jasset/views.py @@ -6,6 +6,7 @@ from jumpserver.api import * from jumpserver.models import Setting from jasset.forms import AssetForm, IdcForm from jasset.models import Asset, IDC, AssetGroup, ASSET_TYPE, ASSET_STATUS +from jperm.perm_api import get_group_asset_perm from jperm.ansible_api import Tasks, MyRunner from jperm.perm_api import gen_resource @@ -410,6 +411,19 @@ def asset_detail(request): header_title, path1, path2 = u'主机详细信息', u'资产管理', u'主机详情' asset_id = request.GET.get('id', '') asset = get_object(Asset, id=asset_id) + perm_info = get_group_asset_perm(asset) + log = Log.objects.filter(host=asset.hostname) + if perm_info: + user_perm = [] + for perm, value in perm_info.items(): + if perm == 'user': + for user, role_dic in value.items(): + user_perm.append([user, role_dic.get('role', '')]) + elif perm == 'user_group': + user_group_perm = value + elif perm == 'rule': + user_rule_perm = value + asset_record = AssetRecord.objects.filter(asset=asset).order_by('-alert_time') return my_render('jasset/asset_detail.html', locals(), request) diff --git a/jumpserver/templatetags/mytags.py b/jumpserver/templatetags/mytags.py index b23a14b96..880fd2b12 100644 --- a/jumpserver/templatetags/mytags.py +++ b/jumpserver/templatetags/mytags.py @@ -277,3 +277,16 @@ def get_push_info(push_id, arg): @register.filter(name='get_cpu_core') def get_cpu_core(cpu_info): return cpu_info.split('* ')[1] if cpu_info else '' + +@register.filter(name='get_disk_info') +def get_disk_info(disk_info): + try: + disk_size = 0 + if disk_info: + disk_dic = ast.literal_eval(disk_info) + for disk, size in disk_dic.items(): + disk_size += size + disk_size = int(disk_size) + except Exception: + disk_size = '' + return disk_size diff --git a/templates/jasset/asset_detail.html b/templates/jasset/asset_detail.html index 7109888eb..c312ac01d 100644 --- a/templates/jasset/asset_detail.html +++ b/templates/jasset/asset_detail.html @@ -186,26 +186,65 @@
-

主机所有授权的用户

- 包含了此主机所有授权的用户. +

主机所有授权的信息

+ 包含了此主机所有授权的信息.
-{#
#} -{# #} -{# {% if user_permed_list %}#} -{# {% for user in user_permed_list %}#} -{# #} -{# #} -{# #} -{# #} -{# #} -{# {% endfor %}#} -{# {% else %}#} -{#

(暂无)

#} -{# {% endif %}#} -{#
{{ user.name }}{{ user.dept.name }}详情
#} -{#
#} +
+ {% if perm_info %} + +

授权用户信息

+ + + {% for perm in user_perm %} + + + + + {% endfor %} +
授权用户系统角色
{{ perm.0 }} + + {% if perm.1 %} + {% for role in perm.1 %} + + + + {% endfor %} + {% endif %} +
{{ role }}
+
+ {% if user_group_perm %} + +

授权用户组信息

+ + + {% for user_group in user_group_perm %} + + + + + {% endfor %} +
授权用户组组详情
{{ user_group }}详情
+ {% endif %} + + {% if user_rule_perm %} + +

授权规则信息

+ + + {% for rule in user_rule_perm %} + + + + + {% endfor %} +
授权规则详情
{{ rule }}详情
+ {% endif %} + {% else %} +

(暂无)

+ {% endif %} +
@@ -275,49 +314,47 @@ 此主机最近一周用户登录信息.
-{# {% if log %}#} -{# {% for l in log %}#} -{#
#} -{#
#} -{#
#} -{# #} -{# {{ l.user }}#} -{#
#} -{# {{l.dept_name}}#} -{#
#} -{#
#} -{#

详细信息

#} -{#

来源IP: {{ l.remote_ip }}

#} -{#

开始: {{ l.start_time |date:"Y-m-d H:i:s" }}

#} -{#

结束: {{ l.end_time |date:"Y-m-d H:i:s" }}

#} -{#
#} -{#
#} -{#
#} -{# {% endfor %}#} -{# #} -{# diff --git a/templates/jasset/asset_list.html b/templates/jasset/asset_list.html index 3f9c6c6cf..b47f7ee24 100644 --- a/templates/jasset/asset_list.html +++ b/templates/jasset/asset_list.html @@ -121,22 +121,19 @@ - {{ asset.hostname|default_if_none:"" }} + {{ asset.hostname|default_if_none:"" }} {{ asset.ip|default_if_none:"" }} {{ asset.idc.name|default_if_none:"" }} {{ asset.group.all|group_str2 }} {# {{ asset.cpu }}|{{ asset.memory }}|{{ asset.disk }}#} {{ asset.system_type|default_if_none:"" }}{{ asset.system_version|default_if_none:"" }} {{ asset.cpu|get_cpu_core }} - {{ asset.memory }}{% if asset.memory %}G{% endif %} - {{ asset.disk }} + {{ asset.memory }}{% if asset.memory %}G{% endif %} + {{ asset.disk|get_disk_info }}{% if asset.memory %}G{% endif %} - 详情 - {% ifnotequal session_role_id 0 %} - 编辑 - 连接 - 删除 - {% endifnotequal %} + 编辑 + 连接 + 删除 {% endfor %}