From 5dfecd1c8628afde87700a43771e1e2efc649398 Mon Sep 17 00:00:00 2001 From: Roman Vynar Date: Wed, 10 Feb 2016 14:29:38 +0200 Subject: [PATCH] Added drop_retention_policy() --- influxdb/client.py | 14 +++++++++++++ influxdb/tests/client_test.py | 21 +++++++++++++++++++ .../server_tests/client_test_with_server.py | 21 +++++++++++++++++++ 3 files changed, 56 insertions(+) diff --git a/influxdb/client.py b/influxdb/client.py index 8146d68d..58a29c7b 100644 --- a/influxdb/client.py +++ b/influxdb/client.py @@ -548,6 +548,20 @@ def alter_retention_policy(self, name, database=None, self.query(query_string) + def drop_retention_policy(self, name, database=None): + """Drop an existing retention policy for a database. + + :param name: the name of the retention policy to drop + :type name: str + :param database: the database for which the retention policy is + dropped. Defaults to current client's database + :type database: str + """ + query_string = ( + "DROP RETENTION POLICY {0} ON {1}" + ).format(name, database or self._database) + self.query(query_string) + def get_list_retention_policies(self, database=None): """Get the list of retention policies for a database. diff --git a/influxdb/tests/client_test.py b/influxdb/tests/client_test.py index c7f980f1..2d2b7fae 100644 --- a/influxdb/tests/client_test.py +++ b/influxdb/tests/client_test.py @@ -632,6 +632,27 @@ def test_alter_retention_policy_invalid(self): with _mocked_session(cli, 'get', 400): self.cli.alter_retention_policy('somename', 'db') + def test_drop_retention_policy(self): + example_response = '{"results":[{}]}' + + with requests_mock.Mocker() as m: + m.register_uri( + requests_mock.GET, + "http://localhost:8086/query", + text=example_response + ) + self.cli.drop_retention_policy('somename', 'db') + self.assertEqual( + m.last_request.qs['q'][0], + 'drop retention policy somename on db' + ) + + @raises(Exception) + def test_drop_retention_policy_fails(self): + cli = InfluxDBClient('host', 8086, 'username', 'password') + with _mocked_session(cli, 'delete', 401): + cli.drop_retention_policy('default', 'db') + def test_get_list_retention_policies(self): example_response = \ '{"results": [{"series": [{"values": [["fsfdsdf", "24h0m0s", 2]],'\ diff --git a/influxdb/tests/server_tests/client_test_with_server.py b/influxdb/tests/server_tests/client_test_with_server.py index def193d2..2c6b408e 100644 --- a/influxdb/tests/server_tests/client_test_with_server.py +++ b/influxdb/tests/server_tests/client_test_with_server.py @@ -600,6 +600,27 @@ def test_alter_retention_policy_invalid(self): rsp ) + def test_drop_retention_policy(self): + self.cli.create_retention_policy('somename', '1d', 1) + + # Test drop retention + self.cli.drop_retention_policy('somename', 'db') + rsp = self.cli.get_list_retention_policies() + self.assertEqual( + [{'duration': '0', 'default': True, + 'replicaN': 1, 'name': 'default'}], + rsp + ) + + def test_drop_retention_policy_default(self): + # Test drop default retention + with self.assertRaises(InfluxDBClientError) as ctx: + self.cli.drop_retention_policy('default', 'db') + + self.assertEqual(400, ctx.exception.code) + self.assertIn('{"error":"error parsing query: found DEFAULT, expected POLICY', + ctx.exception.content) + def test_issue_143(self): pt = partial(point, 'a_serie_name', timestamp='2015-03-30T16:16:37Z') pts = [ pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy