During the development of the mesh wide firmware upgrade we faced the problem of how avoid multiple mesh wide firmware upgrades to be executed at same time.
We need to find an implementation on the mesh wide ecosystem to avoid multiple transactions at the same time. For example:
Start a mesh upgrade when another mesh upgrade is started
Change mesh wide configuration at same tame a mesh upgrade is running.
etc
A solution could be to use a shared state transaction state, with a global transaction state to check if a transaction is already running.
{
DEFAULT = "default", -- default state
STARTED = "started", -- there is a transaction in progress
FINISHED = "finished" -- similar to no transaction
}
I recall some talk from Freifunk people about automated upgrades in Gluon, we should ask them how they solved this.
Also, maybe there is even a solution already implemented somewhere in ASU by @aparcar...
Related to #1031
During the development of the mesh wide firmware upgrade we faced the problem of how avoid multiple mesh wide firmware upgrades to be executed at same time.
We need to find an implementation on the mesh wide ecosystem to avoid multiple transactions at the same time. For example:
A solution could be to use a shared state transaction state, with a global transaction state to check if a transaction is already running.