Module: check_mk
Branch: master
Commit: 5c148168e2cad4d20486169cfd5350a292178406
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=5c148168e2cad4…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Mon May 28 08:11:21 2018 +0200
6179 Add some more details to docker node infos
Change-Id: I82baa4cd1aa0029f6b58cff191167f0124aae7b3
---
.werks/6179 | 11 +++++++++++
inventory/docker_node_info | 24 ++++++++++++++++++++++--
web/plugins/views/inventory.py | 17 +++++++++++++++++
3 files changed, 50 insertions(+), 2 deletions(-)
diff --git a/.werks/6179 b/.werks/6179
new file mode 100644
index 0000000..1a661b4
--- /dev/null
+++ b/.werks/6179
@@ -0,0 +1,11 @@
+Title: Add some more details to docker node infos
+Level: 1
+Component: inv
+Class: feature
+Compatible: compat
+Edition: cre
+State: unknown
+Version: 1.6.0i1
+Date: 1527369908
+
+
diff --git a/inventory/docker_node_info b/inventory/docker_node_info
index cd26d49..a7da959 100644
--- a/inventory/docker_node_info
+++ b/inventory/docker_node_info
@@ -26,20 +26,40 @@
-def inv_docker_node_info(parsed, inventory_tree):
+def inv_docker_node_info(parsed, inventory_tree, status_data_tree):
if not isinstance(parsed, dict):
# String with error message in case the daemon is not running
return
node = inventory_tree.get_dict("software.applications.docker.")
node["version"] = parsed[u"ServerVersion"]
+ node["registry"] = parsed["IndexServerAddress"]
+ #
{"NodeID":"","NodeAddr":"","LocalNodeState":"inactive","ControlAvailable":false,"Error":"","RemoteManagers":null}
+ if parsed["Swarm"]["LocalNodeState"] == "inactive":
+ node["swarm_state"] =
parsed["Swarm"]["LocalNodeState"]
+ else:
+ node.update({
+ "swarm_state" :
parsed["Swarm"]["LocalNodeState"],
+ "swarm_manager" :
parsed["Swarm"]["RemoteManagers"],
+ "swarm_node_id" : parsed["Swarm"]["NodeID"],
+ })
labels = parsed[u"Labels"]
if labels:
node_labels =
inventory_tree.get_list("software.applications.docker.node_labels:")
node_labels += [ {"label": label} for label in labels ]
+ status_node = status_data_tree.get_dict("software.applications.docker.")
+ status_node.update({
+ "num_containers_total" : parsed["Containers"],
+ "num_containers_running" : parsed["ContainersRunning"],
+ "num_containers_paused" : parsed["ContainersPaused"],
+ "num_containers_stopped" : parsed["ContainersStopped"],
+ "num_images" : parsed["Images"],
+ })
+
inv_info['docker_node_info'] = {
- 'inv_function' : inv_docker_node_info,
+ 'inv_function' : inv_docker_node_info,
+ 'has_status_data' : True,
}
diff --git a/web/plugins/views/inventory.py b/web/plugins/views/inventory.py
index 3268f69..a54f556 100644
--- a/web/plugins/views/inventory.py
+++ b/web/plugins/views/inventory.py
@@ -775,6 +775,23 @@ inventory_displayhints.update({
".software.applications.docker.": {
"icon": "docker",
"title": "Docker",
+ "keyorder": [ "version", "num_containers_total",
"num_containers_running", "num_containers_stopped",
+ "num_containers_paused", "num_images",
"registry" ],
+ },
+ ".software.applications.docker.num_containers_total": {
+ "title": _("# Containers"),
+ },
+ ".software.applications.docker.num_containers_running": {
+ "title": _("# Containers running"),
+ },
+ ".software.applications.docker.num_containers_stopped": {
+ "title": _("# Containers stopped"),
+ },
+ ".software.applications.docker.num_containers_paused": {
+ "title": _("# Containers paused"),
+ },
+ ".software.applications.docker.num_images": {
+ "title": _("# Images"),
},
".software.applications.docker.images:": {