v0.4.3 配合 vue前端

This commit is contained in:
何全
2019-06-21 17:26:19 +08:00
parent f134790dcb
commit d38df2138f
4 changed files with 51 additions and 10 deletions

View File

@@ -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)

View File

@@ -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):

View File

@@ -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配置

View File

@@ -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))