class ElasticsearchController in Elasticsearch Connector 8
Same name and namespace in other branches
- 8.7 src/Controller/ElasticsearchController.php \Drupal\elasticsearch_connector\Controller\ElasticsearchController
- 8.2 src/Controller/ElasticsearchController.php \Drupal\elasticsearch_connector\Controller\ElasticsearchController
- 8.5 src/Controller/ElasticsearchController.php \Drupal\elasticsearch_connector\Controller\ElasticsearchController
- 8.6 src/Controller/ElasticsearchController.php \Drupal\elasticsearch_connector\Controller\ElasticsearchController
Provides route responses for elasticsearch clusters.
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\elasticsearch_connector\Controller\ElasticsearchController
Expanded class hierarchy of ElasticsearchController
File
- src/
Controller/ ElasticsearchController.php, line 18 - Contains \Drupal\elasticsearch_connector\Controller\ElasticsearchController.
Namespace
Drupal\elasticsearch_connector\ControllerView source
class ElasticsearchController extends ControllerBase {
/**
* Displays information about an Elasticsearch Cluster.
*
* @param \Drupal\elasticsearch_connector\Entity\Cluster $cluster
* An instance of Cluster.
*
* @return array
* An array suitable for drupal_render().
*/
public function page(Cluster $elasticsearch_cluster) {
// Build the Search API index information.
$render = array(
'view' => array(
'#theme' => 'elasticsearch_cluster',
'#cluster' => $elasticsearch_cluster,
),
);
// Check if the cluster is enabled and can be written to.
if ($elasticsearch_cluster->cluster_id) {
$render['form'] = $this
->formBuilder()
->getForm('Drupal\\elasticsearch_connector\\Form\\ClusterForm', $elasticsearch_cluster);
}
return $render;
}
/**
* Page title callback for a cluster's "View" tab.
*
* @param \Drupal\elasticsearch_connector\Entity\Cluster $elasticsearch_cluster
* The cluster that is displayed.
*
* @return string
* The page title.
*/
public function pageTitle(Cluster $elasticsearch_cluster) {
// TODO: Check if we need string escaping.
return $elasticsearch_cluster
->label();
}
/**
* Complete information about the Elasticsearch Client.
*
* @param Cluster $elasticsearch_cluster
*
* @return mixed
*
* @throws \Exception
* Exception.
*/
public function getInfo(Cluster $elasticsearch_cluster) {
// TODO: Get the statistics differently.
if ($elasticsearch_cluster
->checkClusterStatus()) {
// Nodes.
$es_client = $elasticsearch_cluster
->getClientInstance($elasticsearch_cluster);
$es_node_namespace = $es_client
->getNodesProperties();
$node_stats = $es_node_namespace['stats'];
$total_docs = 0;
$total_size = 0;
$node_rows = array();
if (!empty($node_stats['nodes'])) {
// TODO: Better format the results in order to build the
// correct output.
foreach ($node_stats['nodes'] as $node_id => $node_properties) {
$row = array();
$row[] = array(
'data' => $node_properties['name'],
);
$row[] = array(
'data' => $node_properties['indices']['docs']['count'],
);
$row[] = array(
'data' => format_size($node_properties['indices']['store']['size_in_bytes']),
);
$total_docs += $node_properties['indices']['docs']['count'];
$total_size += $node_properties['indices']['store']['size_in_bytes'];
$node_rows[] = $row;
}
}
$cluster_status = $elasticsearch_cluster
->getClusterInfo();
$cluster_statistics_rows = array(
array(
array(
'data' => $cluster_status['health']['number_of_nodes'] . ' ' . t('Nodes'),
),
array(
'data' => $cluster_status['health']['active_shards'] + $cluster_status['health']['unassigned_shards'] . ' ' . t('Total Shards'),
),
array(
'data' => $cluster_status['health']['active_shards'] . ' ' . t('Successful Shards'),
),
array(
'data' => count($cluster_status['state']['metadata']['indices']) . ' ' . t('Indices'),
),
array(
'data' => $total_docs . ' ' . t('Total Documents'),
),
array(
'data' => format_size($total_size) . ' ' . t('Total Size'),
),
),
);
$cluster_health_rows = array();
$cluster_health_mapping = array(
'cluster_name' => t('Cluster name'),
'status' => t('Status'),
'timed_out' => t('Time out'),
'number_of_nodes' => t('Number of nodes'),
'number_of_data_nodes' => t('Number of data nodes'),
'active_primary_shards' => t('Active primary shards'),
'active_shards' => t('Active shards'),
'relocating_shards' => t('Relocating shards'),
'initializing_shards' => t('Initializing shards'),
'unassigned_shards' => t('Unassigned shards'),
'delayed_unassigned_shards' => t('Delayed unassigned shards'),
'number_of_pending_tasks' => t('Number of pending tasks'),
'number_of_in_flight_fetch' => t('Number of in-flight fetch'),
'task_max_waiting_in_queue_millis' => t('Task max waiting in queue millis'),
'active_shards_percent_as_number' => t('Active shards percent as number'),
);
foreach ($cluster_status['health'] as $health_key => $health_value) {
$row = array();
$row[] = array(
'data' => $cluster_health_mapping[$health_key],
);
$row[] = array(
'data' => $health_value === FALSE ? 'False' : $health_value,
);
$cluster_health_rows[] = $row;
}
}
$output['cluster_statistics_wrapper'] = array(
'#type' => 'fieldset',
'#title' => t('Cluster statistics'),
'#collapsible' => TRUE,
'#collapsed' => FALSE,
'#attributes' => array(),
);
$output['cluster_statistics_wrapper']['nodes'] = array(
'#theme' => 'table',
'#header' => array(
array(
'data' => t('Node name'),
),
array(
'data' => t('Documents'),
),
array(
'data' => t('Size'),
),
),
'#rows' => $node_rows,
'#attributes' => array(),
);
$output['cluster_statistics_wrapper']['cluster_statistics'] = array(
'#theme' => 'table',
'#header' => array(
array(
'data' => t('Total'),
'colspan' => 6,
),
),
'#rows' => $cluster_statistics_rows,
'#attributes' => array(
'class' => array(
'admin-elasticsearch-statistics',
),
),
);
$output['cluster_health'] = array(
'#theme' => 'table',
'#header' => array(
array(
'data' => t('Cluster Health'),
'colspan' => 2,
),
),
'#rows' => $cluster_health_rows,
'#attributes' => array(
'class' => array(
'admin-elasticsearch-health',
),
),
);
return $output;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ControllerBase:: |
protected | property | The configuration factory. | |
ControllerBase:: |
protected | property | The current user service. | 1 |
ControllerBase:: |
protected | property | The entity form builder. | |
ControllerBase:: |
protected | property | The entity manager. | |
ControllerBase:: |
protected | property | The entity type manager. | |
ControllerBase:: |
protected | property | The form builder. | 2 |
ControllerBase:: |
protected | property | The key-value storage. | 1 |
ControllerBase:: |
protected | property | The language manager. | 1 |
ControllerBase:: |
protected | property | The module handler. | 2 |
ControllerBase:: |
protected | property | The state service. | |
ControllerBase:: |
protected | function | Returns the requested cache bin. | |
ControllerBase:: |
protected | function | Retrieves a configuration object. | |
ControllerBase:: |
private | function | Returns the service container. | |
ControllerBase:: |
public static | function |
Instantiates a new instance of this class. Overrides ContainerInjectionInterface:: |
40 |
ControllerBase:: |
protected | function | Returns the current user. | 1 |
ControllerBase:: |
protected | function | Retrieves the entity form builder. | |
ControllerBase:: |
protected | function | Retrieves the entity manager service. | |
ControllerBase:: |
protected | function | Retrieves the entity type manager. | |
ControllerBase:: |
protected | function | Returns the form builder service. | 2 |
ControllerBase:: |
protected | function | Returns a key/value storage collection. | 1 |
ControllerBase:: |
protected | function | Returns the language manager service. | 1 |
ControllerBase:: |
protected | function | Returns the module handler. | 2 |
ControllerBase:: |
protected | function |
Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait:: |
|
ControllerBase:: |
protected | function | Returns the state storage service. | |
ElasticsearchController:: |
public | function | Complete information about the Elasticsearch Client. | |
ElasticsearchController:: |
public | function | Displays information about an Elasticsearch Cluster. | |
ElasticsearchController:: |
public | function | Page title callback for a cluster's "View" tab. | |
LinkGeneratorTrait:: |
protected | property | The link generator. | 1 |
LinkGeneratorTrait:: |
protected | function | Returns the link generator. | |
LinkGeneratorTrait:: |
protected | function | Renders a link to a route given a route name and its parameters. | |
LinkGeneratorTrait:: |
public | function | Sets the link generator service. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
UrlGeneratorTrait:: |
protected | property | The url generator. | |
UrlGeneratorTrait:: |
protected | function | Returns the URL generator service. | |
UrlGeneratorTrait:: |
public | function | Sets the URL generator service. | |
UrlGeneratorTrait:: |
protected | function | Generates a URL or path for a specific route based on the given parameters. |