mirror of https://github.com/Icinga/icinga2.git
API: Set zone attribute for local zone if not specified
This allows to sync the object to other nodes in the same zone on reconnect. refs #11684
This commit is contained in:
parent
5dd4898eb3
commit
72bf538c29
|
@ -22,6 +22,7 @@
|
|||
#include "remote/httputility.hpp"
|
||||
#include "remote/filterutility.hpp"
|
||||
#include "remote/apiaction.hpp"
|
||||
#include "remote/zone.hpp"
|
||||
#include "base/configtype.hpp"
|
||||
#include <boost/algorithm/string.hpp>
|
||||
#include <set>
|
||||
|
@ -51,6 +52,18 @@ bool CreateObjectHandler::HandleRequest(const ApiUser::Ptr& user, HttpRequest& r
|
|||
Array::Ptr templates = params->Get("templates");
|
||||
Dictionary::Ptr attrs = params->Get("attrs");
|
||||
|
||||
/* Put created objects into the local zone if not explicitely defined.
|
||||
* This allows additional zone members to sync the
|
||||
* configuration at some later point.
|
||||
*/
|
||||
Zone::Ptr localZone = Zone::GetLocalZone();
|
||||
String localZoneName;
|
||||
|
||||
if (localZone && !attrs->Contains("zone")) {
|
||||
localZoneName = localZone->GetName();
|
||||
attrs->Set("zone", localZoneName);
|
||||
}
|
||||
|
||||
Dictionary::Ptr result1 = new Dictionary();
|
||||
String status;
|
||||
Array::Ptr errors = new Array();
|
||||
|
|
Loading…
Reference in New Issue