SyncRun/CheckForm: add new forms
This commit is contained in:
parent
9387b92da1
commit
e71dcea9d6
|
@ -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'));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -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…
Reference in New Issue