Skip to content

Commit 65b7522

Browse files
authored
Merge pull request #213 from SaaShup/fix_capabilities_and_event
🐛 Fix container's capabilities values and event
2 parents fd31ad3 + 211a92a commit 65b7522

File tree

4 files changed

+825
-31
lines changed

4 files changed

+825
-31
lines changed

flows.json

Lines changed: 42 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1260,7 +1260,7 @@
12601260
"t": "set",
12611261
"p": "url",
12621262
"pt": "msg",
1263-
"to": "\"http://localhost/containers/\" & msg.payload.id & \"/json -H 'content-type: application/json'\"",
1263+
"to": "\"http://localhost/containers/\" & (msg.payload.id ? msg.payload.id : msg.payload.Actor.ID) & \"/json -H 'content-type: application/json'\"",
12641264
"tot": "jsonata"
12651265
}
12661266
],
@@ -2219,7 +2219,7 @@
22192219
"t": "set",
22202220
"p": "payload",
22212221
"pt": "msg",
2222-
"to": "{\t \"host\": msg.config.id,\t \"name\": $replace(msg.result.Name,\"/\",\"\"),\t \"hostname\": msg.result.Config.Hostname,\t \"status\": msg.result.State.Status = \"running\"\t ? \"running \" & $ceil(\t (\t $toMillis($now()) - $toMillis(msg.result.State.StartedAt)\t ) / 1000 / 60 / 60 / 24\t ) & \"d\"\t : \"na\",\t \"state\": msg.result.State.Status,\t \"operation\": \"none\",\t \"restart_policy\": msg.result.HostConfig.RestartPolicy.Name = \"\" ? \"no\" : msg.result.HostConfig.RestartPolicy.Name,\t \"image\": {\t \"host\": msg.config.id,\t \"ImageID\": msg.result.Image\t },\t \"HealthCheck\": msg.result.Config.Healthcheck,\t \"ContainerID\": msg.result.Id,\t \"cap_add\": msg.result.HostConfig.CapAdd,\t \"cap_drop\": msg.result.HostConfig.CapDrop,\t \"extra_hosts\": msg.result.HostConfig.ExtraHosts,\t \"pid_mode\": msg.result.HostConfig.PidMode,\t \"network_settings\": [\t $each(\t msg.result.NetworkSettings.Networks,\t function($v, $k) {\t {\t \"network\": { \"host\": msg.config.id, \"name\": $k } \t }\t }\t )\t ],\t \"ports\":msg.result.HostConfig.PortBindings ? [\t $each(\t msg.result.HostConfig.PortBindings,\t function($v, $k) {\t {\t \"public_port\": $count($v) = 0 or $v[0] = null or $length($v[0].HostPort) = 0 ? 0 : $v[0].HostPort,\t \"private_port\": $split($k,\"/\")[0],\t \"type\": $split($k,\"/\")[1]\t }\t }\t )\t ] : msg.result.NetworkSettings.Ports\t ? [\t $each(\t msg.result.NetworkSettings.Ports,\t function($v, $k) {\t {\t \"public_port\": -1,\t \"private_port\": $split($k,\"/\")[0],\t \"type\": $split($k,\"/\")[1]\t }\t }\t )\t ]\t : [],\t \"env\": [\t $map(\t msg.result.Config.Env,\t function($v, $k) {\t {\t \"var_name\": $substringBefore($v, \"=\"),\t \"value\": $substringAfter($v, \"=\")\t }\t }\t )\t ],\t \"labels\": [\t $each(\t msg.result.Config.Labels,\t function($v, $k) {\t { \"key\": $k, \"value\": $v }\t }\t )\t ],\t \"devices\": msg.result.HostConfig.Devices\t ? [\t $map(\t msg.result.HostConfig.Devices,\t function($v, $k) {\t {\t \"container_path\": $v.PathInContainer,\t \"host_path\": $v.PathOnHost\t }\t }\t )\t ],\t \"mounts\": [\t $map(\t msg.result.Mounts,\t function($v, $k) {\t $v.Type = \"volume\"\t ? {\t \"source\": $v.Destination,\t \"volume\": {\t \"name\": $v.Name,\t \"host\": msg.config.id \t },\t \"read_only\": $not($v.RW)\t }\t }\t )\t ],\t \"binds\": [\t $map(\t msg.result.Mounts,\t function($v, $k) {\t $v.Type = \"bind\"\t ? {\t \"host_path\": $v.Source,\t \"container_path\": $v.Destination,\t \"read_only\": $not($v.RW)\t }\t }\t )\t ],\t \"log_driver\": msg.result.HostConfig.LogConfig.Type,\t \"log_driver_options\": [\t $each(\t msg.result.HostConfig.LogConfig.Config,\t function($v, $k) {\t {\t \"option_name\": $k,\t \"value\": $v\t }\t }\t )\t ],\t \"cmd\": msg.result.Config.Cmd\t}",
2222+
"to": "{\t \"host\": msg.config.id,\t \"name\": $replace(msg.result.Name,\"/\",\"\"),\t \"hostname\": msg.result.Config.Hostname,\t \"status\": msg.result.State.Status = \"running\"\t ? \"running \" & $ceil(\t (\t $toMillis($now()) - $toMillis(msg.result.State.StartedAt)\t ) / 1000 / 60 / 60 / 24\t ) & \"d\"\t : \"na\",\t \"state\": msg.result.State.Status,\t \"operation\": \"none\",\t \"restart_policy\": msg.result.HostConfig.RestartPolicy.Name = \"\" ? \"no\" : msg.result.HostConfig.RestartPolicy.Name,\t \"image\": {\t \"host\": msg.config.id,\t \"ImageID\": msg.result.Image\t },\t \"HealthCheck\": msg.result.Config.Healthcheck,\t \"ContainerID\": msg.result.Id,\t \"cap_add\": msg.result.HostConfig.CapAdd != null ? msg.result.HostConfig.CapAdd.$replace(\"CAP_\", \"\")[] : msg.result.HostConfig.CapAdd,\t \"cap_drop\": msg.result.HostConfig.CapDrop != null ? msg.result.HostConfig.CapDrop.$replace(\"CAP_\", \"\")[] : msg.result.HostConfig.CapDrop,\t \"extra_hosts\": msg.result.HostConfig.ExtraHosts,\t \"pid_mode\": msg.result.HostConfig.PidMode,\t \"network_settings\": [\t $each(\t msg.result.NetworkSettings.Networks,\t function($v, $k) {\t {\t \"network\": { \"host\": msg.config.id, \"name\": $k } \t }\t }\t )\t ],\t \"ports\":msg.result.HostConfig.PortBindings ? [\t $each(\t msg.result.HostConfig.PortBindings,\t function($v, $k) {\t {\t \"public_port\": $count($v) = 0 or $v[0] = null or $length($v[0].HostPort) = 0 ? 0 : $v[0].HostPort,\t \"private_port\": $split($k,\"/\")[0],\t \"type\": $split($k,\"/\")[1]\t }\t }\t )\t ] : msg.result.NetworkSettings.Ports\t ? [\t $each(\t msg.result.NetworkSettings.Ports,\t function($v, $k) {\t {\t \"public_port\": -1,\t \"private_port\": $split($k,\"/\")[0],\t \"type\": $split($k,\"/\")[1]\t }\t }\t )\t ]\t : [],\t \"env\": [\t $map(\t msg.result.Config.Env,\t function($v, $k) {\t {\t \"var_name\": $substringBefore($v, \"=\"),\t \"value\": $substringAfter($v, \"=\")\t }\t }\t )\t ],\t \"labels\": [\t $each(\t msg.result.Config.Labels,\t function($v, $k) {\t { \"key\": $k, \"value\": $v }\t }\t )\t ],\t \"devices\": msg.result.HostConfig.Devices\t ? [\t $map(\t msg.result.HostConfig.Devices,\t function($v, $k) {\t {\t \"container_path\": $v.PathInContainer,\t \"host_path\": $v.PathOnHost\t }\t }\t )\t ],\t \"mounts\": [\t $map(\t msg.result.Mounts,\t function($v, $k) {\t $v.Type = \"volume\"\t ? {\t \"source\": $v.Destination,\t \"volume\": {\t \"name\": $v.Name,\t \"host\": msg.config.id \t },\t \"read_only\": $not($v.RW)\t }\t }\t )\t ],\t \"binds\": [\t $map(\t msg.result.Mounts,\t function($v, $k) {\t $v.Type = \"bind\"\t ? {\t \"host_path\": $v.Source,\t \"container_path\": $v.Destination,\t \"read_only\": $not($v.RW)\t }\t }\t )\t ],\t \"log_driver\": msg.result.HostConfig.LogConfig.Type,\t \"log_driver_options\": [\t $each(\t msg.result.HostConfig.LogConfig.Config,\t function($v, $k) {\t {\t \"option_name\": $k,\t \"value\": $v\t }\t }\t )\t ],\t \"cmd\": msg.result.Config.Cmd\t}",
22232223
"tot": "jsonata"
22242224
}
22252225
],
@@ -4526,7 +4526,7 @@
45264526
"t": "set",
45274527
"p": "payload",
45284528
"pt": "msg",
4529-
"to": "{\t \"Image\": msg.input.data.image.name & \":\" & msg.input.data.image.version,\t \"Hostname\": msg.input.data.hostname\t}",
4529+
"to": "{\t \"Image\": msg.input.data.image.name & \":\" & msg.input.data.image.version,\t \"Hostname\": msg.input.data.hostname,\t \"HostConfig\": {\t \"CapAdd\": msg.input.data.cap_add,\t \"CapDrop\": msg.input.data.cap_drop\t }\t}",
45304530
"tot": "jsonata"
45314531
},
45324532
{
@@ -6641,7 +6641,7 @@
66416641
"t": "set",
66426642
"p": "payload",
66436643
"pt": "msg",
6644-
"to": "[\t {\t \"id\": msg.input.data.id,\t \"host\": msg.input.data.host.id,\t \"name\": $replace(msg.result.Name,\"/\",\"\"),\t \"hostname\": msg.result.Config.Hostname,\t \"operation\": \"none\",\t \"state\": msg.result.State.Status,\t \"extra_hosts\": msg.result.HostConfig.ExtraHosts,\t \"restart_policy\": msg.result.HostConfig.RestartPolicy.Name = \"\" ? \"no\" : msg.result.HostConfig.RestartPolicy.Name,\t \"status\": msg.result.State.Status = \"running\"\t ? \"running \" & $ceil(\t (\t $toMillis($now()) - $toMillis(msg.result.State.StartedAt)\t ) / 1000 / 60 / 60 / 24\t ) & \"d\"\t : \"na\",\t \"image\": {\t \"host\": msg.input.data.host.id,\t \"ImageID\": msg.result.Image\t },\t \"ContainerID\": msg.result.Id,\t \"network_settings\": [\t $each(\t msg.result.NetworkSettings.Networks,\t function($v, $k) {\t {\t \"network\": { \"name\": $k, \"host\": msg.config.id } \t }\t }\t )\t ],\t \"ports\":msg.result.HostConfig.PortBindings ? [\t $each(\t msg.result.HostConfig.PortBindings,\t function($v, $k) {\t {\t \"public_port\": $count($v) = 0 or $v[0] = null or $length($v[0].HostPort) = 0 ? 0 : $v[0].HostPort,\t \"private_port\": $split($k,\"/\")[0],\t \"type\": $split($k,\"/\")[1]\t }\t }\t )\t ] : msg.result.NetworkSettings.Ports\t ? [\t $each(\t msg.result.NetworkSettings.Ports,\t function($v, $k) {\t {\t \"public_port\": -1,\t \"private_port\": $split($k,\"/\")[0],\t \"type\": $split($k,\"/\")[1]\t }\t }\t )\t ]\t : [],\t \"env\": [\t $map(\t msg.result.Config.Env,\t function($v, $k) {\t {\t \"var_name\": $substringBefore($v, \"=\"),\t \"value\": $substringAfter($v, \"=\")\t }\t }\t )\t ],\t \"labels\": [\t $each(\t msg.result.Config.Labels,\t function($v, $k) {\t { \"key\": $k, \"value\": $v }\t }\t )\t ],\t \"mounts\": [\t $map(\t msg.result.Mounts,\t function($v, $k) {\t $v.Type = \"volume\"\t ? {\t \"source\": $v.Destination,\t \"volume\": {\t \"name\": $v.Name,\t \"host\": msg.config.id \t },\t \"read_only\": $not($v.RW)\t }\t }\t )\t ],\t \"binds\": [\t $map(\t msg.result.Mounts,\t function($v, $k) {\t $v.Type = \"bind\"\t ? {\t \"host_path\": $v.Source,\t \"container_path\": $v.Destination,\t \"read_only\": $not($v.RW)\t }\t }\t )\t ],\t \"log_driver\": msg.result.HostConfig.LogConfig.Type,\t \"log_driver_options\": [\t $each(\t msg.result.HostConfig.LogConfig.Config,\t function($v, $k) {\t {\t \"option_name\": $k,\t \"value\": $v\t }\t }\t )\t ],\t \"cmd\": msg.result.Config.Cmd\t}\t]",
6644+
"to": "[\t {\t \"id\": msg.input.data.id,\t \"host\": msg.input.data.host.id,\t \"name\": $replace(msg.result.Name,\"/\",\"\"),\t \"hostname\": msg.result.Config.Hostname,\t \"operation\": \"none\",\t \"state\": msg.result.State.Status,\t \"extra_hosts\": msg.result.HostConfig.ExtraHosts,\t \"restart_policy\": msg.result.HostConfig.RestartPolicy.Name = \"\" ? \"no\" : msg.result.HostConfig.RestartPolicy.Name,\t \"status\": msg.result.State.Status = \"running\"\t ? \"running \" & $ceil(\t (\t $toMillis($now()) - $toMillis(msg.result.State.StartedAt)\t ) / 1000 / 60 / 60 / 24\t ) & \"d\"\t : \"na\",\t \"image\": {\t \"host\": msg.input.data.host.id,\t \"ImageID\": msg.result.Image\t },\t \"ContainerID\": msg.result.Id,\t \"cap_add\": msg.result.HostConfig.CapAdd != null ? msg.result.HostConfig.CapAdd.$replace(\"CAP_\", \"\")[] : msg.result.HostConfig.CapAdd,\t \"cap_drop\": msg.result.HostConfig.CapDrop != null ? msg.result.HostConfig.CapDrop.$replace(\"CAP_\", \"\")[] : msg.result.HostConfig.CapDrop,\t \"network_settings\": [\t $each(\t msg.result.NetworkSettings.Networks,\t function($v, $k) {\t {\t \"network\": { \"name\": $k, \"host\": msg.config.id } \t }\t }\t )\t ],\t \"ports\":msg.result.HostConfig.PortBindings ? [\t $each(\t msg.result.HostConfig.PortBindings,\t function($v, $k) {\t {\t \"public_port\": $count($v) = 0 or $v[0] = null or $length($v[0].HostPort) = 0 ? 0 : $v[0].HostPort,\t \"private_port\": $split($k,\"/\")[0],\t \"type\": $split($k,\"/\")[1]\t }\t }\t )\t ] : msg.result.NetworkSettings.Ports\t ? [\t $each(\t msg.result.NetworkSettings.Ports,\t function($v, $k) {\t {\t \"public_port\": -1,\t \"private_port\": $split($k,\"/\")[0],\t \"type\": $split($k,\"/\")[1]\t }\t }\t )\t ]\t : [],\t \"env\": [\t $map(\t msg.result.Config.Env,\t function($v, $k) {\t {\t \"var_name\": $substringBefore($v, \"=\"),\t \"value\": $substringAfter($v, \"=\")\t }\t }\t )\t ],\t \"labels\": [\t $each(\t msg.result.Config.Labels,\t function($v, $k) {\t { \"key\": $k, \"value\": $v }\t }\t )\t ],\t \"mounts\": [\t $map(\t msg.result.Mounts,\t function($v, $k) {\t $v.Type = \"volume\"\t ? {\t \"source\": $v.Destination,\t \"volume\": {\t \"name\": $v.Name,\t \"host\": msg.config.id \t },\t \"read_only\": $not($v.RW)\t }\t }\t )\t ],\t \"binds\": [\t $map(\t msg.result.Mounts,\t function($v, $k) {\t $v.Type = \"bind\"\t ? {\t \"host_path\": $v.Source,\t \"container_path\": $v.Destination,\t \"read_only\": $not($v.RW)\t }\t }\t )\t ],\t \"log_driver\": msg.result.HostConfig.LogConfig.Type,\t \"log_driver_options\": [\t $each(\t msg.result.HostConfig.LogConfig.Config,\t function($v, $k) {\t {\t \"option_name\": $k,\t \"value\": $v\t }\t }\t )\t ],\t \"cmd\": msg.result.Config.Cmd\t}\t]",
66456645
"tot": "jsonata"
66466646
}
66476647
],
@@ -6678,7 +6678,8 @@
66786678
"y": 760,
66796679
"wires": [
66806680
[
6681-
"d10c0e59950649aa"
6681+
"d10c0e59950649aa",
6682+
"8257b4684780cee7"
66826683
]
66836684
]
66846685
},
@@ -7287,7 +7288,8 @@
72877288
[
72887289
"f97a2faad0f4275a",
72897290
"c469b4b880927dc6",
7290-
"a97b672b9bc9201e"
7291+
"a97b672b9bc9201e",
7292+
"516ce4d613bc361e"
72917293
],
72927294
[]
72937295
]
@@ -7522,6 +7524,40 @@
75227524
[]
75237525
]
75247526
},
7527+
{
7528+
"id": "8257b4684780cee7",
7529+
"type": "debug",
7530+
"z": "8e85e8c54d776ddc",
7531+
"name": "debug 1",
7532+
"active": true,
7533+
"tosidebar": true,
7534+
"console": false,
7535+
"tostatus": false,
7536+
"complete": "true",
7537+
"targetType": "full",
7538+
"statusVal": "",
7539+
"statusType": "auto",
7540+
"x": 1440,
7541+
"y": 860,
7542+
"wires": []
7543+
},
7544+
{
7545+
"id": "516ce4d613bc361e",
7546+
"type": "debug",
7547+
"z": "8e85e8c54d776ddc",
7548+
"name": "debug 2",
7549+
"active": true,
7550+
"tosidebar": true,
7551+
"console": false,
7552+
"tostatus": false,
7553+
"complete": "true",
7554+
"targetType": "full",
7555+
"statusVal": "",
7556+
"statusType": "auto",
7557+
"x": 1080,
7558+
"y": 920,
7559+
"wires": []
7560+
},
75257561
{
75267562
"id": "3eb97ccb653722a0",
75277563
"type": "http in",

0 commit comments

Comments
 (0)