IcingaObjectGroup: provide groups for assign rules
This commit is contained in:
parent
b3eb5ea102
commit
6e83a4fd5b
|
@ -139,6 +139,8 @@ class IcingaHost extends IcingaObject
|
||||||
$properties[$props] = $hostProperties;
|
$properties[$props] = $hostProperties;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$properties['groups'] = 'Groups';
|
||||||
|
|
||||||
if (!empty($hostVars)) {
|
if (!empty($hostVars)) {
|
||||||
$properties[$vars] = $hostVars;
|
$properties[$vars] = $hostVars;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,9 @@
|
||||||
|
|
||||||
namespace Icinga\Module\Director\Objects;
|
namespace Icinga\Module\Director\Objects;
|
||||||
|
|
||||||
|
use Icinga\Application\Config;
|
||||||
|
use Icinga\Exception\IcingaException;
|
||||||
|
use Icinga\Module\Director\Db;
|
||||||
use Icinga\Module\Director\IcingaConfig\IcingaConfig;
|
use Icinga\Module\Director\IcingaConfig\IcingaConfig;
|
||||||
|
|
||||||
abstract class IcingaObjectGroup extends IcingaObject
|
abstract class IcingaObjectGroup extends IcingaObject
|
||||||
|
@ -21,4 +24,32 @@ abstract class IcingaObjectGroup extends IcingaObject
|
||||||
{
|
{
|
||||||
return $this->connection->getDefaultGlobalZoneName();
|
return $this->connection->getDefaultGlobalZoneName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function enumForType($type, Db $connection = null)
|
||||||
|
{
|
||||||
|
if ($connection === null) {
|
||||||
|
// TODO: not nice :(
|
||||||
|
$connection = Db::fromResourceName(
|
||||||
|
Config::module('director')->get('db', 'resource')
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Last resort defense against potentiall lousy checks:
|
||||||
|
if (! ctype_alpha($type)) {
|
||||||
|
throw new IcingaException(
|
||||||
|
'Holy shit, you should never have reached this'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$db = $connection->getDbAdapter();
|
||||||
|
$select = $db->select()->from(
|
||||||
|
'icinga_' . $type . 'group',
|
||||||
|
array(
|
||||||
|
'name' => 'object_name',
|
||||||
|
'display' => 'COALESCE(display_name, object_name)'
|
||||||
|
)
|
||||||
|
)->where('object_type = ?', 'object')->order('display');
|
||||||
|
|
||||||
|
return $db->fetchPairs($select);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue