mirror of https://github.com/Icinga/icinga2.git
Provide location information for objects and templates in the API
fixes #12566
This commit is contained in:
parent
eafe4c578d
commit
602643b93d
|
@ -387,7 +387,7 @@ The following URL parameters are available:
|
|||
-----------|--------------|----------------------------
|
||||
attrs | string array | **Optional.** Limits attributes in the output.
|
||||
joins | string array | **Optional.** Join related object types and their attributes (`?joins=host` for the entire set, or selectively by `?joins=host.name`).
|
||||
meta | string array | **Optional.** Enable meta information using `?meta=used_by`. Defaults to disabled.
|
||||
meta | string array | **Optional.** Enable meta information using `?meta=used_by` (references from other objects) and/or `?meta=location` (location information). Defaults to disabled.
|
||||
|
||||
In addition to these parameters a [filter](12-icinga2-api.md#icinga2-api-filters) may be provided.
|
||||
|
||||
|
@ -663,7 +663,7 @@ URL path when querying a single object:
|
|||
|
||||
$ curl -k -s -u root:icinga 'https://localhost:5665/v1/templates/hosts/generic-host'
|
||||
|
||||
The result set contains the type and name of the template.
|
||||
The result set contains the type, name as well as the location of the template.
|
||||
|
||||
## <a id="icinga2-api-variables"></a> Variables
|
||||
|
||||
|
|
|
@ -201,6 +201,15 @@ bool ObjectQueryHandler::HandleRequest(const ApiUser::Ptr& user, HttpRequest& re
|
|||
refInfo->Set("name", configObj->GetName());
|
||||
used_by->Add(refInfo);
|
||||
}
|
||||
} else if (meta == "location") {
|
||||
DebugInfo di = obj->GetDebugInfo();
|
||||
Dictionary::Ptr dinfo = new Dictionary();
|
||||
dinfo->Set("path", di.Path);
|
||||
dinfo->Set("first_line", di.FirstLine);
|
||||
dinfo->Set("first_column", di.FirstColumn);
|
||||
dinfo->Set("last_line", di.LastLine);
|
||||
dinfo->Set("last_column", di.LastColumn);
|
||||
metaAttrs->Set("location", dinfo);
|
||||
} else {
|
||||
HttpUtility::SendJsonError(response, 400, "Invalid field specified for meta: " + meta);
|
||||
return true;
|
||||
|
|
|
@ -41,6 +41,16 @@ public:
|
|||
Dictionary::Ptr target = new Dictionary();
|
||||
target->Set("name", item->GetName());
|
||||
target->Set("type", item->GetType());
|
||||
|
||||
DebugInfo di = item->GetDebugInfo();
|
||||
Dictionary::Ptr dinfo = new Dictionary();
|
||||
dinfo->Set("path", di.Path);
|
||||
dinfo->Set("first_line", di.FirstLine);
|
||||
dinfo->Set("first_column", di.FirstColumn);
|
||||
dinfo->Set("last_line", di.LastLine);
|
||||
dinfo->Set("last_column", di.LastColumn);
|
||||
target->Set("location", dinfo);
|
||||
|
||||
return target;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue