mirror of
https://github.com/Icinga/icingaweb2-module-director.git
synced 2025-09-25 18:59:05 +02:00
SyncRun/CheckForm: add new forms
This commit is contained in:
parent
9387b92da1
commit
e71dcea9d6
65
application/forms/SyncCheckForm.php
Normal file
65
application/forms/SyncCheckForm.php
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// TODO: Check whether this can be removed
|
||||||
|
namespace Icinga\Module\Director\Forms;
|
||||||
|
|
||||||
|
use Icinga\Module\Director\Objects\SyncRule;
|
||||||
|
use Icinga\Module\Director\Web\Form\QuickForm;
|
||||||
|
|
||||||
|
class SyncCheckForm extends QuickForm
|
||||||
|
{
|
||||||
|
protected $rule;
|
||||||
|
|
||||||
|
public function setSyncRule(SyncRule $rule)
|
||||||
|
{
|
||||||
|
$this->rule = $rule;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setup()
|
||||||
|
{
|
||||||
|
$this->submitLabel = $this->translate(
|
||||||
|
'Check for changes'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function onSuccess()
|
||||||
|
{
|
||||||
|
if ($this->rule->checkForChanges()) {
|
||||||
|
$this->setSuccessMessage(
|
||||||
|
$this->translate(('This Sync Rule would apply new changes'))
|
||||||
|
);
|
||||||
|
$html = '';
|
||||||
|
$sum = array('create' => 0, 'modify' => 0, 'delete' => 0);
|
||||||
|
|
||||||
|
// TODO: Preview them? Like "hosta, hostb and 4 more would be...
|
||||||
|
foreach ($this->rule->getExpectedModifications() as $object) {
|
||||||
|
if ($object->shouldBeRemoved()) {
|
||||||
|
$sum['delete']++;
|
||||||
|
} elseif (! $object->hasBeenLoadedFromDb()) {
|
||||||
|
$sum['create']++;
|
||||||
|
} elseif ($object->hasBeenModified()) {
|
||||||
|
$sum['modify']++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
if ($sum['modify'] === 1) {
|
||||||
|
$html .= $this->translate('One object would be modified'
|
||||||
|
} elseif ($sum['modify'] > 1) {
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
$html = '<pre>' . print_r($sum, 1) . '</pre>';
|
||||||
|
|
||||||
|
$this->addHtml($html);
|
||||||
|
} elseif ($this->rule->sync_state === 'in-sync') {
|
||||||
|
$this->setSuccessMessage(
|
||||||
|
$this->translate('Nothing would change, this rule is still in sync')
|
||||||
|
);
|
||||||
|
parent::onSuccess();
|
||||||
|
} else {
|
||||||
|
$this->addError($this->translate('Checking this sync rule failed'));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
46
application/forms/SyncRunForm.php
Normal file
46
application/forms/SyncRunForm.php
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// TODO: Check whether this can be removed
|
||||||
|
namespace Icinga\Module\Director\Forms;
|
||||||
|
|
||||||
|
use Icinga\Module\Director\Objects\SyncRule;
|
||||||
|
use Icinga\Module\Director\Web\Form\QuickForm;
|
||||||
|
|
||||||
|
class SyncRunForm extends QuickForm
|
||||||
|
{
|
||||||
|
protected $rule;
|
||||||
|
|
||||||
|
public function setSyncRule(SyncRule $rule)
|
||||||
|
{
|
||||||
|
$this->rule = $rule;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setup()
|
||||||
|
{
|
||||||
|
$this->submitLabel = $this->translate(
|
||||||
|
'Trigger this Sync'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function onSuccess()
|
||||||
|
{
|
||||||
|
$rule = $this->rule;
|
||||||
|
$changed = $rule->applyChanges();
|
||||||
|
|
||||||
|
if ($changed) {
|
||||||
|
$runId = $rule->getCurrentSyncRunId();
|
||||||
|
$this->setSuccessMessage(
|
||||||
|
$this->translate(('Source has successfully been synchronized'))
|
||||||
|
);
|
||||||
|
} elseif ($rule->sync_state === 'in-sync') {
|
||||||
|
$this->setSuccessMessage(
|
||||||
|
$this->translate('Nothing changed, rule is in sync')
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$this->addError($this->translate('Synchronization failed'));
|
||||||
|
}
|
||||||
|
|
||||||
|
parent::onSuccess();
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user