mirror of
https://github.com/hequan2017/seal.git
synced 2026-02-02 17:59:03 +08:00
v0.4.3 配合 vue前端
This commit is contained in:
@@ -37,7 +37,13 @@ class EchoConsumer(WebsocketConsumer):
|
||||
|
||||
def connect(self):
|
||||
# 创建channels group, 命名为:用户名 (最好不要中文名字,这里会用名字 建立一个通道,通过这个通道进行通信),并使用channel_layer写入到redis
|
||||
async_to_sync(self.channel_layer.group_add)(self.scope['user'].username, self.channel_name)
|
||||
try:
|
||||
async_to_sync(self.channel_layer.group_add)(self.scope['user'].username, self.channel_name)
|
||||
except Exception as e:
|
||||
# 这里是为了配合 seal-vue 使用,实际项目,请删除下面这一行
|
||||
async_to_sync(self.channel_layer.group_add)("admin", self.channel_name)
|
||||
|
||||
|
||||
# 可以在这里根据 用户 要访问的pod 进行 权限控制
|
||||
path = self.scope['path'].split('/')
|
||||
try:
|
||||
@@ -59,4 +65,8 @@ class EchoConsumer(WebsocketConsumer):
|
||||
self.send(text_data=event["text"])
|
||||
|
||||
def disconnect(self, close_code):
|
||||
async_to_sync(self.channel_layer.group_discard)(self.scope['user'].username, self.channel_name)
|
||||
try:
|
||||
async_to_sync(self.channel_layer.group_discard)(self.scope['user'].username, self.channel_name)
|
||||
except Exception as e:
|
||||
# 这里是为了配合 seal-vue 使用,实际项目,请删除下面这一行
|
||||
async_to_sync(self.channel_layer.group_discard)("admin", self.channel_name)
|
||||
|
||||
@@ -18,6 +18,7 @@ class K8sApi(object):
|
||||
aConfiguration.api_key = {"authorization": "Bearer " + token}
|
||||
aApiClient = client.ApiClient(aConfiguration)
|
||||
v1 = client.CoreV1Api(aApiClient)
|
||||
|
||||
return v1
|
||||
|
||||
def get_node_list(self):
|
||||
|
||||
@@ -252,7 +252,7 @@ CORS_ORIGIN_WHITELIST = (
|
||||
MIDDLEWARE_CLASSES = ('system.views.DisableCSRFCheck',)
|
||||
|
||||
## K8S
|
||||
Token = "eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4tZGhobWMiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiOThkMDcwZWItODc1Yy0xMWU5LWE1MzgtMDAwYzI5N2I0ZmU3Iiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmRhc2hib2FyZC1hZG1pbiJ9.XDFpez2E84R_zlopt_uEHPvVGUtSavypyix6UcYJO3J4imHdJy7MEkfV-wltBA1H8x0TT2AW64rLlXaRJ8OkFWJ0myedfKdjnf7i0oLQ8j-7lw6rT3A0e2pKmpnOaBQfgzRm83-t2I5MMp3Iu9VNUiAbqQpjql4AKwRuJEEGCs99tKStUxzIsJKusmUHh9KAK4BAxySn9h16T2URZ7czLP4mty2crYWNV4KwSwFPthGhFPsl8mnet_hiV5k4me5a8frmXytOy64MmGW8w3TBgiM-7hBYSxt84QGGnyi84LU0EFgtLwBWEOTZeUKKQ6IkoAprMmNcSxX8WUJFlx_uJg"
|
||||
Token = "eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4tdDg4amwiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiMmU1NWQ0MWEtOTI0My0xMWU5LTgzNzAtMDAwYzI5N2I0ZmU3Iiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmRhc2hib2FyZC1hZG1pbiJ9.ClrHiRBo9TD9qQGT5xeU-0-Cpqp0ZSQJd9-t3hD6B-YGiY-Al8zrgx8B05Ta9oUHS6cEOz_vYrqXDKm3XDFb6yTzOs5XTUTxvGUKIkZzgYI8aZxkCSYLZa-G-MtsnvbHaZj6XryPCAZhat70XFc0RVmHWC_LnGGzuAdpY2BgdaRHGERTTAYMkK8Ac8vV1s-E-lpsnU3jNgMRANp6v7C50ejjAYVTHnsCquJbIRM0uC7b5RhXbzRaOxNK33bDByDczYwgDIw1DKBaeXf3ABaJdcsQK138YxhrVUvDYy4o6j5obmGotGPrIv9XBhS7kgin289gTq5A6KT7aGmZjZPsYw"
|
||||
APISERVER = 'https://192.168.100.111:6443'
|
||||
|
||||
# django-channels配置
|
||||
|
||||
@@ -81,9 +81,30 @@ class Menu(APIView):
|
||||
}
|
||||
]
|
||||
},
|
||||
# {
|
||||
# "path": '/multilevel',
|
||||
# "name": 'multilevel',
|
||||
# "meta": {
|
||||
# "icon": 'md-menu',
|
||||
# "title": '多级菜单'
|
||||
# },
|
||||
# "component": 'Main',
|
||||
# "children": [
|
||||
# {
|
||||
# "path": '/level_2_1',
|
||||
# "name": 'level_2_1',
|
||||
# "meta": {
|
||||
# "icon": 'md-funnel',
|
||||
# "title": '二级-1'
|
||||
# },
|
||||
# "component": 'multilevel/level-2-1'
|
||||
# },
|
||||
#
|
||||
# ]
|
||||
# },
|
||||
{
|
||||
"path": '/multilevel',
|
||||
"name": 'multilevel',
|
||||
"path": '/k8s',
|
||||
"name": 'k8s',
|
||||
"meta": {
|
||||
"icon": 'md-menu',
|
||||
"title": '多级菜单'
|
||||
@@ -91,19 +112,28 @@ class Menu(APIView):
|
||||
"component": 'Main',
|
||||
"children": [
|
||||
{
|
||||
"path": '/level_2_1',
|
||||
"name": 'level_2_1',
|
||||
"path": '/pods',
|
||||
"name": 'pods',
|
||||
"meta": {
|
||||
"icon": 'md-funnel',
|
||||
"title": '二级-1'
|
||||
"title": 'pods',
|
||||
},
|
||||
"component": 'multilevel/level-2-1'
|
||||
"component": 'k8s/k8s-pods'
|
||||
},
|
||||
{
|
||||
"path": '/webssh/:name/:namespace',
|
||||
"name": 'webssh',
|
||||
"meta": {
|
||||
"icon": 'md-funnel',
|
||||
"title": 'webssh',
|
||||
"hideInMenu": "true",
|
||||
},
|
||||
"component": 'k8s/k8s-webssh'
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
]
|
||||
print(result)
|
||||
return HttpResponse(json.dumps(result))
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user