IcingaEndpoint: add api user and client helper

This commit is contained in:
Thomas Gelf 2016-02-17 16:39:18 +01:00
parent 7b6747ab67
commit 402b4c31e2
1 changed files with 33 additions and 0 deletions

View File

@ -2,6 +2,9 @@
namespace Icinga\Module\Director\Objects; namespace Icinga\Module\Director\Objects;
use Icinga\Module\Director\Core\CoreApi;
use Icinga\Module\Director\Core\RestApiClient;
class IcingaEndpoint extends IcingaObject class IcingaEndpoint extends IcingaObject
{ {
protected $table = 'icinga_endpoint'; protected $table = 'icinga_endpoint';
@ -25,6 +28,36 @@ class IcingaEndpoint extends IcingaObject
'apiuser' => 'IcingaApiUser', 'apiuser' => 'IcingaApiUser',
); );
public function hasApiUser()
{
return $this->getResolvedProperty('apiuser_id') !== null;
}
public function getApiUser()
{
return $this->getRelatedObject(
'apiuser',
$this->getResolvedProperty('apiuser_id')
);
}
public function api()
{
$client = new RestApiClient(
$this->getResolvedProperty('host'),
$this->getResolvedProperty('port')
);
$user = $this->getApiUser();
$client->setCredentials(
// TODO: $user->client_dn,
$user->object_name,
$user->password
);
return new CoreApi($client);
}
protected function renderLog_duration() protected function renderLog_duration()
{ {
return $this->renderPropertyAsSeconds('log_duration'); return $this->renderPropertyAsSeconds('log_duration');