Commit 75319b99 authored by ibuler's avatar ibuler

[Update] 更新ap请求

parent 7f4f67aa
# ~*~ coding: utf-8 ~*~ # ~*~ coding: utf-8 ~*~
from rest_framework_bulk import BulkModelViewSet from rest_framework_bulk import BulkModelViewSet
from rest_framework.views import APIView from rest_framework.views import APIView, Response
from rest_framework.views import Response from rest_framework.generics import RetrieveAPIView
from django.views.generic.detail import SingleObjectMixin from django.views.generic.detail import SingleObjectMixin
from common.utils import get_logger from common.utils import get_logger
from ..hands import IsSuperUser from ..hands import IsSuperUser, IsSuperUserOrAppUser
from ..models import Domain, Gateway from ..models import Domain, Gateway
from ..utils import test_gateway_connectability from ..utils import test_gateway_connectability
from .. import serializers from .. import serializers
...@@ -22,6 +22,16 @@ class DomainViewSet(BulkModelViewSet): ...@@ -22,6 +22,16 @@ class DomainViewSet(BulkModelViewSet):
permission_classes = (IsSuperUser,) permission_classes = (IsSuperUser,)
serializer_class = serializers.DomainSerializer serializer_class = serializers.DomainSerializer
def get_serializer_class(self):
if self.request.query_params.get('gateway'):
return serializers.DomainWithGatewaySerializer
return super().get_serializer_class()
def get_permissions(self):
if self.request.query_params.get('gateway'):
self.permission_classes = (IsSuperUserOrAppUser,)
return super().get_permissions()
class GatewayViewSet(BulkModelViewSet): class GatewayViewSet(BulkModelViewSet):
filter_fields = ("domain",) filter_fields = ("domain",)
...@@ -43,6 +53,3 @@ class GatewayTestConnectionApi(SingleObjectMixin, APIView): ...@@ -43,6 +53,3 @@ class GatewayTestConnectionApi(SingleObjectMixin, APIView):
return Response("ok") return Response("ok")
else: else:
return Response({"failed": e}, status=404) return Response({"failed": e}, status=404)
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
# #
import uuid import uuid
import random
from django.db import models from django.db import models
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
...@@ -20,6 +22,16 @@ class Domain(models.Model): ...@@ -20,6 +22,16 @@ class Domain(models.Model):
def __str__(self): def __str__(self):
return self.name return self.name
def has_gateway(self):
return self.gateway_set.filter(is_active=True).exists()
@property
def gateways(self):
return self.gateway_set.filter(is_active=True)
def random_gateway(self):
return random.choice(self.gateways)
class Gateway(AssetUser): class Gateway(AssetUser):
SSH_PROTOCOL = 'ssh' SSH_PROTOCOL = 'ssh'
...@@ -37,3 +49,4 @@ class Gateway(AssetUser): ...@@ -37,3 +49,4 @@ class Gateway(AssetUser):
def __str__(self): def __str__(self):
return self.name return self.name
...@@ -38,7 +38,7 @@ class AssetGrantedSerializer(serializers.ModelSerializer): ...@@ -38,7 +38,7 @@ class AssetGrantedSerializer(serializers.ModelSerializer):
model = Asset model = Asset
fields = ( fields = (
"id", "hostname", "ip", "port", "system_users_granted", "id", "hostname", "ip", "port", "system_users_granted",
"is_active", "system_users_join", "os", "is_active", "system_users_join", "os", 'domain',
"platform", "comment" "platform", "comment"
) )
......
...@@ -26,4 +26,25 @@ class GatewaySerializer(serializers.ModelSerializer): ...@@ -26,4 +26,25 @@ class GatewaySerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = Gateway model = Gateway
fields = [
'id', 'name', 'ip', 'port', 'protocol', 'username',
'domain', 'is_active', 'date_created', 'date_updated',
'created_by', 'comment',
]
class GatewayWithAuthSerializer(GatewaySerializer):
def get_field_names(self, declared_fields, info):
fields = super().get_field_names(declared_fields, info)
fields.extend(
['password', 'private_key']
)
return fields
class DomainWithGatewaySerializer(serializers.ModelSerializer):
gateways = GatewayWithAuthSerializer(many=True, read_only=True)
class Meta:
model = Domain
fields = '__all__' fields = '__all__'
...@@ -8,7 +8,7 @@ msgid "" ...@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Jumpserver 0.3.3\n" "Project-Id-Version: Jumpserver 0.3.3\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-03-23 14:29+0800\n" "POT-Creation-Date: 2018-03-23 19:50+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: ibuler <ibuler@qq.com>\n" "Last-Translator: ibuler <ibuler@qq.com>\n"
"Language-Team: Jumpserver team<ibuler@qq.com>\n" "Language-Team: Jumpserver team<ibuler@qq.com>\n"
...@@ -29,28 +29,33 @@ msgstr "" ...@@ -29,28 +29,33 @@ msgstr ""
msgid "测试节点下资产是否可连接: {}" msgid "测试节点下资产是否可连接: {}"
msgstr "" msgstr ""
#: assets/forms/asset.py:23 assets/forms/asset.py:54 assets/models/asset.py:52 #: assets/forms/asset.py:24 assets/forms/asset.py:60 assets/models/asset.py:53
#: assets/models/user.py:102 assets/templates/assets/asset_detail.html:183 #: assets/models/user.py:102 assets/templates/assets/asset_detail.html:183
#: assets/templates/assets/asset_detail.html:191 #: assets/templates/assets/asset_detail.html:191
#: assets/templates/assets/system_user_detail.html:166 #: assets/templates/assets/system_user_detail.html:166
msgid "Nodes" msgid "Nodes"
msgstr "节点管理" msgstr "节点管理"
#: assets/forms/asset.py:26 assets/forms/asset.py:57 assets/forms/asset.py:93 #: assets/forms/asset.py:27 assets/forms/asset.py:63 assets/forms/asset.py:103
#: assets/forms/asset.py:97 assets/models/asset.py:56 #: assets/forms/asset.py:107 assets/models/asset.py:57
#: assets/models/cluster.py:19 assets/models/user.py:71 #: assets/models/cluster.py:19 assets/models/user.py:71
#: assets/templates/assets/asset_detail.html:73 templates/_nav.html:25 #: assets/templates/assets/asset_detail.html:73 templates/_nav.html:25
msgid "Admin user" msgid "Admin user"
msgstr "管理用户" msgstr "管理用户"
#: assets/forms/asset.py:29 assets/forms/asset.py:60 assets/models/asset.py:80 #: assets/forms/asset.py:30 assets/forms/asset.py:66 assets/models/asset.py:81
#: assets/templates/assets/asset_create.html:32 #: assets/templates/assets/asset_create.html:33
#: assets/templates/assets/asset_detail.html:220 #: assets/templates/assets/asset_detail.html:220
#: assets/templates/assets/asset_update.html:37 templates/_nav.html:27 #: assets/templates/assets/asset_update.html:38 templates/_nav.html:27
msgid "Labels" msgid "Labels"
msgstr "标签管理" msgstr "标签管理"
#: assets/forms/asset.py:38 assets/forms/asset.py:70 #: assets/forms/asset.py:34 assets/forms/asset.py:70 assets/models/asset.py:52
#: assets/models/domain.py:34
msgid "Domain"
msgstr "网域"
#: assets/forms/asset.py:42 assets/forms/asset.py:79
msgid "" msgid ""
"root or other NOPASSWD sudo privilege user existed in asset,If asset is " "root or other NOPASSWD sudo privilege user existed in asset,If asset is "
"windows or other set any one, more see admin user left menu" "windows or other set any one, more see admin user left menu"
...@@ -58,17 +63,22 @@ msgstr "" ...@@ -58,17 +63,22 @@ msgstr ""
"root或其他拥有NOPASSWD: ALL权限的用户, 如果是windows或其它硬件可以随意设置一" "root或其他拥有NOPASSWD: ALL权限的用户, 如果是windows或其它硬件可以随意设置一"
"个, 更多信息查看左侧 `管理用户` 菜单" "个, 更多信息查看左侧 `管理用户` 菜单"
#: assets/forms/asset.py:41 assets/forms/asset.py:73 #: assets/forms/asset.py:45 assets/forms/asset.py:82
msgid "* required Must set exact system platform, Windows, Linux ..." msgid "* required Must set exact system platform, Windows, Linux ..."
msgstr "* required 必须准确设置操作系统平台,如Windows, Linux ..." msgstr "* required 必须准确设置操作系统平台,如Windows, Linux ..."
#: assets/forms/asset.py:80 assets/forms/asset.py:84 assets/forms/domain.py:16 #: assets/forms/asset.py:46 assets/forms/asset.py:83
msgid ""
"If your have some network not connect with each other, you can set domain"
msgstr ""
#: assets/forms/asset.py:90 assets/forms/asset.py:94 assets/forms/domain.py:16
#: assets/forms/label.py:15 #: assets/forms/label.py:15
#: perms/templates/perms/asset_permission_asset.html:88 users/forms.py:270 #: perms/templates/perms/asset_permission_asset.html:88 users/forms.py:270
msgid "Select assets" msgid "Select assets"
msgstr "选择资产" msgstr "选择资产"
#: assets/forms/asset.py:89 assets/models/asset.py:50 #: assets/forms/asset.py:99 assets/models/asset.py:51
#: assets/models/domain.py:32 assets/templates/assets/admin_user_assets.html:53 #: assets/models/domain.py:32 assets/templates/assets/admin_user_assets.html:53
#: assets/templates/assets/asset_detail.html:69 #: assets/templates/assets/asset_detail.html:69
#: assets/templates/assets/domain_gateway_list.html:58 #: assets/templates/assets/domain_gateway_list.html:58
...@@ -77,16 +87,16 @@ msgstr "选择资产" ...@@ -77,16 +87,16 @@ msgstr "选择资产"
msgid "Port" msgid "Port"
msgstr "端口" msgstr "端口"
#: assets/forms/asset.py:109 assets/templates/assets/asset_create.html:36 #: assets/forms/asset.py:119 assets/templates/assets/asset_create.html:37
msgid "Select labels" msgid "Select labels"
msgstr "选择标签" msgstr "选择标签"
#: assets/forms/asset.py:112 assets/templates/assets/admin_user_detail.html:91 #: assets/forms/asset.py:122 assets/templates/assets/admin_user_detail.html:91
msgid "Select nodes" msgid "Select nodes"
msgstr "选择节点" msgstr "选择节点"
#: assets/forms/domain.py:14 assets/forms/label.py:13 #: assets/forms/domain.py:14 assets/forms/label.py:13
#: assets/models/asset.py:152 assets/templates/assets/admin_user_list.html:25 #: assets/models/asset.py:156 assets/templates/assets/admin_user_list.html:25
#: assets/templates/assets/domain_detail.html:60 #: assets/templates/assets/domain_detail.html:60
#: assets/templates/assets/domain_list.html:15 #: assets/templates/assets/domain_list.html:15
#: assets/templates/assets/label_list.html:16 #: assets/templates/assets/label_list.html:16
...@@ -99,7 +109,7 @@ msgstr "选择节点" ...@@ -99,7 +109,7 @@ msgstr "选择节点"
msgid "Asset" msgid "Asset"
msgstr "资产" msgstr "资产"
#: assets/forms/domain.py:46 assets/forms/user.py:79 assets/forms/user.py:120 #: assets/forms/domain.py:54 assets/forms/user.py:79 assets/forms/user.py:120
#: assets/models/base.py:20 assets/models/cluster.py:18 #: assets/models/base.py:20 assets/models/cluster.py:18
#: assets/models/domain.py:15 assets/models/group.py:20 #: assets/models/domain.py:15 assets/models/group.py:20
#: assets/models/label.py:17 assets/templates/assets/admin_user_detail.html:56 #: assets/models/label.py:17 assets/templates/assets/admin_user_detail.html:56
...@@ -127,7 +137,7 @@ msgstr "资产" ...@@ -127,7 +137,7 @@ msgstr "资产"
msgid "Name" msgid "Name"
msgstr "名称" msgstr "名称"
#: assets/forms/domain.py:47 assets/forms/user.py:80 assets/forms/user.py:121 #: assets/forms/domain.py:55 assets/forms/user.py:80 assets/forms/user.py:121
#: assets/models/base.py:21 assets/templates/assets/admin_user_detail.html:60 #: assets/models/base.py:21 assets/templates/assets/admin_user_detail.html:60
#: assets/templates/assets/admin_user_list.html:24 #: assets/templates/assets/admin_user_list.html:24
#: assets/templates/assets/domain_gateway_list.html:60 #: assets/templates/assets/domain_gateway_list.html:60
...@@ -180,7 +190,7 @@ msgid "" ...@@ -180,7 +190,7 @@ msgid ""
"than 2 system user" "than 2 system user"
msgstr "高优先级的系统用户将会作为默认登录用户" msgstr "高优先级的系统用户将会作为默认登录用户"
#: assets/models/asset.py:48 assets/models/domain.py:31 #: assets/models/asset.py:49 assets/models/domain.py:31
#: assets/templates/assets/_asset_list_modal.html:21 #: assets/templates/assets/_asset_list_modal.html:21
#: assets/templates/assets/admin_user_assets.html:52 #: assets/templates/assets/admin_user_assets.html:52
#: assets/templates/assets/asset_detail.html:61 #: assets/templates/assets/asset_detail.html:61
...@@ -195,7 +205,7 @@ msgstr "高优先级的系统用户将会作为默认登录用户" ...@@ -195,7 +205,7 @@ msgstr "高优先级的系统用户将会作为默认登录用户"
msgid "IP" msgid "IP"
msgstr "IP" msgstr "IP"
#: assets/models/asset.py:49 assets/templates/assets/_asset_list_modal.html:20 #: assets/models/asset.py:50 assets/templates/assets/_asset_list_modal.html:20
#: assets/templates/assets/admin_user_assets.html:51 #: assets/templates/assets/admin_user_assets.html:51
#: assets/templates/assets/asset_detail.html:57 #: assets/templates/assets/asset_detail.html:57
#: assets/templates/assets/asset_list.html:86 #: assets/templates/assets/asset_list.html:86
...@@ -207,81 +217,77 @@ msgstr "IP" ...@@ -207,81 +217,77 @@ msgstr "IP"
msgid "Hostname" msgid "Hostname"
msgstr "主机名" msgstr "主机名"
#: assets/models/asset.py:51 assets/models/domain.py:34 #: assets/models/asset.py:54 assets/models/domain.py:36
msgid "Domain"
msgstr "网域"
#: assets/models/asset.py:53 assets/models/domain.py:36
#: assets/models/label.py:20 assets/templates/assets/asset_detail.html:105 #: assets/models/label.py:20 assets/templates/assets/asset_detail.html:105
#: perms/templates/perms/asset_permission_list.html:70 #: perms/templates/perms/asset_permission_list.html:70
msgid "Is active" msgid "Is active"
msgstr "激活" msgstr "激活"
#: assets/models/asset.py:59 assets/templates/assets/asset_detail.html:65 #: assets/models/asset.py:60 assets/templates/assets/asset_detail.html:65
msgid "Public IP" msgid "Public IP"
msgstr "公网IP" msgstr "公网IP"
#: assets/models/asset.py:60 assets/templates/assets/asset_detail.html:113 #: assets/models/asset.py:61 assets/templates/assets/asset_detail.html:113
msgid "Asset number" msgid "Asset number"
msgstr "资产编号" msgstr "资产编号"
#: assets/models/asset.py:63 assets/templates/assets/asset_detail.html:77 #: assets/models/asset.py:64 assets/templates/assets/asset_detail.html:77
msgid "Vendor" msgid "Vendor"
msgstr "制造商" msgstr "制造商"
#: assets/models/asset.py:64 assets/templates/assets/asset_detail.html:81 #: assets/models/asset.py:65 assets/templates/assets/asset_detail.html:81
msgid "Model" msgid "Model"
msgstr "型号" msgstr "型号"
#: assets/models/asset.py:65 assets/templates/assets/asset_detail.html:109 #: assets/models/asset.py:66 assets/templates/assets/asset_detail.html:109
msgid "Serial number" msgid "Serial number"
msgstr "序列号" msgstr "序列号"
#: assets/models/asset.py:67 #: assets/models/asset.py:68
msgid "CPU model" msgid "CPU model"
msgstr "CPU型号" msgstr "CPU型号"
#: assets/models/asset.py:68 #: assets/models/asset.py:69
msgid "CPU count" msgid "CPU count"
msgstr "CPU数量" msgstr "CPU数量"
#: assets/models/asset.py:69 #: assets/models/asset.py:70
msgid "CPU cores" msgid "CPU cores"
msgstr "CPU核数" msgstr "CPU核数"
#: assets/models/asset.py:70 assets/templates/assets/asset_detail.html:89 #: assets/models/asset.py:71 assets/templates/assets/asset_detail.html:89
msgid "Memory" msgid "Memory"
msgstr "内存" msgstr "内存"
#: assets/models/asset.py:71 #: assets/models/asset.py:72
msgid "Disk total" msgid "Disk total"
msgstr "硬盘大小" msgstr "硬盘大小"
#: assets/models/asset.py:72 #: assets/models/asset.py:73
msgid "Disk info" msgid "Disk info"
msgstr "硬盘信息" msgstr "硬盘信息"
#: assets/models/asset.py:74 assets/templates/assets/asset_detail.html:97 #: assets/models/asset.py:75 assets/templates/assets/asset_detail.html:97
msgid "Platform" msgid "Platform"
msgstr "系统平台" msgstr "系统平台"
#: assets/models/asset.py:75 assets/templates/assets/asset_detail.html:101 #: assets/models/asset.py:76 assets/templates/assets/asset_detail.html:101
msgid "OS" msgid "OS"
msgstr "操作系统" msgstr "操作系统"
#: assets/models/asset.py:76 #: assets/models/asset.py:77
msgid "OS version" msgid "OS version"
msgstr "系统版本" msgstr "系统版本"
#: assets/models/asset.py:77 #: assets/models/asset.py:78
msgid "OS arch" msgid "OS arch"
msgstr "系统架构" msgstr "系统架构"
#: assets/models/asset.py:78 #: assets/models/asset.py:79
msgid "Hostname raw" msgid "Hostname raw"
msgstr "主机名原始" msgstr "主机名原始"
#: assets/models/asset.py:81 assets/models/base.py:28 #: assets/models/asset.py:82 assets/models/base.py:28
#: assets/models/cluster.py:28 assets/models/group.py:21 #: assets/models/cluster.py:28 assets/models/group.py:21
#: assets/templates/assets/admin_user_detail.html:68 #: assets/templates/assets/admin_user_detail.html:68
#: assets/templates/assets/asset_detail.html:117 #: assets/templates/assets/asset_detail.html:117
...@@ -293,7 +299,7 @@ msgstr "主机名原始" ...@@ -293,7 +299,7 @@ msgstr "主机名原始"
msgid "Created by" msgid "Created by"
msgstr "创建者" msgstr "创建者"
#: assets/models/asset.py:82 assets/models/cluster.py:26 #: assets/models/asset.py:83 assets/models/cluster.py:26
#: assets/models/domain.py:18 assets/models/group.py:22 #: assets/models/domain.py:18 assets/models/group.py:22
#: assets/models/label.py:23 assets/templates/assets/admin_user_detail.html:64 #: assets/models/label.py:23 assets/templates/assets/admin_user_detail.html:64
#: assets/templates/assets/domain_detail.html:68 #: assets/templates/assets/domain_detail.html:68
...@@ -306,7 +312,7 @@ msgstr "创建者" ...@@ -306,7 +312,7 @@ msgstr "创建者"
msgid "Date created" msgid "Date created"
msgstr "创建日期" msgstr "创建日期"
#: assets/models/asset.py:83 assets/models/base.py:25 #: assets/models/asset.py:84 assets/models/base.py:25
#: assets/models/cluster.py:29 assets/models/domain.py:16 #: assets/models/cluster.py:29 assets/models/domain.py:16
#: assets/models/domain.py:35 assets/models/group.py:23 #: assets/models/domain.py:35 assets/models/group.py:23
#: assets/models/label.py:21 assets/templates/assets/admin_user_detail.html:72 #: assets/models/label.py:21 assets/templates/assets/admin_user_detail.html:72
...@@ -455,39 +461,39 @@ msgstr "系统用户" ...@@ -455,39 +461,39 @@ msgstr "系统用户"
msgid "%(value)s is not an even number" msgid "%(value)s is not an even number"
msgstr "%(value)s is not an even number" msgstr "%(value)s is not an even number"
#: assets/tasks.py:95 assets/tasks.py:112 #: assets/tasks.py:96 assets/tasks.py:113
msgid "更新资产硬件信息" msgid "更新资产硬件信息"
msgstr "" msgstr ""
#: assets/tasks.py:131 #: assets/tasks.py:132
msgid "定期更新资产硬件信息" msgid "定期更新资产硬件信息"
msgstr "" msgstr ""
#: assets/tasks.py:209 #: assets/tasks.py:210
msgid "定期测试管理账号可连接性: {}" msgid "定期测试管理账号可连接性: {}"
msgstr "" msgstr ""
#: assets/tasks.py:216 #: assets/tasks.py:217
msgid "测试管理行号可连接性: {}" msgid "测试管理行号可连接性: {}"
msgstr "" msgstr ""
#: assets/tasks.py:226 #: assets/tasks.py:227
msgid "测试资产可连接性" msgid "测试资产可连接性"
msgstr "" msgstr ""
#: assets/tasks.py:296 #: assets/tasks.py:297
msgid "Test system user connectability: {}" msgid "Test system user connectability: {}"
msgstr "测试系统用户可连接性: {}" msgstr "测试系统用户可连接性: {}"
#: assets/tasks.py:312 #: assets/tasks.py:313
msgid "定期测试系统用户可连接性: {}" msgid "定期测试系统用户可连接性: {}"
msgstr "" msgstr ""
#: assets/tasks.py:391 #: assets/tasks.py:392
msgid "推送系统用户到节点资产: {} => {}" msgid "推送系统用户到节点资产: {} => {}"
msgstr "" msgstr ""
#: assets/tasks.py:430 #: assets/tasks.py:431
msgid "推送节点系统用户到新加入资产中: {}" msgid "推送节点系统用户到新加入资产中: {}"
msgstr "" msgstr ""
...@@ -505,12 +511,14 @@ msgstr "仅修改你需要更新的字段" ...@@ -505,12 +511,14 @@ msgstr "仅修改你需要更新的字段"
#: assets/views/admin_user.py:63 assets/views/admin_user.py:78 #: assets/views/admin_user.py:63 assets/views/admin_user.py:78
#: assets/views/admin_user.py:102 assets/views/asset.py:48 #: assets/views/admin_user.py:102 assets/views/asset.py:48
#: assets/views/asset.py:94 assets/views/asset.py:154 assets/views/asset.py:171 #: assets/views/asset.py:94 assets/views/asset.py:154 assets/views/asset.py:171
#: assets/views/asset.py:195 assets/views/label.py:26 assets/views/label.py:42 #: assets/views/asset.py:195 assets/views/domain.py:29
#: assets/views/label.py:58 assets/views/system_user.py:28 #: assets/views/domain.py:45 assets/views/domain.py:61
#: assets/views/system_user.py:44 assets/views/system_user.py:60 #: assets/views/domain.py:74 assets/views/domain.py:98
#: assets/views/system_user.py:74 assets/views/vpc.py:29 assets/views/vpc.py:45 #: assets/views/domain.py:126 assets/views/domain.py:150
#: assets/views/vpc.py:61 assets/views/vpc.py:74 assets/views/vpc.py:98 #: assets/views/label.py:26 assets/views/label.py:42 assets/views/label.py:58
#: assets/views/vpc.py:126 assets/views/vpc.py:145 templates/_nav.html:20 #: assets/views/system_user.py:28 assets/views/system_user.py:44
#: assets/views/system_user.py:60 assets/views/system_user.py:74
#: templates/_nav.html:20
msgid "Assets" msgid "Assets"
msgstr "资产管理" msgstr "资产管理"
...@@ -632,9 +640,9 @@ msgstr "激活所选" ...@@ -632,9 +640,9 @@ msgstr "激活所选"
#: assets/templates/assets/_system_user.html:71 #: assets/templates/assets/_system_user.html:71
#: assets/templates/assets/admin_user_create_update.html:46 #: assets/templates/assets/admin_user_create_update.html:46
#: assets/templates/assets/asset_bulk_update.html:24 #: assets/templates/assets/asset_bulk_update.html:24
#: assets/templates/assets/asset_create.html:66 #: assets/templates/assets/asset_create.html:67
#: assets/templates/assets/asset_list.html:108 #: assets/templates/assets/asset_list.html:108
#: assets/templates/assets/asset_update.html:70 #: assets/templates/assets/asset_update.html:71
#: assets/templates/assets/domain_create_update.html:17 #: assets/templates/assets/domain_create_update.html:17
#: assets/templates/assets/gateway_create_update.html:59 #: assets/templates/assets/gateway_create_update.html:59
#: assets/templates/assets/label_create_update.html:17 #: assets/templates/assets/label_create_update.html:17
...@@ -714,8 +722,8 @@ msgid "Basic" ...@@ -714,8 +722,8 @@ msgid "Basic"
msgstr "基本" msgstr "基本"
#: assets/templates/assets/_system_user.html:44 #: assets/templates/assets/_system_user.html:44
#: assets/templates/assets/asset_create.html:24 #: assets/templates/assets/asset_create.html:25
#: assets/templates/assets/asset_update.html:29 #: assets/templates/assets/asset_update.html:30
#: assets/templates/assets/gateway_create_update.html:45 #: assets/templates/assets/gateway_create_update.html:45
#: assets/templates/assets/system_user_update.html:7 #: assets/templates/assets/system_user_update.html:7
#: users/templates/users/user_create.html:9 #: users/templates/users/user_create.html:9
...@@ -728,8 +736,8 @@ msgid "Auto generate key" ...@@ -728,8 +736,8 @@ msgid "Auto generate key"
msgstr "自动生成密钥" msgstr "自动生成密钥"
#: assets/templates/assets/_system_user.html:64 #: assets/templates/assets/_system_user.html:64
#: assets/templates/assets/asset_create.html:58 #: assets/templates/assets/asset_create.html:59
#: assets/templates/assets/asset_update.html:62 #: assets/templates/assets/asset_update.html:63
#: assets/templates/assets/gateway_create_update.html:53 #: assets/templates/assets/gateway_create_update.html:53
#: perms/templates/perms/asset_permission_create_update.html:49 #: perms/templates/perms/asset_permission_create_update.html:49
#: terminal/templates/terminal/terminal_update.html:42 #: terminal/templates/terminal/terminal_update.html:42
...@@ -739,8 +747,8 @@ msgstr "其它" ...@@ -739,8 +747,8 @@ msgstr "其它"
#: assets/templates/assets/_system_user.html:70 #: assets/templates/assets/_system_user.html:70
#: assets/templates/assets/admin_user_create_update.html:45 #: assets/templates/assets/admin_user_create_update.html:45
#: assets/templates/assets/asset_bulk_update.html:23 #: assets/templates/assets/asset_bulk_update.html:23
#: assets/templates/assets/asset_create.html:65 #: assets/templates/assets/asset_create.html:66
#: assets/templates/assets/asset_update.html:69 #: assets/templates/assets/asset_update.html:70
#: assets/templates/assets/domain_create_update.html:16 #: assets/templates/assets/domain_create_update.html:16
#: assets/templates/assets/gateway_create_update.html:58 #: assets/templates/assets/gateway_create_update.html:58
#: assets/templates/assets/label_create_update.html:16 #: assets/templates/assets/label_create_update.html:16
...@@ -845,16 +853,16 @@ msgstr "不可达" ...@@ -845,16 +853,16 @@ msgstr "不可达"
msgid "Ratio" msgid "Ratio"
msgstr "比例" msgstr "比例"
#: assets/templates/assets/asset_create.html:28 #: assets/templates/assets/asset_create.html:29
#: assets/templates/assets/asset_update.html:33 perms/models.py:74 #: assets/templates/assets/asset_update.html:34 perms/models.py:74
#: perms/templates/perms/asset_permission_create_update.html:40 #: perms/templates/perms/asset_permission_create_update.html:40
#: perms/templates/perms/asset_permission_list.html:67 #: perms/templates/perms/asset_permission_list.html:67
msgid "Node" msgid "Node"
msgstr "节点" msgstr "节点"
#: assets/templates/assets/asset_create.html:34 #: assets/templates/assets/asset_create.html:35
#: assets/templates/assets/asset_list.html:75 #: assets/templates/assets/asset_list.html:75
#: assets/templates/assets/asset_update.html:39 #: assets/templates/assets/asset_update.html:40
msgid "Label" msgid "Label"
msgstr "标签" msgstr "标签"
...@@ -973,7 +981,7 @@ msgstr "删除" ...@@ -973,7 +981,7 @@ msgstr "删除"
msgid "Asset Deleting failed." msgid "Asset Deleting failed."
msgstr "删除失败" msgstr "删除失败"
#: assets/templates/assets/asset_update.html:58 #: assets/templates/assets/asset_update.html:59
msgid "Configuration" msgid "Configuration"
msgstr "配置" msgstr "配置"
...@@ -998,7 +1006,8 @@ msgstr "网关" ...@@ -998,7 +1006,8 @@ msgstr "网关"
msgid "Gateway list" msgid "Gateway list"
msgstr "网关列表" msgstr "网关列表"
#: assets/templates/assets/domain_gateway_list.html:48 assets/views/vpc.py:127 #: assets/templates/assets/domain_gateway_list.html:48
#: assets/views/domain.py:127
msgid "Create gateway" msgid "Create gateway"
msgstr "创建网关" msgstr "创建网关"
...@@ -1008,7 +1017,7 @@ msgstr "创建网关" ...@@ -1008,7 +1017,7 @@ msgstr "创建网关"
msgid "Test connection" msgid "Test connection"
msgstr "测试连接" msgstr "测试连接"
#: assets/templates/assets/domain_list.html:6 assets/views/vpc.py:46 #: assets/templates/assets/domain_list.html:6 assets/views/domain.py:46
msgid "Create domain" msgid "Create domain"
msgstr "创建网域" msgstr "创建网域"
...@@ -1115,6 +1124,26 @@ msgstr "更新资产" ...@@ -1115,6 +1124,26 @@ msgstr "更新资产"
msgid "already exists" msgid "already exists"
msgstr "已经存在" msgstr "已经存在"
#: assets/views/domain.py:30 templates/_nav.html:24
msgid "Domain list"
msgstr "网域列表"
#: assets/views/domain.py:62
msgid "Update domain"
msgstr "更新网域"
#: assets/views/domain.py:75
msgid "Domain detail"
msgstr "网域详情"
#: assets/views/domain.py:99
msgid "Domain gateway list"
msgstr "域网关列表"
#: assets/views/domain.py:151
msgid "Update gateway"
msgstr "创建网关"
#: assets/views/label.py:27 #: assets/views/label.py:27
msgid "Label list" msgid "Label list"
msgstr "标签列表" msgstr "标签列表"
...@@ -1143,32 +1172,6 @@ msgstr "资产管理" ...@@ -1143,32 +1172,6 @@ msgstr "资产管理"
msgid "System user asset" msgid "System user asset"
msgstr "系统用户集群资产" msgstr "系统用户集群资产"
#: assets/views/vpc.py:30
#, fuzzy
#| msgid "Domain list"
msgid "domain list"
msgstr "网域列表"
#: assets/views/vpc.py:62
msgid "Update domain"
msgstr "更新网域"
#: assets/views/vpc.py:75
#, fuzzy
#| msgid "Domain detail"
msgid "domain detail"
msgstr "网域详情"
#: assets/views/vpc.py:99
#, fuzzy
#| msgid "Domain gateway list"
msgid "domain gateway list"
msgstr "域网关列表"
#: assets/views/vpc.py:146
msgid "Update gateway"
msgstr "创建网关"
#: common/api.py:19 #: common/api.py:19
msgid "Test mail sent to {}, please check" msgid "Test mail sent to {}, please check"
msgstr "邮件已经发送{}, 请检查" msgstr "邮件已经发送{}, 请检查"
...@@ -1861,10 +1864,6 @@ msgstr "用户列表" ...@@ -1861,10 +1864,6 @@ msgstr "用户列表"
msgid "Login logs" msgid "Login logs"
msgstr "登录日志" msgstr "登录日志"
#: templates/_nav.html:24
msgid "Domain list"
msgstr "网域列表"
#: templates/_nav.html:40 #: templates/_nav.html:40
msgid "Sessions" msgid "Sessions"
msgstr "会话管理" msgstr "会话管理"
...@@ -2778,3 +2777,4 @@ msgstr "密码更新" ...@@ -2778,3 +2777,4 @@ msgstr "密码更新"
#: users/views/user.py:375 #: users/views/user.py:375
msgid "Public key update" msgid "Public key update"
msgstr "密钥更新" msgstr "密钥更新"
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
import random
from .ansible.inventory import BaseInventory from .ansible.inventory import BaseInventory
from assets.utils import get_assets_by_hostname_list, get_system_user_by_name from assets.utils import get_assets_by_hostname_list, get_system_user_by_name
...@@ -11,7 +10,7 @@ __all__ = [ ...@@ -11,7 +10,7 @@ __all__ = [
def make_proxy_command(asset): def make_proxy_command(asset):
gateway = random.choice(asset.domain.gateway_set.filter(is_active=True)) gateway = asset.domain.random_gateway()
proxy_command = [ proxy_command = [
"ssh", "-p", str(gateway.port), "ssh", "-p", str(gateway.port),
...@@ -49,7 +48,7 @@ class JMSInventory(BaseInventory): ...@@ -49,7 +48,7 @@ class JMSInventory(BaseInventory):
info = asset.to_json() info = asset.to_json()
info["vars"] = vars info["vars"] = vars
if asset.domain and asset.domain.gateway_set.count(): if asset.domain and asset.domain.has_gateway():
vars.update(make_proxy_command(asset)) vars.update(make_proxy_command(asset))
info.update(vars) info.update(vars)
......
...@@ -82,7 +82,10 @@ def get_pid(service): ...@@ -82,7 +82,10 @@ def get_pid(service):
pid_file = get_pid_file_path(service) pid_file = get_pid_file_path(service)
if os.path.isfile(pid_file): if os.path.isfile(pid_file):
with open(pid_file) as f: with open(pid_file) as f:
return int(f.read().strip()) try:
return int(f.read().strip())
except ValueError:
return 0
return 0 return 0
...@@ -282,9 +285,9 @@ if __name__ == '__main__': ...@@ -282,9 +285,9 @@ if __name__ == '__main__':
parser = argparse.ArgumentParser( parser = argparse.ArgumentParser(
description=""" description="""
Jumpserver service control tools; Jumpserver service control tools;
Example: \r\n Example: \r\n
%(prog)s start all -d; %(prog)s start all -d;
""" """
) )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment