Skip to content

Commit bd5bd89

Browse files
committed
add deployment collections to client layer
1 parent 9778a07 commit bd5bd89

File tree

3 files changed

+74
-2
lines changed

3 files changed

+74
-2
lines changed

splunk/client.py

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,12 @@
6060
PATH_ROLES = "authentication/roles/"
6161
PATH_STANZA = "configs/conf-%s/%s" # (file, stanza)
6262
PATH_USERS = "authentication/users/"
63+
PATH_DEP_SERV = "deployment/server/"
64+
PATH_DEP_CLI = "deployment/client/"
65+
PATH_DEP_SERV_CL = "deployment/serverclass/"
66+
PATH_DEP_TENANT = "deployment/tenants/"
67+
PATH_DSEARCH_PEER = "search/distributed/peers/"
68+
PATH_DSEARCH_CONF = "search/distributed/config/"
6369

6470
XNAMEF_ATOM = "{http://www.w3.org/2005/Atom}%s"
6571
XNAME_ENTRY = XNAMEF_ATOM % "entry"
@@ -108,6 +114,66 @@ def confs(self):
108114
dtor=lambda service, stanza:
109115
service.delete(_path_stanza(conf, stanza))))
110116

117+
@property
118+
def deployment_clients(self):
119+
"""Return a collection of deployment clients."""
120+
return Collection(self, PATH_DEP_CLI, "deployment_clients",
121+
item=lambda service, name:
122+
Entity(service, PATH_DEP_CLI + name, name),
123+
ctor=lambda service, name, **kwargs:
124+
service.post(PATH_DEP_CLI, name=name, **kwargs),
125+
dtor=lambda service, name: service.delete(PATH_DEP_CLI + name))
126+
127+
@property
128+
def deployment_servers(self):
129+
"""Return a collection of deployment servers."""
130+
return Collection(self, PATH_DEP_SERV, "deployment_servers",
131+
item=lambda service, name:
132+
Entity(service, PATH_DEP_SERV + name, name),
133+
ctor=lambda service, name, **kwargs:
134+
service.post(PATH_DEP_SERV, name=name, **kwargs),
135+
dtor=lambda service, name: service.delete(PATH_DEP_SERV + name))
136+
137+
@property
138+
def deployment_serverclasses(self):
139+
"""Return a collection of deployment server classes."""
140+
return Collection(self, PATH_DEP_SERV_CL, "deployment_serverclasses",
141+
item=lambda service, name:
142+
Entity(service, PATH_DEP_SERV_CL + name, name),
143+
ctor=lambda service, name, **kwargs:
144+
service.post(PATH_DEP_SERV_CL, name=name, **kwargs),
145+
dtor=lambda service, name: service.delete(PATH_DEP_SERV_CL + name))
146+
147+
@property
148+
def deployment_tenants(self):
149+
"""Return a collection of deployment tenants."""
150+
return Collection(self, PATH_DEP_TENANT, "deptloyment_tenants",
151+
item=lambda service, name:
152+
Entity(service, PATH_DEP_TENANT + name, name),
153+
ctor=lambda service, name, **kwargs:
154+
service.post(PATH_DEP_TENANT, name=name, **kwargs),
155+
dtor=lambda service, name: service.delete(PATH_DEP_TENANT + name))
156+
157+
@property
158+
def distributed_search(self):
159+
"""Return a collection of distributed search peers."""
160+
return Collection(self, PATH_DSEARCH_PEER, "distributed_search",
161+
item=lambda service, name:
162+
Entity(service, PATH_DSEARCH_PEER + name, name),
163+
ctor=lambda service, name, **kwargs:
164+
service.post(PATH_DSEARCH_PEER, name=name, **kwargs),
165+
dtor=lambda service, name: service.delete(PATH_DSEARCH_PEER + name))
166+
167+
@property
168+
def distributed_confs(self):
169+
"""Return a collection of deployment conigs."""
170+
return Collection(self, PATH_DSEARCH_CONF, "distbuted_confs",
171+
item=lambda service, name:
172+
Entity(service, PATH_DSEARCH_CONF + name, name),
173+
ctor=lambda service, name, **kwargs:
174+
service.post(PATH_DSEARCH_CONF, name=name, **kwargs),
175+
dtor=lambda service, name: service.delete(PATH_DSEARCH_CONF + name))
176+
111177
@property
112178
def capabilities(self):
113179
"""Returns a list of all Splunk capabilities."""

tests/splunk.client.baseline

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
['Collection', 'Conf', 'Context', 'Endpoint', 'Entity', 'HTTPError', 'INPUT_KINDMAP', 'Index', 'Input', 'Inputs', 'Job', 'Jobs', 'MATCH_ENTRY_CONTENT', 'Message', 'NotSupportedError', 'PATH_APPS', 'PATH_CAPABILITIES', 'PATH_CONF', 'PATH_CONFS', 'PATH_INDEXES', 'PATH_INPUTS', 'PATH_JOBS', 'PATH_LOGGER', 'PATH_MESSAGES', 'PATH_ROLES', 'PATH_STANZA', 'PATH_USERS', 'Service', 'SplunkError', 'XNAMEF_ATOM', 'XNAME_CONTENT', 'XNAME_ENTRY', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_filter_content', '_path_stanza', 'connect', 'data', 'load', 'quote_plus', 'record', 'sleep', 'urlencode', 'urlparse']
2-
1+
['Collection', 'Conf', 'Context', 'Endpoint', 'Entity', 'HTTPError', 'INPUT_KINDMAP', 'Index', 'Input', 'Inputs', 'Job', 'Jobs', 'MATCH_ENTRY_CONTENT', 'Message', 'NotSupportedError', 'PATH_APPS', 'PATH_CAPABILITIES', 'PATH_CONF', 'PATH_CONFS', 'PATH_DEP_CLI', 'PATH_DEP_SERV', 'PATH_DEP_SERV_CL', 'PATH_DEP_TENANT', 'PATH_DSEARCH_CONF', 'PATH_DSEARCH_PEER', 'PATH_INDEXES', 'PATH_INPUTS', 'PATH_JOBS', 'PATH_LOGGER', 'PATH_MESSAGES', 'PATH_ROLES', 'PATH_STANZA', 'PATH_USERS', 'Service', 'SplunkError', 'XNAMEF_ATOM', 'XNAME_CONTENT', 'XNAME_ENTRY', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_filter_content', '_path_stanza', 'connect', 'data', 'load', 'quote_plus', 'record', 'sleep', 'urlencode', 'urlparse']

tests/test_client.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,13 @@ def assertHttp(self, allowed_error_codes, fn, *args, **kwargs):
5858
def tearDown(self):
5959
pass
6060

61+
def test_deployments(self):
62+
service = self.service
63+
for dep in service.deployment_clients: dep.read()
64+
for dep in service.deployment_servers: dep.read()
65+
for dep in service.deployment_serverclasses: dep.read()
66+
for dep in service.deployment_tenants: dep.read()
67+
6168
def test_apps(self):
6269
service = self.service
6370

0 commit comments

Comments
 (0)