ImportExportDeniedProperties: extract logic
This commit is contained in:
parent
74ea9adbf2
commit
079e6e6514
|
@ -20,7 +20,6 @@ use Icinga\Module\Director\Objects\IcingaObject;
|
|||
use Icinga\Module\Director\Objects\IcingaService;
|
||||
use Icinga\Module\Director\Objects\IcingaServiceSet;
|
||||
use Icinga\Module\Director\Objects\IcingaTemplateChoice;
|
||||
use Icinga\Module\Director\Objects\ImportRowModifier;
|
||||
use Icinga\Module\Director\Objects\ImportSource;
|
||||
use Icinga\Module\Director\Objects\InstantiatedViaHook;
|
||||
use Icinga\Module\Director\Objects\SyncRule;
|
||||
|
@ -34,29 +33,6 @@ use Zend_Db_Select;
|
|||
|
||||
class Exporter
|
||||
{
|
||||
protected static $denyProperties = [
|
||||
DirectorJob::class => [
|
||||
'last_attempt_succeeded',
|
||||
'last_error_message',
|
||||
'ts_last_attempt',
|
||||
'ts_last_error',
|
||||
],
|
||||
ImportSource::class => [
|
||||
// No state export
|
||||
'import_state',
|
||||
'last_error_message',
|
||||
'last_attempt',
|
||||
],
|
||||
ImportRowModifier::class => [
|
||||
// Not state, but to be removed:
|
||||
'source_id',
|
||||
],
|
||||
SyncRule::class => [
|
||||
'sync_state',
|
||||
'last_error_message',
|
||||
'last_attempt',
|
||||
],
|
||||
];
|
||||
|
||||
/** @var Adapter|\Zend_Db_Adapter_Abstract */
|
||||
protected $db;
|
||||
|
@ -89,7 +65,7 @@ class Exporter
|
|||
? $this->exportIcingaObject($object)
|
||||
: $this->exportDbObject($object);
|
||||
|
||||
$this->stripDeniedProperties($props, $object);
|
||||
ImportExportDeniedProperties::strip($props, $object, $this->showIds);
|
||||
$this->appendTypeSpecificRelations($props, $object);
|
||||
|
||||
if ($this->chosenProperties !== null) {
|
||||
|
@ -344,21 +320,6 @@ class Exporter
|
|||
return $db->fetchOne($query);
|
||||
}
|
||||
|
||||
protected function stripDeniedProperties(array &$props, DbObject $object)
|
||||
{
|
||||
// TODO: this used to exist. Double-check all imports to verify it's not in use
|
||||
// $originalId = $props['id'];
|
||||
if (! $this->showIds) {
|
||||
unset($props['id']);
|
||||
}
|
||||
$class = get_class($object);
|
||||
if (isset(self::$denyProperties[$class])) {
|
||||
foreach (self::$denyProperties[$class] as $key) {
|
||||
unset($props[$key]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function exportRowModifiers(ImportSource $object)
|
||||
{
|
||||
$modifiers = [];
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
<?php
|
||||
|
||||
namespace Icinga\Module\Director\Data;
|
||||
|
||||
use Icinga\Module\Director\Data\Db\DbObject;
|
||||
use Icinga\Module\Director\Objects\DirectorJob;
|
||||
use Icinga\Module\Director\Objects\ImportRowModifier;
|
||||
use Icinga\Module\Director\Objects\ImportSource;
|
||||
use Icinga\Module\Director\Objects\SyncRule;
|
||||
|
||||
class ImportExportDeniedProperties
|
||||
{
|
||||
protected static $denyProperties = [
|
||||
DirectorJob::class => [
|
||||
'last_attempt_succeeded',
|
||||
'last_error_message',
|
||||
'ts_last_attempt',
|
||||
'ts_last_error',
|
||||
],
|
||||
ImportSource::class => [
|
||||
// No state export
|
||||
'import_state',
|
||||
'last_error_message',
|
||||
'last_attempt',
|
||||
],
|
||||
ImportRowModifier::class => [
|
||||
// Not state, but to be removed:
|
||||
'source_id',
|
||||
],
|
||||
SyncRule::class => [
|
||||
'sync_state',
|
||||
'last_error_message',
|
||||
'last_attempt',
|
||||
],
|
||||
];
|
||||
|
||||
public static function strip(array &$props, DbObject $object, $showIds = false)
|
||||
{
|
||||
// TODO: this used to exist. Double-check all imports to verify it's not in use
|
||||
// $originalId = $props['id'];
|
||||
|
||||
if (! $showIds) {
|
||||
unset($props['id']);
|
||||
}
|
||||
$class = get_class($object);
|
||||
if (isset(self::$denyProperties[$class])) {
|
||||
foreach (self::$denyProperties[$class] as $key) {
|
||||
unset($props[$key]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue