BasketController: show details, content checksum

This commit is contained in:
Thomas Gelf 2018-10-08 06:16:31 +02:00
parent 6e25c05d89
commit 03a8043311
1 changed files with 13 additions and 4 deletions

View File

@ -5,6 +5,7 @@ namespace Icinga\Module\Director\Controllers;
use dipl\Html\Link; use dipl\Html\Link;
use dipl\Web\Widget\NameValueTable; use dipl\Web\Widget\NameValueTable;
use Exception; use Exception;
use Icinga\Date\DateFormatter;
use Icinga\Module\Director\ConfigDiff; use Icinga\Module\Director\ConfigDiff;
use Icinga\Module\Director\Core\Json; use Icinga\Module\Director\Core\Json;
use Icinga\Module\Director\Db; use Icinga\Module\Director\Db;
@ -130,11 +131,12 @@ class BasketController extends ActionController
'basket_uuid' => $binUuid, 'basket_uuid' => $binUuid,
'ts_create' => $this->params->getRequired('ts'), 'ts_create' => $this->params->getRequired('ts'),
], $this->db()); ], $this->db());
$snapSum = bin2hex($snapshot->get('content_checksum'));
$this->addTitle( $this->addTitle(
$this->translate('%s: %s (Snapshot)'), $this->translate('%s: %s (Snapshot)'),
$basket->get('basket_name'), $basket->get('basket_name'),
substr($hexUuid, 0, 7) substr($snapSum, 0, 7)
); );
$this->actions()->add([ $this->actions()->add([
@ -152,6 +154,13 @@ class BasketController extends ActionController
) )
]); ]);
$properties = new NameValueTable();
$properties->addNameValuePairs([
$this->translate('Created') => DateFormatter::formatDateTime($snapshot->get('ts_create') / 1000),
$this->translate('Content Checksum') => bin2hex($snapshot->get('content_checksum')),
]);
$this->content()->add($properties);
if ($this->params->get('action') === 'restore') { if ($this->params->get('action') === 'restore') {
$form = new RestoreBasketForm(); $form = new RestoreBasketForm();
$form $form
@ -272,12 +281,12 @@ class BasketController extends ActionController
} else { } else {
$connection = Db::fromResourceName($targetDbName); $connection = Db::fromResourceName($targetDbName);
} }
$object = $objects->$type->$key; $objectFromBasket = $objects->$type->$key;
$current = BasketSnapshot::instanceByIdentifier($type, $key, $connection); $current = BasketSnapshot::instanceByIdentifier($type, $key, $connection);
$this->content()->add( $this->content()->add(
ConfigDiff::create( ConfigDiff::create(
Json::encode($object, JSON_PRETTY_PRINT), Json::encode($current->export(), JSON_PRETTY_PRINT),
Json::encode($current->export(), JSON_PRETTY_PRINT) Json::encode($objectFromBasket, JSON_PRETTY_PRINT)
)->setHtmlRenderer('Inline') )->setHtmlRenderer('Inline')
); );
} }