mirror of https://github.com/aredn/aredn.git
Fix migration of services on nodes without any services (#1660)
* Fix migration of services on nodes without any services * Correctly handle first creation and last deletion.
This commit is contained in:
parent
da9417a512
commit
1a49da92ea
|
@ -37,7 +37,15 @@ if (request.env.REQUEST_METHOD === "PUT") {
|
|||
configuration.prepareChanges();
|
||||
if ("services" in request.args) {
|
||||
const services = json(request.args.services);
|
||||
uciMesh.set("setup", "services", "service", services);
|
||||
if (!uciMesh.get("setup", "services")) {
|
||||
uciMesh.set("setup", "services", "services");
|
||||
}
|
||||
if (length(services)) {
|
||||
uciMesh.set("setup", "services", "service", services);
|
||||
}
|
||||
else {
|
||||
uciMesh.delete("setup", "services", "service");
|
||||
}
|
||||
uciMesh.commit("setup");
|
||||
}
|
||||
if ("aliases" in request.args) {
|
||||
|
@ -108,7 +116,7 @@ const ae = iptoarr(dhcp.end);
|
|||
const reService = regexp("^([^|]+)\\|1\\|([^|]+)\\|([^|]+)\\|(\\d+)\\|(.*)$");
|
||||
const reLink = regexp("^([^|]+)\\|0\\|\\|([^|]+)\\|\\|$");
|
||||
const reType = regexp("^(.+) \\[([a-z]+)\\]$");
|
||||
const svcs = uciMesh.get("setup", "services", "service");
|
||||
const svcs = uciMesh.get("setup", "services", "service") || [];
|
||||
for (let i = 0; i < length(svcs); i++) {
|
||||
const l = trim(svcs[i]);
|
||||
const v = match(l, reService);
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
}
|
||||
f.close();
|
||||
}
|
||||
const svcs = uciMesh.get("setup", "services", "service");
|
||||
const svcs = uciMesh.get("setup", "services", "service") || [];
|
||||
for (let i = 0; i < length(svcs); i++) {
|
||||
const l = trim(svcs[i]);
|
||||
const v = match(l, reService);
|
||||
|
|
|
@ -127,7 +127,7 @@ local function get(validate)
|
|||
end
|
||||
|
||||
-- load the services
|
||||
local svcs = uci.cursor("/etc/config.mesh"):get_all("setup", "services", "service")
|
||||
local svcs = uci.cursor("/etc/config.mesh"):get_all("setup", "services", "service") or {}
|
||||
for _, svc in ipairs(svcs)
|
||||
do
|
||||
local name, link, proto, host, port, sffx = svc:match("(.*)|(.*)|(.*)|(.*)|(.*)|(.*)")
|
||||
|
|
Loading…
Reference in New Issue