Flatten namespaces, keep xpack access as failover
This commit is contained in:
@@ -12,9 +12,26 @@ from .nodes import NodesClient
|
|||||||
from .remote import RemoteClient
|
from .remote import RemoteClient
|
||||||
from .snapshot import SnapshotClient
|
from .snapshot import SnapshotClient
|
||||||
from .tasks import TasksClient
|
from .tasks import TasksClient
|
||||||
from .xpack import XPackClient, XPACK_NAMESPACES
|
from .xpack import XPackClient
|
||||||
from .utils import query_params, _make_path, SKIP_IN_PATH
|
from .utils import query_params, _make_path, SKIP_IN_PATH
|
||||||
|
|
||||||
|
# xpack APIs
|
||||||
|
from .ccr import CcrClient
|
||||||
|
from .data_frame import Data_FrameClient
|
||||||
|
from .deprecation import DeprecationClient
|
||||||
|
from .graph import GraphClient
|
||||||
|
from .ilm import IlmClient
|
||||||
|
from .license import LicenseClient
|
||||||
|
from .migration import MigrationClient
|
||||||
|
from .ml import MlClient
|
||||||
|
from .monitoring import MonitoringClient
|
||||||
|
from .rollup import RollupClient
|
||||||
|
from .security import SecurityClient
|
||||||
|
from .sql import SqlClient
|
||||||
|
from .ssl import SslClient
|
||||||
|
from .watcher import WatcherClient
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger("elasticsearch")
|
logger = logging.getLogger("elasticsearch")
|
||||||
|
|
||||||
|
|
||||||
@@ -215,12 +232,22 @@ class Elasticsearch(object):
|
|||||||
self.snapshot = SnapshotClient(self)
|
self.snapshot = SnapshotClient(self)
|
||||||
self.tasks = TasksClient(self)
|
self.tasks = TasksClient(self)
|
||||||
|
|
||||||
# new style access to x-pack features without .xpack step
|
|
||||||
for namespace, NamespacedClient in XPACK_NAMESPACES.items():
|
|
||||||
setattr(self, namespace, NamespacedClient(self))
|
|
||||||
|
|
||||||
# old style xpack access
|
|
||||||
self.xpack = XPackClient(self)
|
self.xpack = XPackClient(self)
|
||||||
|
self.ccr = CcrClient(self)
|
||||||
|
self.data_frame = Data_FrameClient(self)
|
||||||
|
self.deprecation = DeprecationClient(self)
|
||||||
|
self.graph = GraphClient(self)
|
||||||
|
self.ilm = IlmClient(self)
|
||||||
|
self.indices = IndicesClient(self)
|
||||||
|
self.license = LicenseClient(self)
|
||||||
|
self.migration = MigrationClient(self)
|
||||||
|
self.ml = MlClient(self)
|
||||||
|
self.monitoring = MonitoringClient(self)
|
||||||
|
self.rollup = RollupClient(self)
|
||||||
|
self.security = SecurityClient(self)
|
||||||
|
self.sql = SqlClient(self)
|
||||||
|
self.ssl = SslClient(self)
|
||||||
|
self.watcher = WatcherClient(self)
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
try:
|
try:
|
||||||
@@ -245,6 +272,8 @@ class Elasticsearch(object):
|
|||||||
|
|
||||||
return body
|
return body
|
||||||
|
|
||||||
|
# AUTO-GENERATED-API-DEFINITIONS #
|
||||||
|
|
||||||
@query_params()
|
@query_params()
|
||||||
def ping(self, params=None):
|
def ping(self, params=None):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from ..utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
|
from .utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
|
||||||
|
|
||||||
|
|
||||||
class CcrClient(NamespacedClient):
|
class CcrClient(NamespacedClient):
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
from ..utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
|
from .utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
|
||||||
|
|
||||||
|
|
||||||
class Data_FrameClient(NamespacedClient):
|
class Data_FrameClient(NamespacedClient):
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
from ..utils import NamespacedClient, query_params, _make_path
|
from .utils import NamespacedClient, query_params, _make_path
|
||||||
|
|
||||||
|
|
||||||
class DeprecationClient(NamespacedClient):
|
class DeprecationClient(NamespacedClient):
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
from ..utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
|
from .utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
|
||||||
|
|
||||||
|
|
||||||
class GraphClient(NamespacedClient):
|
class GraphClient(NamespacedClient):
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
from ..utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
|
from .utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
|
||||||
|
|
||||||
|
|
||||||
class IlmClient(NamespacedClient):
|
class IlmClient(NamespacedClient):
|
||||||
@@ -79,10 +79,7 @@ class IndicesClient(NamespacedClient):
|
|||||||
)
|
)
|
||||||
|
|
||||||
@query_params(
|
@query_params(
|
||||||
"master_timeout",
|
"master_timeout", "timeout", "wait_for_active_shards", "include_type_name",
|
||||||
"timeout",
|
|
||||||
"wait_for_active_shards",
|
|
||||||
"include_type_name",
|
|
||||||
)
|
)
|
||||||
def create(self, index, body=None, params=None):
|
def create(self, index, body=None, params=None):
|
||||||
"""
|
"""
|
||||||
@@ -104,11 +101,7 @@ class IndicesClient(NamespacedClient):
|
|||||||
"PUT", _make_path(index), params=params, body=body
|
"PUT", _make_path(index), params=params, body=body
|
||||||
)
|
)
|
||||||
|
|
||||||
@query_params(
|
@query_params("master_timeout", "timeout", "wait_for_active_shards")
|
||||||
"master_timeout",
|
|
||||||
"timeout",
|
|
||||||
"wait_for_active_shards"
|
|
||||||
)
|
|
||||||
def clone(self, index, target, body=None, params=None):
|
def clone(self, index, target, body=None, params=None):
|
||||||
"""
|
"""
|
||||||
Clones an index
|
Clones an index
|
||||||
@@ -127,7 +120,7 @@ class IndicesClient(NamespacedClient):
|
|||||||
raise ValueError("Empty value passed for a required argument 'target'.")
|
raise ValueError("Empty value passed for a required argument 'target'.")
|
||||||
|
|
||||||
return self.transport.perform_request(
|
return self.transport.perform_request(
|
||||||
"PUT", _make_path(index, '_clone', target), params=params, body=body
|
"PUT", _make_path(index, "_clone", target), params=params, body=body
|
||||||
)
|
)
|
||||||
|
|
||||||
@query_params(
|
@query_params(
|
||||||
@@ -1035,9 +1028,7 @@ class IndicesClient(NamespacedClient):
|
|||||||
"POST", _make_path(index, "_forcemerge"), params=params
|
"POST", _make_path(index, "_forcemerge"), params=params
|
||||||
)
|
)
|
||||||
|
|
||||||
@query_params(
|
@query_params("master_timeout", "timeout", "wait_for_active_shards")
|
||||||
"master_timeout", "timeout", "wait_for_active_shards"
|
|
||||||
)
|
|
||||||
def shrink(self, index, target, body=None, params=None):
|
def shrink(self, index, target, body=None, params=None):
|
||||||
"""
|
"""
|
||||||
The shrink index API allows you to shrink an existing index into a new
|
The shrink index API allows you to shrink an existing index into a new
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from ..utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
|
from .utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
|
||||||
|
|
||||||
|
|
||||||
class LicenseClient(NamespacedClient):
|
class LicenseClient(NamespacedClient):
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
from ..utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
|
from .utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
|
||||||
|
|
||||||
|
|
||||||
class MigrationClient(NamespacedClient):
|
class MigrationClient(NamespacedClient):
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
from ..utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
|
from .utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
|
||||||
|
|
||||||
|
|
||||||
class MlClient(NamespacedClient):
|
class MlClient(NamespacedClient):
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
from ..utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
|
from .utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
|
||||||
|
|
||||||
|
|
||||||
class MonitoringClient(NamespacedClient):
|
class MonitoringClient(NamespacedClient):
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
from ..utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
|
from .utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
|
||||||
|
|
||||||
|
|
||||||
class RollupClient(NamespacedClient):
|
class RollupClient(NamespacedClient):
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
from ..utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
|
from .utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
|
||||||
|
|
||||||
|
|
||||||
class SecurityClient(NamespacedClient):
|
class SecurityClient(NamespacedClient):
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
from ..utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
|
from .utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
|
||||||
|
|
||||||
|
|
||||||
class SqlClient(NamespacedClient):
|
class SqlClient(NamespacedClient):
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
from ..utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
|
from .utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
|
||||||
|
|
||||||
|
|
||||||
class SslClient(NamespacedClient):
|
class SslClient(NamespacedClient):
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
from ..utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
|
from .utils import NamespacedClient, query_params, _make_path, SKIP_IN_PATH
|
||||||
|
|
||||||
|
|
||||||
class WatcherClient(NamespacedClient):
|
class WatcherClient(NamespacedClient):
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
from .utils import NamespacedClient, query_params
|
||||||
|
|
||||||
|
|
||||||
|
class XPackClient(NamespacedClient):
|
||||||
|
def __getattr__(self, attr_name):
|
||||||
|
return getattr(self.client, attr_name)
|
||||||
|
|
||||||
|
# AUTO-GENERATED-API-DEFINITIONS #
|
||||||
|
@query_params("categories", "human")
|
||||||
|
def info(self, params=None):
|
||||||
|
"""
|
||||||
|
Retrieve information about xpack, including build number/timestamp and license status
|
||||||
|
`<https://www.elastic.co/guide/en/elasticsearch/reference/current/info-api.html>`_
|
||||||
|
|
||||||
|
:arg categories: Comma-separated list of info categories. Can be any of:
|
||||||
|
build, license, features
|
||||||
|
:arg human: Presents additional info for humans (feature descriptions
|
||||||
|
and X-Pack tagline)
|
||||||
|
"""
|
||||||
|
return self.transport.perform_request("GET", "/_xpack", params=params)
|
||||||
|
|
||||||
|
@query_params("master_timeout")
|
||||||
|
def usage(self, params=None):
|
||||||
|
"""
|
||||||
|
Retrieve information about xpack features usage
|
||||||
|
|
||||||
|
:arg master_timeout: Specify timeout for watch write operation
|
||||||
|
"""
|
||||||
|
return self.transport.perform_request("GET", "/_xpack/usage", params=params)
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
from ..utils import NamespacedClient, query_params
|
|
||||||
|
|
||||||
from .ccr import CcrClient
|
|
||||||
from .data_frame import Data_FrameClient
|
|
||||||
from .deprecation import DeprecationClient
|
|
||||||
from .graph import GraphClient
|
|
||||||
from .ilm import IlmClient
|
|
||||||
from ..indices import IndicesClient
|
|
||||||
from .license import LicenseClient
|
|
||||||
from .migration import MigrationClient
|
|
||||||
from .ml import MlClient
|
|
||||||
from .monitoring import MonitoringClient
|
|
||||||
from .rollup import RollupClient
|
|
||||||
from .security import SecurityClient
|
|
||||||
from .sql import SqlClient
|
|
||||||
from .ssl import SslClient
|
|
||||||
from .watcher import WatcherClient
|
|
||||||
|
|
||||||
XPACK_NAMESPACES = {
|
|
||||||
"ccr": CcrClient,
|
|
||||||
"data_frame": Data_FrameClient,
|
|
||||||
"deprecation": DeprecationClient,
|
|
||||||
"graph": GraphClient,
|
|
||||||
"ilm": IlmClient,
|
|
||||||
"indices": IndicesClient,
|
|
||||||
"license": LicenseClient,
|
|
||||||
"migration": MigrationClient,
|
|
||||||
"ml": MlClient,
|
|
||||||
"monitoring": MonitoringClient,
|
|
||||||
"rollup": RollupClient,
|
|
||||||
"security": SecurityClient,
|
|
||||||
"sql": SqlClient,
|
|
||||||
"ssl": SslClient,
|
|
||||||
"watcher": WatcherClient,
|
|
||||||
}
|
|
||||||
|
|
||||||
class XPackClient(NamespacedClient):
|
|
||||||
def __init__(self, *args, **kwargs):
|
|
||||||
super(XPackClient, self).__init__(*args, **kwargs)
|
|
||||||
|
|
||||||
for namespace in XPACK_NAMESPACES:
|
|
||||||
setattr(self, namespace, getattr(self.client, namespace))
|
|
||||||
|
|
||||||
@query_params("categories", "human")
|
|
||||||
def info(self, params=None):
|
|
||||||
"""
|
|
||||||
Retrieve information about xpack, including build number/timestamp and license status
|
|
||||||
`<https://www.elastic.co/guide/en/elasticsearch/reference/current/info-api.html>`_
|
|
||||||
|
|
||||||
:arg categories: Comma-separated list of info categories. Can be any of:
|
|
||||||
build, license, features
|
|
||||||
:arg human: Presents additional info for humans (feature descriptions
|
|
||||||
and X-Pack tagline)
|
|
||||||
"""
|
|
||||||
return self.transport.perform_request("GET", "/_xpack", params=params)
|
|
||||||
|
|
||||||
@query_params("master_timeout")
|
|
||||||
def usage(self, params=None):
|
|
||||||
"""
|
|
||||||
Retrieve information about xpack features usage
|
|
||||||
|
|
||||||
:arg master_timeout: Specify timeout for watch write operation
|
|
||||||
"""
|
|
||||||
return self.transport.perform_request("GET", "/_xpack/usage", params=params)
|
|
||||||
Reference in New Issue
Block a user