Merge pull request #7932 from JakubOnderka/pulling-simplify

chg: [internal] Simplify code for pulling events
pull/7936/head
Jakub Onderka 2021-11-07 10:00:56 +01:00 committed by GitHub
commit fdf75289f7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 25 additions and 17 deletions

View File

@ -227,7 +227,12 @@ class Server extends AppModel
return false;
}
private function __updatePulledEventBeforeInsert(&$event, $server, $user)
/**
* @param array $event
* @param array $server
* @param array $user
*/
private function __updatePulledEventBeforeInsert(array &$event, array $server, array $user)
{
// we have an Event array
// The event came from a pull, so it should be locked.
@ -255,9 +260,9 @@ class Server extends AppModel
}
}
}
if (isset($event['Event']['Attribute']) && !empty($event['Event']['Attribute'])) {
foreach ($event['Event']['Attribute'] as $key => $a) {
switch ($a['distribution']) {
if (isset($event['Event']['Attribute'])) {
foreach ($event['Event']['Attribute'] as $key => $attribute) {
switch ($attribute['distribution']) {
case '1':
$event['Event']['Attribute'][$key]['distribution'] = '0';
break;
@ -266,8 +271,8 @@ class Server extends AppModel
break;
}
// We remove local tags obtained via pull
if (isset($a['Tag'])) {
foreach ($a['Tag'] as $k => $v) {
if (isset($attribute['Tag'])) {
foreach ($attribute['Tag'] as $k => $v) {
if ($v['local']) {
unset($event['Event']['Attribute'][$key]['Tag'][$k]);
}
@ -275,9 +280,9 @@ class Server extends AppModel
}
}
}
if (isset($event['Event']['Object']) && !empty($event['Event']['Object'])) {
foreach ($event['Event']['Object'] as $i => $o) {
switch ($o['distribution']) {
if (isset($event['Event']['Object'])) {
foreach ($event['Event']['Object'] as $i => $object) {
switch ($object['distribution']) {
case '1':
$event['Event']['Object'][$i]['distribution'] = '0';
break;
@ -285,8 +290,8 @@ class Server extends AppModel
$event['Event']['Object'][$i]['distribution'] = '1';
break;
}
if (isset($event['Event']['Object'][$i]['Attribute']) && !empty($event['Event']['Object'][$i]['Attribute'])) {
foreach ($event['Event']['Object'][$i]['Attribute'] as $j => $a) {
if (isset($object['Attribute'])) {
foreach ($object['Attribute'] as $j => $a) {
switch ($a['distribution']) {
case '1':
$event['Event']['Object'][$i]['Attribute'][$j]['distribution'] = '0';
@ -307,7 +312,7 @@ class Server extends AppModel
}
}
}
if (isset($event['Event']['EventReport']) && !empty($event['Event']['EventReport'])) {
if (isset($event['Event']['EventReport'])) {
foreach ($event['Event']['EventReport'] as $key => $r) {
switch ($r['distribution']) {
case '1':
@ -323,10 +328,13 @@ class Server extends AppModel
// Distribution, set reporter of the event, being the admin that initiated the pull
$event['Event']['user_id'] = $user['id'];
return $event;
}
private function __checkIfEventSaveAble($event)
/**
* @param array $event
* @return bool True if event is not empty
*/
private function __checkIfEventSaveAble(array $event)
{
if (!empty($event['Event']['Attribute'])) {
foreach ($event['Event']['Attribute'] as $attribute) {
@ -373,7 +381,7 @@ class Server extends AppModel
$result = $eventModel->_add($event, true, $user, $server['Server']['org_id'], $passAlong, true, $jobId);
if ($result) {
$successes[] = $eventId;
if (Configure::read('Plugin.ZeroMQ_enable') && Configure::read('Plugin.ZeroMQ_event_notifications_enable')) {
if ($this->pubToZmq('event')) {
$pubSubTool = $this->getPubSubTool();
$pubSubTool->event_save(array('Event' => $eventId, 'Server' => $server['Server']['id']), 'add_from_connected_server');
}
@ -387,7 +395,7 @@ class Server extends AppModel
$result = $eventModel->_edit($event, $user, $existingEvent['Event']['id'], $jobId, $passAlong, $force);
if ($result === true) {
$successes[] = $eventId;
if (Configure::read('Plugin.ZeroMQ_enable') && Configure::read('Plugin.ZeroMQ_event_notifications_enable')) {
if ($this->pubToZmq('event')) {
$pubSubTool = $this->getPubSubTool();
$pubSubTool->event_save(array('Event' => $eventId, 'Server' => $server['Server']['id']), 'edit_from_connected_server');
}
@ -425,7 +433,7 @@ class Server extends AppModel
if ($this->__checkIfEventIsBlockedBeforePull($event)) {
return false;
}
$event = $this->__updatePulledEventBeforeInsert($event, $serverSync->server(), $user);
$this->__updatePulledEventBeforeInsert($event, $serverSync->server(), $user);
if (!$this->__checkIfEventSaveAble($event)) {
$fails[$eventId] = __('Empty event detected.');
} else {