Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
蜕变的菜鸟
glances
提交
6f446faf
G
glances
项目概览
蜕变的菜鸟
/
glances
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
glances
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6f446faf
编写于
10月 28, 2017
作者:
N
nicolargo
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Docker plugin WebUI is broken in the latest DEVELOP branch #1174
上级
dbfeb977
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
25 addition
and
18 deletion
+25
-18
glances/outputs/static/js/components/plugin-docker/controller.js
.../outputs/static/js/components/plugin-docker/controller.js
+1
-1
glances/plugins/glances_docker.py
glances/plugins/glances_docker.py
+24
-17
未找到文件。
glances/outputs/static/js/components/plugin-docker/controller.js
浏览文件 @
6f446faf
...
...
@@ -24,7 +24,7 @@ function GlancesPluginDockerController($scope, GlancesStats) {
vm
.
containers
=
stats
[
'
containers
'
].
map
(
function
(
containerData
)
{
return
{
'
id
'
:
containerData
.
Id
,
'
name
'
:
containerData
.
Names
[
0
].
split
(
'
/
'
).
splice
(
-
1
)[
0
]
,
'
name
'
:
containerData
.
name
,
'
status
'
:
containerData
.
Status
,
'
cpu
'
:
containerData
.
cpu
.
total
,
'
memory
'
:
containerData
.
memory
.
usage
!=
undefined
?
containerData
.
memory
.
usage
:
'
?
'
,
...
...
glances/plugins/glances_docker.py
浏览文件 @
6f446faf
...
...
@@ -182,8 +182,14 @@ class Plugin(GlancesPlugin):
container_stats
=
{}
# The key is the container name and not the Id
container_stats
[
'key'
]
=
self
.
get_key
()
# Export name (first name in the list, without the /)
# Export name (first name in the
Names
list, without the /)
container_stats
[
'name'
]
=
container
.
name
# Export global Names (used by the WebUI)
container_stats
[
'Names'
]
=
[
container
.
name
]
# Container Id
container_stats
[
'Id'
]
=
container
.
id
# Container Image
container_stats
[
'Image'
]
=
container
.
image
.
tags
# Global stats (from attrs)
container_stats
[
'Status'
]
=
container
.
attrs
[
'State'
][
'Status'
]
container_stats
[
'Command'
]
=
container
.
attrs
[
'Config'
][
'Entrypoint'
]
...
...
@@ -473,13 +479,11 @@ class Plugin(GlancesPlugin):
ret
.
append
(
self
.
curse_new_line
())
# Header
ret
.
append
(
self
.
curse_new_line
())
# msg = '{:>14}'.format('Id')
# ret.append(self.curse_add_line(msg))
# Get the maximum containers name (cutted to 20 char max)
name_max_width
=
min
(
20
,
len
(
max
(
self
.
stats
[
'containers'
],
key
=
lambda
x
:
len
(
x
[
'name'
]))[
'name'
]))
msg
=
' {:{width}}'
.
format
(
'Name'
,
width
=
name_max_width
)
ret
.
append
(
self
.
curse_add_line
(
msg
))
msg
=
'{:>
26
}'
.
format
(
'Status'
)
msg
=
'{:>
10
}'
.
format
(
'Status'
)
ret
.
append
(
self
.
curse_add_line
(
msg
))
msg
=
'{:>6}'
.
format
(
'CPU%'
)
ret
.
append
(
self
.
curse_add_line
(
msg
))
...
...
@@ -500,21 +504,12 @@ class Plugin(GlancesPlugin):
# Data
for
container
in
self
.
stats
[
'containers'
]:
ret
.
append
(
self
.
curse_new_line
())
# Id
# msg = '{:>14}'.format(container['Id'][0:12])
# ret.append(self.curse_add_line(msg))
# Name
name
=
container
[
'name'
]
if
len
(
name
)
>
name_max_width
:
name
=
'_'
+
name
[
-
name_max_width
+
1
:]
else
:
name
=
name
[:
name_max_width
]
msg
=
' {:{width}}'
.
format
(
name
,
width
=
name_max_width
)
ret
.
append
(
self
.
curse_add_line
(
msg
))
ret
.
append
(
self
.
curse_add_line
(
self
.
_msg_name
(
container
=
container
,
max_width
=
name_max_width
)))
# Status
status
=
self
.
container_alert
(
container
[
'Status'
])
msg
=
container
[
'Status'
].
replace
(
"minute"
,
"min"
)
msg
=
'{:>26}'
.
format
(
msg
[
0
:
25
])
msg
=
'{:>10}'
.
format
(
msg
[
0
:
10
])
ret
.
append
(
self
.
curse_add_line
(
msg
,
status
))
# CPU
try
:
...
...
@@ -562,11 +557,23 @@ class Plugin(GlancesPlugin):
msg
=
'{:>7}'
.
format
(
'_'
)
ret
.
append
(
self
.
curse_add_line
(
msg
))
# Command
msg
=
' {}'
.
format
(
container
[
'Command'
])
if
container
[
'Command'
]
is
not
None
:
msg
=
' {}'
.
format
(
' '
.
join
(
container
[
'Command'
]))
else
:
msg
=
' {}'
.
format
(
'_'
)
ret
.
append
(
self
.
curse_add_line
(
msg
,
splittable
=
True
))
return
ret
def
_msg_name
(
self
,
container
,
max_width
):
"""Build the container name."""
name
=
container
[
'name'
]
if
len
(
name
)
>
max_width
:
name
=
'_'
+
name
[
-
max_width
+
1
:]
else
:
name
=
name
[:
max_width
]
return
' {:{width}}'
.
format
(
name
,
width
=
max_width
)
def
container_alert
(
self
,
status
):
"""Analyse the container status."""
if
status
in
(
'running'
):
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录