Skip to content

Commit 2d02e59

Browse files
author
aviau
committed
Added create_retention_policy
1 parent 907d471 commit 2d02e59

File tree

2 files changed

+56
-0
lines changed

2 files changed

+56
-0
lines changed

influxdb/client.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,26 @@ def drop_database(self, dbname):
334334
"""
335335
self.query("DROP DATABASE %s" % dbname)
336336

337+
def create_retention_policy(self, name, duration, replication, database=None, default=False):
338+
"""
339+
Create a retention policy
340+
341+
:param duration: The duration. Ex: '1d'
342+
:param replication: The replication.
343+
:param database: The database. Defaults to current database
344+
:param default: (bool) Wether or not to set the policy as default
345+
"""
346+
347+
query_string = \
348+
"CREATE RETENTION POLICY %s ON %s " \
349+
"DURATION %s REPLICATION %s" % \
350+
(name, database or self._database, duration, replication)
351+
352+
if default is True:
353+
query_string += " DEFAULT"
354+
355+
self.query(query_string)
356+
337357
def get_list_retention_policies(self, database=None):
338358
"""
339359
Get the list of retention policies

tests/influxdb/client_test.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,42 @@ def test_get_list_series(self):
372372
u'name': u'fsfdsdf', u'replicaN': 2}]
373373
)
374374

375+
def test_create_retention_policy_default(self):
376+
example_response = u'{"results":[{}]}'
377+
378+
with requests_mock.Mocker() as m:
379+
m.register_uri(
380+
requests_mock.GET,
381+
"http://localhost:8086/query",
382+
text=example_response
383+
)
384+
self.cli.create_retention_policy(
385+
'somename', '1d', 4, default=True, database='db'
386+
)
387+
388+
self.assertEqual(
389+
m.last_request.qs['q'][0],
390+
'create retention policy somename on db duration 1d replication 4 default'
391+
)
392+
393+
def test_create_retention_policy(self):
394+
example_response = u'{"results":[{}]}'
395+
396+
with requests_mock.Mocker() as m:
397+
m.register_uri(
398+
requests_mock.GET,
399+
"http://localhost:8086/query",
400+
text=example_response
401+
)
402+
self.cli.create_retention_policy(
403+
'somename', '1d', 4, database='db'
404+
)
405+
406+
self.assertEqual(
407+
m.last_request.qs['q'][0],
408+
'create retention policy somename on db duration 1d replication 4'
409+
)
410+
375411
def test_get_list_retention_policies(self):
376412
example_response = \
377413
u'{"results": [{"rows": [{"values": [["fsfdsdf", "24h0m0s", 2]],' \

0 commit comments

Comments
 (0)