luci-base: cbi: atomically reorder uci sections
authorJo-Philipp Wich <jo@mein.io>
Thu, 31 May 2018 13:39:43 +0000 (15:39 +0200)
committerJo-Philipp Wich <jo@mein.io>
Sun, 3 Jun 2018 18:02:44 +0000 (20:02 +0200)
commit2d352a9251f99628162ac6bccf13c0fd5d9a71f8
tree26588a7018fc094818242b6c89fbd0279116e63b
parent660e4f5504b91a7b5c51a6abb80d52c65b8528d2
luci-base: cbi: atomically reorder uci sections

Since the switch to ubus uci operations we do not have a local application-
side cursor cache anymore, instead uci operations happen synchronously in
the rpcd backend server.

This may cause cbi section reorder operations involving multiple elements
to fail, because anonymous section hashes may change due to rehashing
between consecutive ubus uci reorder calls.

In order to avoid that problem, use the ubus uci batch reorder extension,
which allows to pass a complete (or partial) list of section ids in the
desired order in one call, bypassing the volatile section id problem.

Fixes #1844.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
modules/luci-base/luasrc/cbi.lua