mirror of https://github.com/Icinga/icinga2.git
RedisWriter: publish the current config dump state via icinga:dump
refs #53
This commit is contained in:
parent
1d3109458d
commit
d9ff921934
|
@ -50,6 +50,19 @@
|
||||||
|
|
||||||
using namespace icinga;
|
using namespace icinga;
|
||||||
|
|
||||||
|
static const char * const l_LuaResetDump = R"EOF(
|
||||||
|
|
||||||
|
local id = redis.call('XADD', KEYS[1], '*', 'type', '*', 'state', 'wip')
|
||||||
|
|
||||||
|
local xr = redis.call('XRANGE', KEYS[1], '-', '+')
|
||||||
|
for i = 1, #xr - 1 do
|
||||||
|
redis.call('XDEL', KEYS[1], xr[i][1])
|
||||||
|
end
|
||||||
|
|
||||||
|
return id
|
||||||
|
|
||||||
|
)EOF";
|
||||||
|
|
||||||
INITIALIZE_ONCE(&RedisWriter::ConfigStaticInitialize);
|
INITIALIZE_ONCE(&RedisWriter::ConfigStaticInitialize);
|
||||||
|
|
||||||
void RedisWriter::ConfigStaticInitialize()
|
void RedisWriter::ConfigStaticInitialize()
|
||||||
|
@ -109,6 +122,8 @@ void RedisWriter::UpdateAllConfigObjects()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_Rcon->FireAndForgetQuery({"EVAL", l_LuaResetDump, "1", "icinga:dump"});
|
||||||
|
|
||||||
const std::vector<String> globalKeys = {
|
const std::vector<String> globalKeys = {
|
||||||
m_PrefixConfigObject + "customvar",
|
m_PrefixConfigObject + "customvar",
|
||||||
m_PrefixConfigObject + "action_url",
|
m_PrefixConfigObject + "action_url",
|
||||||
|
@ -187,8 +202,6 @@ void RedisWriter::UpdateAllConfigObjects()
|
||||||
m_Rcon->FireAndForgetQueries(std::move(transaction));
|
m_Rcon->FireAndForgetQueries(std::move(transaction));
|
||||||
}
|
}
|
||||||
|
|
||||||
m_Rcon->FireAndForgetQuery({"PUBLISH", "icinga:config:dump", lcType});
|
|
||||||
|
|
||||||
Log(LogNotice, "RedisWriter")
|
Log(LogNotice, "RedisWriter")
|
||||||
<< "Dumped " << bulkCounter << " objects of type " << type.second;
|
<< "Dumped " << bulkCounter << " objects of type " << type.second;
|
||||||
});
|
});
|
||||||
|
@ -202,6 +215,8 @@ void RedisWriter::UpdateAllConfigObjects()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_Rcon->FireAndForgetQuery({"XADD", "icinga:dump", "*", "type", lcType, "state", "done"});
|
||||||
});
|
});
|
||||||
|
|
||||||
upq.Join();
|
upq.Join();
|
||||||
|
@ -219,6 +234,8 @@ void RedisWriter::UpdateAllConfigObjects()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_Rcon->FireAndForgetQuery({"XADD", "icinga:dump", "*", "type", "*", "state", "done"});
|
||||||
|
|
||||||
Log(LogInformation, "RedisWriter")
|
Log(LogInformation, "RedisWriter")
|
||||||
<< "Initial config/status dump finished in " << Utility::GetTime() - startTime << " seconds.";
|
<< "Initial config/status dump finished in " << Utility::GetTime() - startTime << " seconds.";
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue