mirror of https://github.com/MISP/MISP
fix: [update:index] Correctly log index addition errors
parent
ba06190270
commit
a2127bea83
|
@ -92,15 +92,6 @@ class AppModel extends Model
|
|||
// 'preUpdate' => 'seenOnAttributeAndObjectPreUpdate', # Function to execute before the update. If it throws an error, it cancels the update
|
||||
'url' => '/servers/updateDatabase/seenOnAttributeAndObject/' # url pointing to the funcion performing the update
|
||||
),
|
||||
'testUpdate' => array(
|
||||
'title' => 'Test Update',
|
||||
'description' => 'Runs a test update',
|
||||
'liveOff' => true,
|
||||
'recommendBackup' => true,
|
||||
'exitOnError' => true,
|
||||
'preUpdate' => 'failingPreUpdate', # Function to execute before the update. If it returns false, cancel the update
|
||||
'url' => '/servers/updateDatabase/testUpdate/'
|
||||
)
|
||||
);
|
||||
public $actions_description = array(
|
||||
'verifyGnuPGkeys' => array(
|
||||
|
@ -1374,8 +1365,8 @@ class AppModel extends Model
|
|||
$indexArray[] = array('attributes', 'sharing_group_id');
|
||||
$indexArray[] = array('attributes', 'type');
|
||||
$indexArray[] = array('attributes', 'category');
|
||||
$indexArray[] = array('attributes', 'value1');
|
||||
$indexArray[] = array('attributes', 'value2');
|
||||
$indexArray[] = array('attributes', 'value1', 255);
|
||||
$indexArray[] = array('attributes', 'value2', 255);
|
||||
$indexArray[] = array('attributes', 'object_id');
|
||||
$indexArray[] = array('attributes', 'object_relation');
|
||||
$indexArray[] = array('attributes', 'deleted');
|
||||
|
@ -1401,11 +1392,6 @@ class AppModel extends Model
|
|||
$indexArray[] = array('shadow_attributes', 'last_seen');
|
||||
$indexArray[] = array('shadow_attributes', 'comment', 767);
|
||||
break;
|
||||
case 'testUpdate':
|
||||
$sqlArray[] = "SELECT SLEEP(10);";
|
||||
$sqlArray[] = "SELECT SLEEP(4);";
|
||||
$sqlArray[] = "SELECT SLEEP(12);";
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
break;
|
||||
|
@ -1424,7 +1410,7 @@ class AppModel extends Model
|
|||
$this->__setUpdateProgress(0, $total_update_count, $command);
|
||||
$str_index_array = array();
|
||||
foreach($indexArray as $toIndex) {
|
||||
$str_index_array[] = __('Indexing ') . implode($toIndex, '->');
|
||||
$str_index_array[] = __('Indexing ') . sprintf('%s -> %s', $toIndex[0], $toIndex[1]);
|
||||
}
|
||||
$this->__setUpdateCmdMessages(array_merge($sqlArray, $str_index_array));
|
||||
$flagStop = false;
|
||||
|
@ -1500,11 +1486,21 @@ class AppModel extends Model
|
|||
foreach ($indexArray as $i => $iA) {
|
||||
$this->__setUpdateProgress(count($sqlArray)+$i, false);
|
||||
if (isset($iA[2])) {
|
||||
$this->__addIndex($iA[0], $iA[1], $iA[2]);
|
||||
$indexSuccess = $this->__addIndex($iA[0], $iA[1], $iA[2]);
|
||||
} else {
|
||||
$this->__addIndex($iA[0], $iA[1]);
|
||||
$indexSuccess = $this->__addIndex($iA[0], $iA[1]);
|
||||
}
|
||||
if ($indexSuccess['success']) {
|
||||
$this->__setUpdateResMessages(count($sqlArray)+$i, __('Successfuly indexed ') . sprintf('%s -> %s', $iA[0], $iA[1]));
|
||||
} else {
|
||||
$this->__setUpdateResMessages(count($sqlArray)+$i, sprintf('%s %s %s %s',
|
||||
__('Failed to add index'),
|
||||
sprintf('%s -> %s', $iA[0], $iA[1]),
|
||||
__('The returned error is:') . PHP_EOL,
|
||||
$indexSuccess['errorMessage']
|
||||
));
|
||||
$this->__setUpdateError(count($sqlArray)+$i);
|
||||
}
|
||||
$this->__setUpdateResMessages(count($sqlArray)+$i, __('Successfuly indexed ') . implode($iA, '->'));
|
||||
}
|
||||
}
|
||||
$this->__setUpdateProgress(count($sqlArray)+count($indexArray), false);
|
||||
|
@ -1600,10 +1596,12 @@ class AppModel extends Model
|
|||
}
|
||||
$result = true;
|
||||
$duplicate = false;
|
||||
$errorMessage = '';
|
||||
try {
|
||||
$this->query($addIndex);
|
||||
} catch (Exception $e) {
|
||||
$duplicate = (strpos($e->getMessage(), '1061') !== false);
|
||||
$errorMessage = $e->getMessage();
|
||||
$result = false;
|
||||
}
|
||||
$this->Log->create();
|
||||
|
@ -1614,9 +1612,14 @@ class AppModel extends Model
|
|||
'email' => 'SYSTEM',
|
||||
'action' => 'update_database',
|
||||
'user_id' => 0,
|
||||
'title' => ($result ? 'Added index ' : 'Failed to add index ') . $field . ' to ' . $table . ($duplicate ? ' (index already set)' : ''),
|
||||
'change' => ($result ? 'Added index ' : 'Failed to add index ') . $field . ' to ' . $table . ($duplicate ? ' (index already set)' : ''),
|
||||
'title' => ($result ? 'Added index ' : 'Failed to add index ') . $field . ' to ' . $table . ($duplicate ? ' (index already set)' : $errorMessage),
|
||||
'change' => ($result ? 'Added index ' : 'Failed to add index ') . $field . ' to ' . $table . ($duplicate ? ' (index already set)' : $errorMessage),
|
||||
));
|
||||
$additionResult = array('success' => $result || $duplicate);
|
||||
if (!$result) {
|
||||
$additionResult['errorMessage'] = $errorMessage;
|
||||
}
|
||||
return $additionResult;
|
||||
}
|
||||
|
||||
public function cleanCacheFiles()
|
||||
|
|
Loading…
Reference in New Issue