Mercurial > prosody-modules
annotate mod_discodot/mod_discodot.lua @ 4974:807007913f67
mod_log_json: Prefer native Lua table.pack over Prosody util.table one
Prosody is removing support for Lua 5.1, which was the reason for
util.table.pack to exist in the first place, since Lua 5.2+ provides
table.pack. In prosody rev 5eaf77114fdb everything was switched over to
use table.pack, opening the door for removing util.table.pack at some
point. This change here is to prepare for that future eventuality.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 11 Jul 2022 20:08:41 +0200 |
parents | 253df0798996 |
children |
rev | line source |
---|---|
4577
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 local cm = require("core.configmanager"); |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 local function format_host(host, conf) |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 if host == "*" then |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 return "Global" |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
6 end |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
7 local component_module = conf["component_module"]; |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 if type(component_module) == "string" then |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 if component_module == "component" then |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 return string.format("Component %q", host) |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
11 else |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 return string.format("Component %q %q", host, component_module) |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 end |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
14 else |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
15 return string.format("VirtualHost %q", host) |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
16 end |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
17 end |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
18 |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
19 function module.command(arg) |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
20 |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
21 local config = cm.getconfig(); |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
22 |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
23 print("digraph \"prosody\" {") |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
24 for host, conf in pairs(config) do |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
25 print(string.format("%q [label=%q]", host, format_host(host, conf))); |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
26 local parent = host:match("%.(.*)"); |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
27 if parent and rawget(config, parent) then |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
28 print(string.format("%q -> %q", parent, host)); |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
29 end |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
30 local disco_items = conf["disco_items"] |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
31 if type(disco_items) == "table" then |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
32 for _, pair in ipairs(disco_items) do |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
33 print(string.format("%q -> %q", host, pair[1])); |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
34 end |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
35 end |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
36 |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
37 end |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
38 |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
39 print("}") |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
40 |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
41 return 0 |
253df0798996
mod_discodot: Print a graph of service discovery
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
42 end |