mirror of
https://github.com/fleetdm/fleet
synced 2026-05-24 09:28:54 +00:00
* Initial work on sandbox data pipeline * Update python code to have preliminary code * Added in final code for sandbox-data. Huge delay because I needed to double check licensing
470 lines
22 KiB
Python
470 lines
22 KiB
Python
# Licensed to Elasticsearch B.V. under one or more contributor
|
|
# license agreements. See the NOTICE file distributed with
|
|
# this work for additional information regarding copyright
|
|
# ownership. Elasticsearch B.V. licenses this file to you under
|
|
# the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
from .utils import NamespacedClient, query_params, _make_path
|
|
|
|
|
|
class CatClient(NamespacedClient):
|
|
@query_params("format", "h", "help", "local", "master_timeout", "s", "v")
|
|
def aliases(self, name=None, params=None):
|
|
"""
|
|
`<http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-alias.html>`_
|
|
|
|
:arg name: A comma-separated list of alias names to return
|
|
:arg format: a short version of the Accept header, e.g. json, yaml
|
|
:arg h: Comma-separated list of column names to display
|
|
:arg help: Return help information, default False
|
|
:arg local: Return local information, do not retrieve the state from
|
|
master node (default: false)
|
|
:arg master_timeout: Explicit operation timeout for connection to master
|
|
node
|
|
:arg s: Comma-separated list of column names or column aliases to sort
|
|
by
|
|
:arg v: Verbose mode. Display column headers, default False
|
|
"""
|
|
return self.transport.perform_request(
|
|
"GET", _make_path("_cat", "aliases", name), params=params
|
|
)
|
|
|
|
@query_params("bytes", "format", "h", "help", "local", "master_timeout", "s", "v")
|
|
def allocation(self, node_id=None, params=None):
|
|
"""
|
|
Allocation provides a snapshot of how shards have located around the
|
|
cluster and the state of disk usage.
|
|
|
|
`<http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-allocation.html>`_
|
|
|
|
:arg node_id: A comma-separated list of node IDs or names to limit the
|
|
returned information
|
|
:arg bytes: The unit in which to display byte values, valid choices are:
|
|
'b', 'k', 'kb', 'm', 'mb', 'g', 'gb', 't', 'tb', 'p', 'pb'
|
|
:arg format: a short version of the Accept header, e.g. json, yaml
|
|
:arg h: Comma-separated list of column names to display
|
|
:arg help: Return help information, default False
|
|
:arg local: Return local information, do not retrieve the state from
|
|
master node (default: false)
|
|
:arg master_timeout: Explicit operation timeout for connection to master
|
|
node
|
|
:arg s: Comma-separated list of column names or column aliases to sort
|
|
by
|
|
:arg v: Verbose mode. Display column headers, default False
|
|
"""
|
|
return self.transport.perform_request(
|
|
"GET", _make_path("_cat", "allocation", node_id), params=params
|
|
)
|
|
|
|
@query_params("format", "h", "help", "local", "master_timeout", "s", "v")
|
|
def count(self, index=None, params=None):
|
|
"""
|
|
Count provides quick access to the document count of the entire cluster,
|
|
or individual indices.
|
|
|
|
`<http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-count.html>`_
|
|
|
|
:arg index: A comma-separated list of index names to limit the returned
|
|
information
|
|
:arg format: a short version of the Accept header, e.g. json, yaml
|
|
:arg h: Comma-separated list of column names to display
|
|
:arg help: Return help information, default False
|
|
:arg local: Return local information, do not retrieve the state from
|
|
master node (default: false)
|
|
:arg master_timeout: Explicit operation timeout for connection to master
|
|
node
|
|
:arg s: Comma-separated list of column names or column aliases to sort
|
|
by
|
|
:arg v: Verbose mode. Display column headers, default False
|
|
"""
|
|
return self.transport.perform_request(
|
|
"GET", _make_path("_cat", "count", index), params=params
|
|
)
|
|
|
|
@query_params("bytes", "format", "h", "help", "local", "master_timeout", "s", "v")
|
|
def fielddata(self, fields=None, params=None):
|
|
"""
|
|
`<http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-fielddata.html>`_
|
|
|
|
:arg fields: A comma-separated list of fields to return the fielddata
|
|
size
|
|
:arg bytes: The unit in which to display byte values, valid choices are:
|
|
'b', 'k', 'kb', 'm', 'mb', 'g', 'gb', 't', 'tb', 'p', 'pb'
|
|
:arg format: a short version of the Accept header, e.g. json, yaml
|
|
:arg h: Comma-separated list of column names to display
|
|
:arg help: Return help information, default False
|
|
:arg local: Return local information, do not retrieve the state from
|
|
master node (default: false)
|
|
:arg master_timeout: Explicit operation timeout for connection to master
|
|
node
|
|
:arg s: Comma-separated list of column names or column aliases to sort
|
|
by
|
|
:arg v: Verbose mode. Display column headers, default False
|
|
"""
|
|
return self.transport.perform_request(
|
|
"GET", _make_path("_cat", "fielddata", fields), params=params
|
|
)
|
|
|
|
@query_params("format", "h", "help", "local", "master_timeout", "s", "ts", "v")
|
|
def health(self, params=None):
|
|
"""
|
|
health is a terse, one-line representation of the same information from
|
|
:meth:`~elasticsearch.client.cluster.ClusterClient.health` API
|
|
|
|
`<http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-health.html>`_
|
|
|
|
:arg format: a short version of the Accept header, e.g. json, yaml
|
|
:arg h: Comma-separated list of column names to display
|
|
:arg help: Return help information, default False
|
|
:arg local: Return local information, do not retrieve the state from
|
|
master node (default: false)
|
|
:arg master_timeout: Explicit operation timeout for connection to master
|
|
node
|
|
:arg s: Comma-separated list of column names or column aliases to sort
|
|
by
|
|
:arg ts: Set to false to disable timestamping, default True
|
|
:arg v: Verbose mode. Display column headers, default False
|
|
"""
|
|
return self.transport.perform_request("GET", "/_cat/health", params=params)
|
|
|
|
@query_params("help", "s")
|
|
def help(self, params=None):
|
|
"""
|
|
A simple help for the cat api.
|
|
`<http://www.elastic.co/guide/en/elasticsearch/reference/master/cat.html>`_
|
|
|
|
:arg help: Return help information, default False
|
|
:arg s: Comma-separated list of column names or column aliases to sort
|
|
by
|
|
"""
|
|
return self.transport.perform_request("GET", "/_cat", params=params)
|
|
|
|
@query_params(
|
|
"bytes",
|
|
"format",
|
|
"h",
|
|
"health",
|
|
"help",
|
|
"local",
|
|
"master_timeout",
|
|
"pri",
|
|
"s",
|
|
"v",
|
|
)
|
|
def indices(self, index=None, params=None):
|
|
"""
|
|
The indices command provides a cross-section of each index.
|
|
`<http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-indices.html>`_
|
|
|
|
:arg index: A comma-separated list of index names to limit the returned
|
|
information
|
|
:arg bytes: The unit in which to display byte values, valid choices are:
|
|
'b', 'k', 'm', 'g'
|
|
:arg format: a short version of the Accept header, e.g. json, yaml
|
|
:arg h: Comma-separated list of column names to display
|
|
:arg health: A health status ("green", "yellow", or "red" to filter only
|
|
indices matching the specified health status, default None, valid
|
|
choices are: 'green', 'yellow', 'red'
|
|
:arg help: Return help information, default False
|
|
:arg local: Return local information, do not retrieve the state from
|
|
master node (default: false)
|
|
:arg master_timeout: Explicit operation timeout for connection to master
|
|
node
|
|
:arg pri: Set to true to return stats only for primary shards, default
|
|
False
|
|
:arg s: Comma-separated list of column names or column aliases to sort
|
|
by
|
|
:arg v: Verbose mode. Display column headers, default False
|
|
"""
|
|
return self.transport.perform_request(
|
|
"GET", _make_path("_cat", "indices", index), params=params
|
|
)
|
|
|
|
@query_params("format", "h", "help", "local", "master_timeout", "s", "v")
|
|
def master(self, params=None):
|
|
"""
|
|
Displays the master's node ID, bound IP address, and node name.
|
|
`<http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-master.html>`_
|
|
|
|
:arg format: a short version of the Accept header, e.g. json, yaml
|
|
:arg h: Comma-separated list of column names to display
|
|
:arg help: Return help information, default False
|
|
:arg local: Return local information, do not retrieve the state from
|
|
master node (default: false)
|
|
:arg master_timeout: Explicit operation timeout for connection to master
|
|
node
|
|
:arg s: Comma-separated list of column names or column aliases to sort
|
|
by
|
|
:arg v: Verbose mode. Display column headers, default False
|
|
"""
|
|
return self.transport.perform_request("GET", "/_cat/master", params=params)
|
|
|
|
@query_params("format", "h", "help", "local", "master_timeout", "s", "v")
|
|
def nodeattrs(self, params=None):
|
|
"""
|
|
`<http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-nodeattrs.html>`_
|
|
|
|
:arg format: a short version of the Accept header, e.g. json, yaml
|
|
:arg h: Comma-separated list of column names to display
|
|
:arg help: Return help information, default False
|
|
:arg local: Return local information, do not retrieve the state from
|
|
master node (default: false)
|
|
:arg master_timeout: Explicit operation timeout for connection to master
|
|
node
|
|
:arg s: Comma-separated list of column names or column aliases to sort
|
|
by
|
|
:arg v: Verbose mode. Display column headers, default False
|
|
"""
|
|
return self.transport.perform_request("GET", "/_cat/nodeattrs", params=params)
|
|
|
|
@query_params("format", "full_id", "h", "help", "local", "master_timeout", "s", "v")
|
|
def nodes(self, params=None):
|
|
"""
|
|
The nodes command shows the cluster topology.
|
|
`<http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-nodes.html>`_
|
|
|
|
:arg format: a short version of the Accept header, e.g. json, yaml
|
|
:arg full_id: Return the full node ID instead of the shortened version
|
|
(default: false)
|
|
:arg h: Comma-separated list of column names to display
|
|
:arg help: Return help information, default False
|
|
:arg local: Return local information, do not retrieve the state from
|
|
master node (default: false)
|
|
:arg master_timeout: Explicit operation timeout for connection to master
|
|
node
|
|
:arg s: Comma-separated list of column names or column aliases to sort
|
|
by
|
|
:arg v: Verbose mode. Display column headers, default False
|
|
"""
|
|
return self.transport.perform_request("GET", "/_cat/nodes", params=params)
|
|
|
|
@query_params("format", "h", "help", "local", "master_timeout", "s", "v")
|
|
def pending_tasks(self, params=None):
|
|
"""
|
|
`<http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-pending-tasks.html>`_
|
|
|
|
:arg format: a short version of the Accept header, e.g. json, yaml
|
|
:arg h: Comma-separated list of column names to display
|
|
:arg help: Return help information, default False
|
|
:arg local: Return local information, do not retrieve the state from
|
|
master node (default: false)
|
|
:arg master_timeout: Explicit operation timeout for connection to master
|
|
node
|
|
:arg s: Comma-separated list of column names or column aliases to sort
|
|
by
|
|
:arg v: Verbose mode. Display column headers, default False
|
|
"""
|
|
return self.transport.perform_request(
|
|
"GET", "/_cat/pending_tasks", params=params
|
|
)
|
|
|
|
@query_params("format", "h", "help", "local", "master_timeout", "s", "v")
|
|
def plugins(self, params=None):
|
|
"""
|
|
`<http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-plugins.html>`_
|
|
|
|
:arg format: a short version of the Accept header, e.g. json, yaml
|
|
:arg h: Comma-separated list of column names to display
|
|
:arg help: Return help information, default False
|
|
:arg local: Return local information, do not retrieve the state from
|
|
master node (default: false)
|
|
:arg master_timeout: Explicit operation timeout for connection to master
|
|
node
|
|
:arg s: Comma-separated list of column names or column aliases to sort
|
|
by
|
|
:arg v: Verbose mode. Display column headers, default False
|
|
"""
|
|
return self.transport.perform_request("GET", "/_cat/plugins", params=params)
|
|
|
|
@query_params("bytes", "format", "h", "help", "master_timeout", "s", "v")
|
|
def recovery(self, index=None, params=None):
|
|
"""
|
|
`<http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-recovery.html>`_
|
|
|
|
:arg index: A comma-separated list of index names to limit the returned
|
|
information
|
|
:arg bytes: The unit in which to display byte values, valid choices are:
|
|
'b', 'k', 'kb', 'm', 'mb', 'g', 'gb', 't', 'tb', 'p', 'pb'
|
|
:arg format: a short version of the Accept header, e.g. json, yaml
|
|
:arg h: Comma-separated list of column names to display
|
|
:arg help: Return help information, default False
|
|
:arg master_timeout: Explicit operation timeout for connection to master
|
|
node
|
|
:arg s: Comma-separated list of column names or column aliases to sort
|
|
by
|
|
:arg v: Verbose mode. Display column headers, default False
|
|
"""
|
|
return self.transport.perform_request(
|
|
"GET", _make_path("_cat", "recovery", index), params=params
|
|
)
|
|
|
|
@query_params("format", "h", "help", "local", "master_timeout", "s", "v")
|
|
def repositories(self, params=None):
|
|
"""
|
|
`<http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-repositories.html>`_
|
|
|
|
:arg format: a short version of the Accept header, e.g. json, yaml
|
|
:arg h: Comma-separated list of column names to display
|
|
:arg help: Return help information, default False
|
|
:arg local: Return local information, do not retrieve the state from
|
|
master node, default False
|
|
:arg master_timeout: Explicit operation timeout for connection to master
|
|
node
|
|
:arg s: Comma-separated list of column names or column aliases to sort
|
|
by
|
|
:arg v: Verbose mode. Display column headers, default False
|
|
"""
|
|
return self.transport.perform_request(
|
|
"GET", "/_cat/repositories", params=params
|
|
)
|
|
|
|
@query_params("bytes", "format", "h", "help", "s", "v")
|
|
def segments(self, index=None, params=None):
|
|
"""
|
|
`<http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-segments.html>`_
|
|
|
|
:arg index: A comma-separated list of index names to limit the returned
|
|
information
|
|
:arg bytes: The unit in which to display byte values, valid choices are:
|
|
'b', 'k', 'kb', 'm', 'mb', 'g', 'gb', 't', 'tb', 'p', 'pb'
|
|
:arg format: a short version of the Accept header, e.g. json, yaml
|
|
:arg h: Comma-separated list of column names to display
|
|
:arg help: Return help information, default False
|
|
:arg s: Comma-separated list of column names or column aliases to sort
|
|
by
|
|
:arg v: Verbose mode. Display column headers, default False
|
|
"""
|
|
return self.transport.perform_request(
|
|
"GET", _make_path("_cat", "segments", index), params=params
|
|
)
|
|
|
|
@query_params("bytes", "format", "h", "help", "local", "master_timeout", "s", "v")
|
|
def shards(self, index=None, params=None):
|
|
"""
|
|
`<http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-shards.html>`_
|
|
|
|
:arg index: A comma-separated list of index names to limit the returned
|
|
information
|
|
:arg bytes: The unit in which to display byte values, valid choices are:
|
|
'b', 'k', 'kb', 'm', 'mb', 'g', 'gb', 't', 'tb', 'p', 'pb'
|
|
:arg format: a short version of the Accept header, e.g. json, yaml
|
|
:arg h: Comma-separated list of column names to display
|
|
:arg help: Return help information, default False
|
|
:arg local: Return local information, do not retrieve the state from
|
|
master node (default: false)
|
|
:arg master_timeout: Explicit operation timeout for connection to master
|
|
node
|
|
:arg s: Comma-separated list of column names or column aliases to sort
|
|
by
|
|
:arg v: Verbose mode. Display column headers, default False
|
|
"""
|
|
return self.transport.perform_request(
|
|
"GET", _make_path("_cat", "shards", index), params=params
|
|
)
|
|
|
|
@query_params(
|
|
"format", "h", "help", "ignore_unavailable", "master_timeout", "s", "v"
|
|
)
|
|
def snapshots(self, repository=None, params=None):
|
|
"""
|
|
`<http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-snapshots.html>`_
|
|
|
|
:arg repository: Name of repository from which to fetch the snapshot
|
|
information
|
|
:arg format: a short version of the Accept header, e.g. json, yaml
|
|
:arg h: Comma-separated list of column names to display
|
|
:arg help: Return help information, default False
|
|
:arg ignore_unavailable: Set to true to ignore unavailable snapshots,
|
|
default False
|
|
:arg master_timeout: Explicit operation timeout for connection to master
|
|
node
|
|
:arg s: Comma-separated list of column names or column aliases to sort
|
|
by
|
|
:arg v: Verbose mode. Display column headers, default False
|
|
"""
|
|
return self.transport.perform_request(
|
|
"GET", _make_path("_cat", "snapshots", repository), params=params
|
|
)
|
|
|
|
@query_params(
|
|
"actions", "detailed", "format", "h", "help", "node_id", "parent_task", "s", "v"
|
|
)
|
|
def tasks(self, params=None):
|
|
"""
|
|
`<http://www.elastic.co/guide/en/elasticsearch/reference/master/tasks.html>`_
|
|
|
|
:arg actions: A comma-separated list of actions that should be returned.
|
|
Leave empty to return all.
|
|
:arg detailed: Return detailed task information (default: false)
|
|
:arg format: a short version of the Accept header, e.g. json, yaml
|
|
:arg h: Comma-separated list of column names to display
|
|
:arg help: Return help information, default False
|
|
:arg node_id: A comma-separated list of node IDs or names to limit the
|
|
returned information; use `_local` to return information from the
|
|
node you're connecting to, leave empty to get information from all
|
|
nodes
|
|
:arg parent_task: Return tasks with specified parent task id. Set to -1
|
|
to return all.
|
|
:arg s: Comma-separated list of column names or column aliases to sort
|
|
by
|
|
:arg v: Verbose mode. Display column headers, default False
|
|
"""
|
|
return self.transport.perform_request("GET", "/_cat/tasks", params=params)
|
|
|
|
@query_params("format", "h", "help", "local", "master_timeout", "s", "v")
|
|
def templates(self, name=None, params=None):
|
|
"""
|
|
`<http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-templates.html>`_
|
|
|
|
:arg name: A pattern that returned template names must match
|
|
:arg format: a short version of the Accept header, e.g. json, yaml
|
|
:arg h: Comma-separated list of column names to display
|
|
:arg help: Return help information, default False
|
|
:arg local: Return local information, do not retrieve the state from
|
|
master node (default: false)
|
|
:arg master_timeout: Explicit operation timeout for connection to master
|
|
node
|
|
:arg s: Comma-separated list of column names or column aliases to sort
|
|
by
|
|
:arg v: Verbose mode. Display column headers, default False
|
|
"""
|
|
return self.transport.perform_request(
|
|
"GET", _make_path("_cat", "templates", name), params=params
|
|
)
|
|
|
|
@query_params("format", "h", "help", "local", "master_timeout", "s", "size", "v")
|
|
def thread_pool(self, thread_pool_patterns=None, params=None):
|
|
"""
|
|
`<http://www.elastic.co/guide/en/elasticsearch/reference/master/cat-thread-pool.html>`_
|
|
|
|
:arg thread_pool_patterns: A comma-separated list of regular-expressions
|
|
to filter the thread pools in the output
|
|
:arg format: a short version of the Accept header, e.g. json, yaml
|
|
:arg h: Comma-separated list of column names to display
|
|
:arg help: Return help information, default False
|
|
:arg local: Return local information, do not retrieve the state from
|
|
master node (default: false)
|
|
:arg master_timeout: Explicit operation timeout for connection to master
|
|
node
|
|
:arg s: Comma-separated list of column names or column aliases to sort
|
|
by
|
|
:arg size: The multiplier in which to display values, valid choices are:
|
|
'', 'k', 'm', 'g', 't', 'p'
|
|
:arg v: Verbose mode. Display column headers, default False
|
|
"""
|
|
return self.transport.perform_request(
|
|
"GET",
|
|
_make_path("_cat", "thread_pool", thread_pool_patterns),
|
|
params=params,
|
|
)
|