mirror of
https://github.com/Icinga/icingaweb2-module-director.git
synced 2025-07-29 16:54:06 +02:00
Updates: clean code for whitespace/standards...
...issues as reported by Travis. Add requirement for parent and child host fields when setting up a Dependency Object (these fields are not necessarily needed for Templates or Apply Rules). Renamed new table field to 'parent_service_by_name'... which is a bit more descriptive or what that field is intended for.
This commit is contained in:
parent
6bea1eff41
commit
708edfdebc
@ -23,7 +23,6 @@ class DependencyController extends ObjectController
|
|||||||
$this->db()
|
$this->db()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function loadObject()
|
protected function loadObject()
|
||||||
@ -54,7 +53,4 @@ class DependencyController extends ObjectController
|
|||||||
$form->createApplyRuleFor($this->apply);
|
$form->createApplyRuleFor($this->apply);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -99,7 +99,7 @@ class SuggestController extends ActionController
|
|||||||
$db = $this->db()->getDbAdapter();
|
$db = $this->db()->getDbAdapter();
|
||||||
$for_host = $this->getRequest()->getPost('for_host');
|
$for_host = $this->getRequest()->getPost('for_host');
|
||||||
if (!empty($for_host)) {
|
if (!empty($for_host)) {
|
||||||
$tmp_host = IcingaHost::load($for_host,$this->db());
|
$tmp_host = IcingaHost::load($for_host, $this->db());
|
||||||
}
|
}
|
||||||
|
|
||||||
$query = $db->select()->distinct()
|
$query = $db->select()->distinct()
|
||||||
@ -107,9 +107,9 @@ class SuggestController extends ActionController
|
|||||||
->order('object_name')
|
->order('object_name')
|
||||||
->where("object_type IN ('object','apply')");
|
->where("object_type IN ('object','apply')");
|
||||||
if (!empty($tmp_host)) {
|
if (!empty($tmp_host)) {
|
||||||
$query->where('host_id = ?',$tmp_host->id);
|
$query->where('host_id = ?', $tmp_host->id);
|
||||||
}
|
}
|
||||||
$r = array_merge($r,$db->fetchCol($query));
|
$r = array_merge($r, $db->fetchCol($query));
|
||||||
if (!empty($tmp_host)) {
|
if (!empty($tmp_host)) {
|
||||||
$resolver = $tmp_host->templateResolver();
|
$resolver = $tmp_host->templateResolver();
|
||||||
foreach ($resolver->fetchResolvedParents() as $template_obj) {
|
foreach ($resolver->fetchResolvedParents() as $template_obj) {
|
||||||
@ -118,7 +118,7 @@ class SuggestController extends ActionController
|
|||||||
->order('object_name')
|
->order('object_name')
|
||||||
->where("object_type IN ('object','apply')")
|
->where("object_type IN ('object','apply')")
|
||||||
->where('host_id = ?', $template_obj->id);
|
->where('host_id = ?', $template_obj->id);
|
||||||
$r = array_merge($r,$db->fetchCol($query));
|
$r = array_merge($r, $db->fetchCol($query));
|
||||||
}
|
}
|
||||||
|
|
||||||
$matcher = HostApplyMatches::prepare($tmp_host);
|
$matcher = HostApplyMatches::prepare($tmp_host);
|
||||||
@ -127,7 +127,6 @@ class SuggestController extends ActionController
|
|||||||
$r[]=$rule->name;
|
$r[]=$rule->name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
natcasesort($r);
|
natcasesort($r);
|
||||||
return $r;
|
return $r;
|
||||||
@ -288,8 +287,4 @@ class SuggestController extends ActionController
|
|||||||
|
|
||||||
return $db->fetchAll($query);
|
return $db->fetchAll($query);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -14,8 +14,8 @@ class IcingaDependencyForm extends DirectorObjectForm
|
|||||||
$this->setupDependencyElements();
|
$this->setupDependencyElements();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function setupDependencyElements() {
|
protected function setupDependencyElements()
|
||||||
|
{
|
||||||
$this->addObjectTypeElement();
|
$this->addObjectTypeElement();
|
||||||
if (! $this->hasObjectType()) {
|
if (! $this->hasObjectType()) {
|
||||||
$this->groupMainProperties();
|
$this->groupMainProperties();
|
||||||
@ -112,7 +112,8 @@ class IcingaDependencyForm extends DirectorObjectForm
|
|||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function addBooleanElements() {
|
protected function addBooleanElements()
|
||||||
|
{
|
||||||
|
|
||||||
$this->addBoolean(
|
$this->addBoolean(
|
||||||
'disable_checks',
|
'disable_checks',
|
||||||
@ -157,6 +158,7 @@ class IcingaDependencyForm extends DirectorObjectForm
|
|||||||
'class' => "autosubmit director-suggest",
|
'class' => "autosubmit director-suggest",
|
||||||
'data-suggestion-context' => 'hostnames',
|
'data-suggestion-context' => 'hostnames',
|
||||||
'order' => 10,
|
'order' => 10,
|
||||||
|
'required' => $this->isObject(),
|
||||||
'value' => $this->getObject()->get('parent_host')
|
'value' => $this->getObject()->get('parent_host')
|
||||||
|
|
||||||
)
|
)
|
||||||
@ -177,10 +179,8 @@ class IcingaDependencyForm extends DirectorObjectForm
|
|||||||
'data-suggestion-for-host' => $sent_parent,
|
'data-suggestion-for-host' => $sent_parent,
|
||||||
'order' => 20,
|
'order' => 20,
|
||||||
'value' => $this->getObject()->get('parent_service')
|
'value' => $this->getObject()->get('parent_service')
|
||||||
|
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// If configuring Object, allow selection of child host and/or service, otherwise apply rules will determine child object.
|
// If configuring Object, allow selection of child host and/or service, otherwise apply rules will determine child object.
|
||||||
@ -196,12 +196,13 @@ class IcingaDependencyForm extends DirectorObjectForm
|
|||||||
'class' => "autosubmit director-suggest",
|
'class' => "autosubmit director-suggest",
|
||||||
'data-suggestion-context' => 'hostnames',
|
'data-suggestion-context' => 'hostnames',
|
||||||
'order' => 30,
|
'order' => 30,
|
||||||
|
'required' => $this->isObject(),
|
||||||
'value' => $this->getObject()->get('child_host')
|
'value' => $this->getObject()->get('child_host')
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
$sent_child=$this->getSentOrObjectValue("child_host");
|
$sent_child=$this->getSentOrObjectValue("child_host");
|
||||||
|
|
||||||
if (!empty($sent_child)) {
|
if (!empty($sent_child)) {
|
||||||
$this->addElement(
|
$this->addElement(
|
||||||
'text',
|
'text',
|
||||||
@ -216,11 +217,8 @@ class IcingaDependencyForm extends DirectorObjectForm
|
|||||||
'data-suggestion-for-host' => $sent_child,
|
'data-suggestion-for-host' => $sent_child,
|
||||||
'order' => 40,
|
'order' => 40,
|
||||||
'value' => $this->getObject()->get('child_service')
|
'value' => $this->getObject()->get('child_service')
|
||||||
|
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -247,6 +245,4 @@ class IcingaDependencyForm extends DirectorObjectForm
|
|||||||
$object->object_name = $dependency->object_name;
|
$object->object_name = $dependency->object_name;
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -50,7 +50,6 @@ class IcingaDependencyTable extends IcingaObjectTable
|
|||||||
array('apply' => $row->dependency, 'type' => 'apply'),
|
array('apply' => $row->dependency, 'type' => 'apply'),
|
||||||
array('class' => 'icon-plus')
|
array('class' => 'icon-plus')
|
||||||
);
|
);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$htm .= '. Related apply rules: <ul class="apply-rules">';
|
$htm .= '. Related apply rules: <ul class="apply-rules">';
|
||||||
foreach ($extra as $id => $dependency) {
|
foreach ($extra as $id => $dependency) {
|
||||||
|
@ -8,7 +8,6 @@ use Icinga\Exception\NotFoundError;
|
|||||||
use Icinga\Data\Filter\Filter;
|
use Icinga\Data\Filter\Filter;
|
||||||
use Icinga\Module\Director\Objects\HostApplyMatches;
|
use Icinga\Module\Director\Objects\HostApplyMatches;
|
||||||
|
|
||||||
|
|
||||||
class IcingaDependency extends IcingaObject
|
class IcingaDependency extends IcingaObject
|
||||||
{
|
{
|
||||||
protected $table = 'icinga_dependency';
|
protected $table = 'icinga_dependency';
|
||||||
@ -29,7 +28,7 @@ class IcingaDependency extends IcingaObject
|
|||||||
'period_id' => null,
|
'period_id' => null,
|
||||||
'zone_id' => null,
|
'zone_id' => null,
|
||||||
'assign_filter' => null,
|
'assign_filter' => null,
|
||||||
'parent_service_s' => null,
|
'parent_service_by_name' => null,
|
||||||
);
|
);
|
||||||
|
|
||||||
protected $supportsCustomVars = false;
|
protected $supportsCustomVars = false;
|
||||||
@ -88,7 +87,6 @@ class IcingaDependency extends IcingaObject
|
|||||||
c::renderString($this->getObjectName()),
|
c::renderString($this->getObjectName()),
|
||||||
ucfirst($to)
|
ucfirst($to)
|
||||||
);
|
);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
return parent::renderObjectHeader();
|
return parent::renderObjectHeader();
|
||||||
}
|
}
|
||||||
@ -114,13 +112,13 @@ class IcingaDependency extends IcingaObject
|
|||||||
protected function renderAssignments()
|
protected function renderAssignments()
|
||||||
{
|
{
|
||||||
if ($this->hasBeenAssignedToServiceApply()) {
|
if ($this->hasBeenAssignedToServiceApply()) {
|
||||||
|
|
||||||
$tmpService= $this->getRelatedObject('child_service', $this->child_service_id);
|
$tmpService= $this->getRelatedObject('child_service', $this->child_service_id);
|
||||||
$assigns = $tmpService->assignments()->toConfigString();
|
$assigns = $tmpService->assignments()->toConfigString();
|
||||||
|
|
||||||
$filter = sprintf(
|
$filter = sprintf(
|
||||||
'%s && service.name == "%s"',
|
'%s && service.name == "%s"',
|
||||||
trim($assigns), $this->child_service
|
trim($assigns),
|
||||||
|
$this->child_service
|
||||||
);
|
);
|
||||||
return "\n " . $filter . "\n";
|
return "\n " . $filter . "\n";
|
||||||
}
|
}
|
||||||
@ -128,7 +126,8 @@ class IcingaDependency extends IcingaObject
|
|||||||
if ($this->hasBeenAssignedToHostTemplateService()) {
|
if ($this->hasBeenAssignedToHostTemplateService()) {
|
||||||
$filter = sprintf(
|
$filter = sprintf(
|
||||||
'assign where "%s" in host.templates && service.name == "%s"',
|
'assign where "%s" in host.templates && service.name == "%s"',
|
||||||
$this->child_host, $this->child_service
|
$this->child_host,
|
||||||
|
$this->child_service
|
||||||
);
|
);
|
||||||
return "\n " . $filter . "\n";
|
return "\n " . $filter . "\n";
|
||||||
}
|
}
|
||||||
@ -177,7 +176,9 @@ class IcingaDependency extends IcingaObject
|
|||||||
|
|
||||||
protected function hasBeenAssignedToHostTemplateService()
|
protected function hasBeenAssignedToHostTemplateService()
|
||||||
{
|
{
|
||||||
if (!$this->hasBeenAssignedToHostTemplate()) return false;
|
if (!$this->hasBeenAssignedToHostTemplate()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
return $this->child_service_id && $this->getRelatedObject(
|
return $this->child_service_id && $this->getRelatedObject(
|
||||||
'child_service',
|
'child_service',
|
||||||
@ -276,9 +277,9 @@ class IcingaDependency extends IcingaObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
//special case for parent service set as plain string for Apply rules
|
//special case for parent service set as plain string for Apply rules
|
||||||
public function renderParent_service_s()
|
public function renderParent_service_by_name()
|
||||||
{
|
{
|
||||||
return "\n parent_service_name = \"" . $this->parent_service_s ."\"\n";
|
return "\n parent_service_name = \"" . $this->parent_service_by_name ."\"\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isApplyRule()
|
public function isApplyRule()
|
||||||
@ -311,14 +312,14 @@ class IcingaDependency extends IcingaObject
|
|||||||
if ($class == "Icinga\Module\Director\Objects\IcingaService" ) {
|
if ($class == "Icinga\Module\Director\Objects\IcingaService" ) {
|
||||||
if ($name == "parent_service_id" && $this->object_type == 'apply' ) { //special case , parent service can be set as simple string for Apply
|
if ($name == "parent_service_id" && $this->object_type == 'apply' ) { //special case , parent service can be set as simple string for Apply
|
||||||
if ($this->properties['parent_host_id']==null) {
|
if ($this->properties['parent_host_id']==null) {
|
||||||
$this->reallySet('parent_service_s', $this->unresolvedRelatedProperties[$name]);
|
$this->reallySet('parent_service_by_name', $this->unresolvedRelatedProperties[$name]);
|
||||||
$this->reallySet('parent_service_id',null);
|
$this->reallySet('parent_service_id',null);
|
||||||
unset($this->unresolvedRelatedProperties[$name]);
|
unset($this->unresolvedRelatedProperties[$name]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->reallySet('parent_service_s',null);
|
$this->reallySet('parent_service_by_name',null);
|
||||||
$host_id_prop=str_replace("service","host",$name);
|
$host_id_prop=str_replace("service","host",$name);
|
||||||
if (isset($this->properties[$host_id_prop])) {
|
if (isset($this->properties[$host_id_prop])) {
|
||||||
$obj_key=array("host_id" => $this->properties[$host_id_prop], "object_name" => $this->unresolvedRelatedProperties[$name]);
|
$obj_key=array("host_id" => $this->properties[$host_id_prop], "object_name" => $this->unresolvedRelatedProperties[$name]);
|
||||||
@ -410,8 +411,8 @@ class IcingaDependency extends IcingaObject
|
|||||||
return $object->get('object_name');
|
return $object->get('object_name');
|
||||||
} else {
|
} else {
|
||||||
// handle special case for plain string parent service on Dependency Apply rules
|
// handle special case for plain string parent service on Dependency Apply rules
|
||||||
if ($key == 'parent_service' && $this->get('parent_service_s') != null) {
|
if ($key == 'parent_service' && $this->get('parent_service_by_name') != null) {
|
||||||
return $this->get('parent_service_s');
|
return $this->get('parent_service_by_name');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2699,7 +2699,7 @@ abstract class IcingaObject extends DbObject implements IcingaConfigRenderer
|
|||||||
|
|
||||||
public function getOnDeleteUrl()
|
public function getOnDeleteUrl()
|
||||||
{
|
{
|
||||||
$plural= preg_replace('/cys$/','cies', strtolower($this->getShortTableName()) . 's');
|
$plural= preg_replace('/cys$/', 'cies', strtolower($this->getShortTableName()) . 's');
|
||||||
return 'director/' . $plural;
|
return 'director/' . $plural;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ class TemplateActionBar extends DirectorBaseActionBar
|
|||||||
protected function assemble()
|
protected function assemble()
|
||||||
{
|
{
|
||||||
$type = $this->type;
|
$type = $this->type;
|
||||||
$pltype = preg_replace('/cys$/','cies', $type . 's');
|
$pltype = preg_replace('/cys$/', 'cies', $type . 's');
|
||||||
$renderTree = $this->url->getParam('render') === 'tree';
|
$renderTree = $this->url->getParam('render') === 'tree';
|
||||||
$renderParams = $renderTree ? null : ['render' => 'tree'];
|
$renderParams = $renderTree ? null : ['render' => 'tree'];
|
||||||
$this->add(
|
$this->add(
|
||||||
|
@ -306,11 +306,11 @@ abstract class ObjectsController extends ActionController
|
|||||||
|
|
||||||
protected function getPluralType()
|
protected function getPluralType()
|
||||||
{
|
{
|
||||||
return preg_replace("/cys$/","cies",$this->getType() . 's');
|
return preg_replace("/cys$/", "cies", $this->getType() . 's');
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getPluralBaseType()
|
protected function getPluralBaseType()
|
||||||
{
|
{
|
||||||
return preg_replace("/cys$/","cies",$this->getBaseType() . 's');
|
return preg_replace("/cys$/", "cies", $this->getBaseType() . 's');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -177,7 +177,7 @@ abstract class TemplateController extends CompatController
|
|||||||
|
|
||||||
protected function getPluralType()
|
protected function getPluralType()
|
||||||
{
|
{
|
||||||
return preg_replace('/cys$/','cies',$this->template()->getShortTableName() . 's');
|
return preg_replace('/cys$/', 'cies', $this->template()->getShortTableName() . 's');
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getTranslatedType()
|
protected function getTranslatedType()
|
||||||
|
@ -18,7 +18,7 @@ class ObjectsTabs extends Tabs
|
|||||||
$object = IcingaObject::createByType(substr($type, 0, -5));
|
$object = IcingaObject::createByType(substr($type, 0, -5));
|
||||||
}
|
}
|
||||||
|
|
||||||
$pltype=strtolower(preg_replace('/cys$/','cies',$type . 's'));
|
$pltype=strtolower(preg_replace('/cys$/', 'cies', $type . 's'));
|
||||||
if ($auth->hasPermission("director/${pltype}")) {
|
if ($auth->hasPermission("director/${pltype}")) {
|
||||||
$this->add('index', array(
|
$this->add('index', array(
|
||||||
'url' => sprintf('director/%s', $pltype),
|
'url' => sprintf('director/%s', $pltype),
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
|
|
||||||
ALTER TABLE icinga_dependency ADD COLUMN parent_service_s VARCHAR(255);
|
ALTER TABLE icinga_dependency ADD COLUMN parent_service_by_name VARCHAR(255);
|
||||||
|
@ -1591,7 +1591,7 @@ CREATE TABLE icinga_dependency (
|
|||||||
period_id INT(10) UNSIGNED DEFAULT NULL,
|
period_id INT(10) UNSIGNED DEFAULT NULL,
|
||||||
zone_id INT(10) UNSIGNED DEFAULT NULL,
|
zone_id INT(10) UNSIGNED DEFAULT NULL,
|
||||||
assign_filter TEXT DEFAULT NULL,
|
assign_filter TEXT DEFAULT NULL,
|
||||||
parent_service_s VARCHAR(255) DEFAULT NULL,
|
parent_service_by_name VARCHAR(255) DEFAULT NULL,
|
||||||
PRIMARY KEY (id),
|
PRIMARY KEY (id),
|
||||||
CONSTRAINT icinga_dependency_parent_host
|
CONSTRAINT icinga_dependency_parent_host
|
||||||
FOREIGN KEY parent_host (parent_host_id)
|
FOREIGN KEY parent_host (parent_host_id)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user