Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
136 changes: 74 additions & 62 deletions composer.lock

Large diffs are not rendered by default.

7 changes: 1 addition & 6 deletions src/Plugin/EmulateElastic/AddTemplateHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,7 @@ public function run(): Task {
throw new \Exception('Cannot parse request');
}
$patterns = json_encode($request['index_patterns']);
foreach (['index_patterns', 'settings', 'mappings'] as $removeProp) {
if (!isset($request[$removeProp])) {
continue;
}
unset($request[$removeProp]);
}
unset($request['index_patterns']);
$content = json_encode($request);
$templateTable = self::TEMPLATE_TABLE;

Expand Down
26 changes: 20 additions & 6 deletions src/Plugin/EmulateElastic/CatHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,15 @@
use Manticoresearch\Buddy\Core\Plugin\BaseHandlerWithClient;
use Manticoresearch\Buddy\Core\Task\Task;
use Manticoresearch\Buddy\Core\Task\TaskResult;

use RuntimeException;

/**
* Handling requests to extract and build info on Kibana entities, like templates, dashboards, etc.
*/
class CatHandler extends BaseHandlerWithClient {

const CAT_ENTITIES = ['templates'];
const CAT_ENTITIES = ['templates', 'plugins'];

/**
* Initialize the executor
Expand Down Expand Up @@ -58,11 +59,10 @@ public function run(): Task {

$catInfo = [];
foreach ($queryResult[0]['data'] as $entityInfo) {
$catInfo[] = [
'name' => $entityInfo['name'],
'order' => 0,
'index_patterns' => simdjson_decode($entityInfo['patterns'], true),
] + simdjson_decode($entityInfo['content'], true);
$catInfo[] = match ($entityTable) {
'_templates' => self::buildCatTemplateRow($entityInfo),
default => [],
};
}

return TaskResult::raw($catInfo);
Expand All @@ -72,4 +72,18 @@ public function run(): Task {
$taskFn, [$this->payload, $this->manticoreClient]
)->run();
}

/**
*
* @param array{name:string,patterns:string,content:string} $entityInfo
* @return array<string,mixed>
*/
private static function buildCatTemplateRow(array $entityInfo): array {
return [
'name' => $entityInfo['name'],
'order' => 0,
'index_patterns' => simdjson_decode($entityInfo['patterns'], true),
] + simdjson_decode($entityInfo['content'], true);
}

}
24 changes: 15 additions & 9 deletions src/Plugin/EmulateElastic/InitKibanaHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

namespace Manticoresearch\Buddy\Base\Plugin\EmulateElastic;

use Manticoresearch\Buddy\Core\Error\GenericError;
use Manticoresearch\Buddy\Core\ManticoreSearch\Client as HTTPClient;
use Manticoresearch\Buddy\Core\Task\Task;
use Manticoresearch\Buddy\Core\Task\TaskResult;
Expand Down Expand Up @@ -65,15 +66,20 @@ public function run(): Task {
],
'status' => 404,
];
} else {
$resp = [];
foreach ($queryResult[0]['data'] as $entity) {
$resp[$entity['_index']] = [
'aliases' => [
$alias => [],
],
] + simdjson_decode($entity['_source'], true);
}
$customError = GenericError::create('', false);
$customError->setResponseErrorBody($resp);
$customError->setResponseErrorCode(404);

throw $customError;
}

$resp = [];
foreach ($queryResult[0]['data'] as $entity) {
$resp[$entity['_index']] = [
'aliases' => [
$alias => [],
],
] + simdjson_decode($entity['_source'], true);
}

return TaskResult::raw($resp);
Expand Down
4 changes: 3 additions & 1 deletion src/Plugin/EmulateElastic/NodesInfoKibanaHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
*/
class NodesInfoKibanaHandler extends BaseHandlerWithClient {

const DEFAULT_KIBANA_VERSION = '7.6.0';

/**
* Initialize the executor
*
Expand Down Expand Up @@ -58,7 +60,7 @@ public function run(): Task {
'publish_address' => "$ip:$port",
],
'ip' => $ip,
'version' => '7.6.0',
'version' => $settings->searchdKibanaVersionString ?? self::DEFAULT_KIBANA_VERSION,
],
],
]
Expand Down
Loading