From 815d37e4d83507757bad6f480512d5acd835c575 Mon Sep 17 00:00:00 2001 From: Pitastic Date: Wed, 21 Dec 2022 18:18:07 +0100 Subject: [PATCH 1/8] Create and Delete DB via v1 --- influxdb_client/client/bucket_api.py | 80 ++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/influxdb_client/client/bucket_api.py b/influxdb_client/client/bucket_api.py index 47763bee..ca9ffebc 100644 --- a/influxdb_client/client/bucket_api.py +++ b/influxdb_client/client/bucket_api.py @@ -58,6 +58,51 @@ def create_bucket(self, bucket=None, bucket_name=None, org_id=None, retention_ru return self._buckets_service.post_buckets(post_bucket_request=bucket) + def create_database(self, database=None, retention_rules=None): + """Create a database at the v1 api (legacy). + + :param database_name: name of the new database + :param retention_rules: retention rules array or single BucketRetentionRules + :return: Tuple (response body, status code, header dict)""" + if database is None: + raise ValueError("Invalid value for `database`, must be defined.") + + if retention_rules is None: + retention_rules = [] + + rules = [] + + if isinstance(retention_rules, list): + rules.extend(retention_rules) + else: + rules.append(retention_rules) + + # Hedaer and local_var_params for standard procedures only + header_params = {} + header_params['Accept'] = self._influxdb_client.api_client.select_header_accept( + ['application/json']) + header_params['Content-Type'] = self._influxdb_client.api_client.select_header_content_type( + ['application/json']) + local_var_params = locals() + local_var_params['kwargs'] = {} + all_params = [] + self._buckets_service._check_operation_params( + "create_database", all_params, local_var_params + ) + + return self._influxdb_client.api_client.call_api( + '/query', 'POST', + header_params=header_params, + path_params={}, post_params=[], + files={}, auth_settings=[], collection_formats={}, + query_params={'q': f'CREATE DATABASE {database}'}, + async_req=local_var_params.get('async_req'), + _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501 + _preload_content=local_var_params.get('_preload_content', True), + _request_timeout=local_var_params.get('_request_timeout'), + urlopen_kw=None + ) + def update_bucket(self, bucket: Bucket) -> Bucket: """Update a bucket. @@ -83,6 +128,41 @@ def delete_bucket(self, bucket): return self._buckets_service.delete_buckets_id(bucket_id=bucket_id) + def delete_database(self, database=None): + """Delete a database at the v1 api (legacy). + + :param database_name: name of the database to delete + :param retention_rules: retention rules array or single BucketRetentionRules + :return: Tuple (response body, status code, header dict)""" + if database is None: + raise ValueError("Invalid value for `database`, must be defined.") + + # Hedaer and local_var_params for standard procedures only + header_params = {} + header_params['Accept'] = self._influxdb_client.api_client.select_header_accept( + ['application/json']) + header_params['Content-Type'] = self._influxdb_client.api_client.select_header_content_type( + ['application/json']) + local_var_params = locals() + local_var_params['kwargs'] = {} + all_params = [] + self._buckets_service._check_operation_params( + "drop_database", all_params, local_var_params + ) + + return self._influxdb_client.api_client.call_api( + '/query', 'POST', + header_params=header_params, + path_params={}, post_params=[], + files={}, auth_settings=[], collection_formats={}, + query_params={'q': f'DROP DATABASE {database}'}, + async_req=local_var_params.get('async_req'), + _return_http_data_only=local_var_params.get('_return_http_data_only'), + _preload_content=local_var_params.get('_preload_content', True), + _request_timeout=local_var_params.get('_request_timeout'), + urlopen_kw=None + ) + def find_bucket_by_id(self, id): """Find bucket by ID. From f3f35e11599eb7cf4ca5ace661e3c68c2929f06f Mon Sep 17 00:00:00 2001 From: Pitastic Date: Wed, 21 Dec 2022 21:40:49 +0100 Subject: [PATCH 2/8] Auto fallback when buckets not supported --- influxdb_client/client/bucket_api.py | 35 +++++++++++++--------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/influxdb_client/client/bucket_api.py b/influxdb_client/client/bucket_api.py index ca9ffebc..392f5546 100644 --- a/influxdb_client/client/bucket_api.py +++ b/influxdb_client/client/bucket_api.py @@ -5,7 +5,7 @@ A bucket belongs to an organization. """ import warnings - +from influxdb_client.rest import ApiException from influxdb_client import BucketsService, Bucket, PostBucketRequest, PatchBucketRequest from influxdb_client.client.util.helpers import get_org_query_param @@ -20,20 +20,19 @@ def __init__(self, influxdb_client): def create_bucket(self, bucket=None, bucket_name=None, org_id=None, retention_rules=None, description=None, org=None) -> Bucket: - """Create a bucket. + """Create a bucket. Database creation via v1 API as fallback. :param Bucket|PostBucketRequest bucket: bucket to create :param bucket_name: bucket name :param description: bucket description :param org_id: org_id - :param bucket_name: bucket name :param retention_rules: retention rules array or single BucketRetentionRules :param str, Organization org: specifies the organization for create the bucket; Take the ``ID``, ``Name`` or ``Organization``. If not specified the default value from ``InfluxDBClient.org`` is used. - :return: Bucket + :return: Bucket or the request thread when falling back. If the method is called asynchronously, - returns the request thread. + returns also the request thread. """ if retention_rules is None: retention_rules = [] @@ -56,7 +55,12 @@ def create_bucket(self, bucket=None, bucket_name=None, org_id=None, retention_ru client=self._influxdb_client, required_id=True)) - return self._buckets_service.post_buckets(post_bucket_request=bucket) + try: + return self._buckets_service.post_buckets(post_bucket_request=bucket) + except ApiException as ex: + # Fall back to v1 API if buckets are not supported + database_name = bucket_name if bucket_name is not None else bucket + return self.create_database(database=database_name, retention_rules=retention_rules) def create_database(self, database=None, retention_rules=None): """Create a database at the v1 api (legacy). @@ -67,16 +71,6 @@ def create_database(self, database=None, retention_rules=None): if database is None: raise ValueError("Invalid value for `database`, must be defined.") - if retention_rules is None: - retention_rules = [] - - rules = [] - - if isinstance(retention_rules, list): - rules.extend(retention_rules) - else: - rules.append(retention_rules) - # Hedaer and local_var_params for standard procedures only header_params = {} header_params['Accept'] = self._influxdb_client.api_client.select_header_accept( @@ -116,17 +110,20 @@ def update_bucket(self, bucket: Bucket) -> Bucket: return self._buckets_service.patch_buckets_id(bucket_id=bucket.id, patch_bucket_request=request) def delete_bucket(self, bucket): - """Delete a bucket. + """Delete a bucket. Delete a database via v1 API as fallback. :param bucket: bucket id or Bucket - :return: Bucket + :return: Bucket or the request thread when falling back """ if isinstance(bucket, Bucket): bucket_id = bucket.id else: bucket_id = bucket - return self._buckets_service.delete_buckets_id(bucket_id=bucket_id) + try: + return self._buckets_service.delete_buckets_id(bucket_id=bucket_id) + except ApiException as ex: + return self.delete_database(database=bucket_id) def delete_database(self, database=None): """Delete a database at the v1 api (legacy). From b33132801efb158b3c16d1b414218dc016e72c7a Mon Sep 17 00:00:00 2001 From: Pitastic Date: Wed, 21 Dec 2022 22:07:43 +0100 Subject: [PATCH 3/8] Clean up coding style --- influxdb_client/client/bucket_api.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/influxdb_client/client/bucket_api.py b/influxdb_client/client/bucket_api.py index 392f5546..f195a417 100644 --- a/influxdb_client/client/bucket_api.py +++ b/influxdb_client/client/bucket_api.py @@ -57,17 +57,18 @@ def create_bucket(self, bucket=None, bucket_name=None, org_id=None, retention_ru try: return self._buckets_service.post_buckets(post_bucket_request=bucket) - except ApiException as ex: + except ApiException: # Fall back to v1 API if buckets are not supported database_name = bucket_name if bucket_name is not None else bucket return self.create_database(database=database_name, retention_rules=retention_rules) def create_database(self, database=None, retention_rules=None): """Create a database at the v1 api (legacy). - + :param database_name: name of the new database :param retention_rules: retention rules array or single BucketRetentionRules - :return: Tuple (response body, status code, header dict)""" + :return: Tuple (response body, status code, header dict) + """ if database is None: raise ValueError("Invalid value for `database`, must be defined.") @@ -122,15 +123,16 @@ def delete_bucket(self, bucket): try: return self._buckets_service.delete_buckets_id(bucket_id=bucket_id) - except ApiException as ex: + except ApiException: return self.delete_database(database=bucket_id) def delete_database(self, database=None): """Delete a database at the v1 api (legacy). - + :param database_name: name of the database to delete :param retention_rules: retention rules array or single BucketRetentionRules - :return: Tuple (response body, status code, header dict)""" + :return: Tuple (response body, status code, header dict) + """ if database is None: raise ValueError("Invalid value for `database`, must be defined.") From d13debe6db643332a8a16a8867da509107c70be9 Mon Sep 17 00:00:00 2001 From: Pitastic Date: Wed, 21 Dec 2022 18:18:07 +0100 Subject: [PATCH 4/8] Create and Delete DB via v1 --- influxdb_client/client/bucket_api.py | 80 ++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/influxdb_client/client/bucket_api.py b/influxdb_client/client/bucket_api.py index 47763bee..ca9ffebc 100644 --- a/influxdb_client/client/bucket_api.py +++ b/influxdb_client/client/bucket_api.py @@ -58,6 +58,51 @@ def create_bucket(self, bucket=None, bucket_name=None, org_id=None, retention_ru return self._buckets_service.post_buckets(post_bucket_request=bucket) + def create_database(self, database=None, retention_rules=None): + """Create a database at the v1 api (legacy). + + :param database_name: name of the new database + :param retention_rules: retention rules array or single BucketRetentionRules + :return: Tuple (response body, status code, header dict)""" + if database is None: + raise ValueError("Invalid value for `database`, must be defined.") + + if retention_rules is None: + retention_rules = [] + + rules = [] + + if isinstance(retention_rules, list): + rules.extend(retention_rules) + else: + rules.append(retention_rules) + + # Hedaer and local_var_params for standard procedures only + header_params = {} + header_params['Accept'] = self._influxdb_client.api_client.select_header_accept( + ['application/json']) + header_params['Content-Type'] = self._influxdb_client.api_client.select_header_content_type( + ['application/json']) + local_var_params = locals() + local_var_params['kwargs'] = {} + all_params = [] + self._buckets_service._check_operation_params( + "create_database", all_params, local_var_params + ) + + return self._influxdb_client.api_client.call_api( + '/query', 'POST', + header_params=header_params, + path_params={}, post_params=[], + files={}, auth_settings=[], collection_formats={}, + query_params={'q': f'CREATE DATABASE {database}'}, + async_req=local_var_params.get('async_req'), + _return_http_data_only=local_var_params.get('_return_http_data_only'), # noqa: E501 + _preload_content=local_var_params.get('_preload_content', True), + _request_timeout=local_var_params.get('_request_timeout'), + urlopen_kw=None + ) + def update_bucket(self, bucket: Bucket) -> Bucket: """Update a bucket. @@ -83,6 +128,41 @@ def delete_bucket(self, bucket): return self._buckets_service.delete_buckets_id(bucket_id=bucket_id) + def delete_database(self, database=None): + """Delete a database at the v1 api (legacy). + + :param database_name: name of the database to delete + :param retention_rules: retention rules array or single BucketRetentionRules + :return: Tuple (response body, status code, header dict)""" + if database is None: + raise ValueError("Invalid value for `database`, must be defined.") + + # Hedaer and local_var_params for standard procedures only + header_params = {} + header_params['Accept'] = self._influxdb_client.api_client.select_header_accept( + ['application/json']) + header_params['Content-Type'] = self._influxdb_client.api_client.select_header_content_type( + ['application/json']) + local_var_params = locals() + local_var_params['kwargs'] = {} + all_params = [] + self._buckets_service._check_operation_params( + "drop_database", all_params, local_var_params + ) + + return self._influxdb_client.api_client.call_api( + '/query', 'POST', + header_params=header_params, + path_params={}, post_params=[], + files={}, auth_settings=[], collection_formats={}, + query_params={'q': f'DROP DATABASE {database}'}, + async_req=local_var_params.get('async_req'), + _return_http_data_only=local_var_params.get('_return_http_data_only'), + _preload_content=local_var_params.get('_preload_content', True), + _request_timeout=local_var_params.get('_request_timeout'), + urlopen_kw=None + ) + def find_bucket_by_id(self, id): """Find bucket by ID. From 90a7c62f926037056b43d5682903629f4f604169 Mon Sep 17 00:00:00 2001 From: Pitastic Date: Wed, 21 Dec 2022 21:40:49 +0100 Subject: [PATCH 5/8] Auto fallback when buckets not supported --- influxdb_client/client/bucket_api.py | 35 +++++++++++++--------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/influxdb_client/client/bucket_api.py b/influxdb_client/client/bucket_api.py index ca9ffebc..392f5546 100644 --- a/influxdb_client/client/bucket_api.py +++ b/influxdb_client/client/bucket_api.py @@ -5,7 +5,7 @@ A bucket belongs to an organization. """ import warnings - +from influxdb_client.rest import ApiException from influxdb_client import BucketsService, Bucket, PostBucketRequest, PatchBucketRequest from influxdb_client.client.util.helpers import get_org_query_param @@ -20,20 +20,19 @@ def __init__(self, influxdb_client): def create_bucket(self, bucket=None, bucket_name=None, org_id=None, retention_rules=None, description=None, org=None) -> Bucket: - """Create a bucket. + """Create a bucket. Database creation via v1 API as fallback. :param Bucket|PostBucketRequest bucket: bucket to create :param bucket_name: bucket name :param description: bucket description :param org_id: org_id - :param bucket_name: bucket name :param retention_rules: retention rules array or single BucketRetentionRules :param str, Organization org: specifies the organization for create the bucket; Take the ``ID``, ``Name`` or ``Organization``. If not specified the default value from ``InfluxDBClient.org`` is used. - :return: Bucket + :return: Bucket or the request thread when falling back. If the method is called asynchronously, - returns the request thread. + returns also the request thread. """ if retention_rules is None: retention_rules = [] @@ -56,7 +55,12 @@ def create_bucket(self, bucket=None, bucket_name=None, org_id=None, retention_ru client=self._influxdb_client, required_id=True)) - return self._buckets_service.post_buckets(post_bucket_request=bucket) + try: + return self._buckets_service.post_buckets(post_bucket_request=bucket) + except ApiException as ex: + # Fall back to v1 API if buckets are not supported + database_name = bucket_name if bucket_name is not None else bucket + return self.create_database(database=database_name, retention_rules=retention_rules) def create_database(self, database=None, retention_rules=None): """Create a database at the v1 api (legacy). @@ -67,16 +71,6 @@ def create_database(self, database=None, retention_rules=None): if database is None: raise ValueError("Invalid value for `database`, must be defined.") - if retention_rules is None: - retention_rules = [] - - rules = [] - - if isinstance(retention_rules, list): - rules.extend(retention_rules) - else: - rules.append(retention_rules) - # Hedaer and local_var_params for standard procedures only header_params = {} header_params['Accept'] = self._influxdb_client.api_client.select_header_accept( @@ -116,17 +110,20 @@ def update_bucket(self, bucket: Bucket) -> Bucket: return self._buckets_service.patch_buckets_id(bucket_id=bucket.id, patch_bucket_request=request) def delete_bucket(self, bucket): - """Delete a bucket. + """Delete a bucket. Delete a database via v1 API as fallback. :param bucket: bucket id or Bucket - :return: Bucket + :return: Bucket or the request thread when falling back """ if isinstance(bucket, Bucket): bucket_id = bucket.id else: bucket_id = bucket - return self._buckets_service.delete_buckets_id(bucket_id=bucket_id) + try: + return self._buckets_service.delete_buckets_id(bucket_id=bucket_id) + except ApiException as ex: + return self.delete_database(database=bucket_id) def delete_database(self, database=None): """Delete a database at the v1 api (legacy). From 69b608978033d0452f3863727e86de687be68d03 Mon Sep 17 00:00:00 2001 From: Pitastic Date: Wed, 21 Dec 2022 22:07:43 +0100 Subject: [PATCH 6/8] Clean up coding style --- influxdb_client/client/bucket_api.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/influxdb_client/client/bucket_api.py b/influxdb_client/client/bucket_api.py index 392f5546..f195a417 100644 --- a/influxdb_client/client/bucket_api.py +++ b/influxdb_client/client/bucket_api.py @@ -57,17 +57,18 @@ def create_bucket(self, bucket=None, bucket_name=None, org_id=None, retention_ru try: return self._buckets_service.post_buckets(post_bucket_request=bucket) - except ApiException as ex: + except ApiException: # Fall back to v1 API if buckets are not supported database_name = bucket_name if bucket_name is not None else bucket return self.create_database(database=database_name, retention_rules=retention_rules) def create_database(self, database=None, retention_rules=None): """Create a database at the v1 api (legacy). - + :param database_name: name of the new database :param retention_rules: retention rules array or single BucketRetentionRules - :return: Tuple (response body, status code, header dict)""" + :return: Tuple (response body, status code, header dict) + """ if database is None: raise ValueError("Invalid value for `database`, must be defined.") @@ -122,15 +123,16 @@ def delete_bucket(self, bucket): try: return self._buckets_service.delete_buckets_id(bucket_id=bucket_id) - except ApiException as ex: + except ApiException: return self.delete_database(database=bucket_id) def delete_database(self, database=None): """Delete a database at the v1 api (legacy). - + :param database_name: name of the database to delete :param retention_rules: retention rules array or single BucketRetentionRules - :return: Tuple (response body, status code, header dict)""" + :return: Tuple (response body, status code, header dict) + """ if database is None: raise ValueError("Invalid value for `database`, must be defined.") From 71f0fdb5346f63f9e985a1adf9561a7e1b905c7b Mon Sep 17 00:00:00 2001 From: Pitastic Date: Wed, 28 Dec 2022 21:36:53 +0100 Subject: [PATCH 7/8] Implement version check --- influxdb_client/client/bucket_api.py | 41 +++++++++++++----------- influxdb_client/service/_base_service.py | 35 ++++++++++++++++++++ 2 files changed, 57 insertions(+), 19 deletions(-) diff --git a/influxdb_client/client/bucket_api.py b/influxdb_client/client/bucket_api.py index f195a417..2b49ed52 100644 --- a/influxdb_client/client/bucket_api.py +++ b/influxdb_client/client/bucket_api.py @@ -30,10 +30,17 @@ def create_bucket(self, bucket=None, bucket_name=None, org_id=None, retention_ru :param str, Organization org: specifies the organization for create the bucket; Take the ``ID``, ``Name`` or ``Organization``. If not specified the default value from ``InfluxDBClient.org`` is used. - :return: Bucket or the request thread when falling back. + :return: Bucket If the method is called asynchronously, - returns also the request thread. + returns the request thread. """ + if self._buckets_service._is_below_v2(): + # Fall back to v1 API if buckets are not supported + warnings.warn("InfluxDB versions below v2.0 are deprecated. " + \ + "Falling back to CREATE DATABASE statement", DeprecationWarning) + database_name = bucket_name if bucket_name is not None else bucket + return self._create_database(database=database_name) + if retention_rules is None: retention_rules = [] @@ -55,19 +62,13 @@ def create_bucket(self, bucket=None, bucket_name=None, org_id=None, retention_ru client=self._influxdb_client, required_id=True)) - try: - return self._buckets_service.post_buckets(post_bucket_request=bucket) - except ApiException: - # Fall back to v1 API if buckets are not supported - database_name = bucket_name if bucket_name is not None else bucket - return self.create_database(database=database_name, retention_rules=retention_rules) + return self._buckets_service.post_buckets(post_bucket_request=bucket) - def create_database(self, database=None, retention_rules=None): + def _create_database(self, database=None): """Create a database at the v1 api (legacy). :param database_name: name of the new database - :param retention_rules: retention rules array or single BucketRetentionRules - :return: Tuple (response body, status code, header dict) + :return: tuple(response body, status code, header dict) """ if database is None: raise ValueError("Invalid value for `database`, must be defined.") @@ -114,24 +115,26 @@ def delete_bucket(self, bucket): """Delete a bucket. Delete a database via v1 API as fallback. :param bucket: bucket id or Bucket - :return: Bucket or the request thread when falling back + :return: Bucket """ if isinstance(bucket, Bucket): bucket_id = bucket.id else: bucket_id = bucket - try: - return self._buckets_service.delete_buckets_id(bucket_id=bucket_id) - except ApiException: - return self.delete_database(database=bucket_id) + if self._buckets_service._is_below_v2(): + # Fall back to v1 API if buckets are not supported + warnings.warn("InfluxDB versions below v2.0 are deprecated. " + \ + "Falling back to DROP DATABASE statement", DeprecationWarning) + return self._delete_database(database=bucket_id) - def delete_database(self, database=None): + return self._buckets_service.delete_buckets_id(bucket_id=bucket_id) + + def _delete_database(self, database=None): """Delete a database at the v1 api (legacy). :param database_name: name of the database to delete - :param retention_rules: retention rules array or single BucketRetentionRules - :return: Tuple (response body, status code, header dict) + :return: tuple(response body, status code, header dict) """ if database is None: raise ValueError("Invalid value for `database`, must be defined.") diff --git a/influxdb_client/service/_base_service.py b/influxdb_client/service/_base_service.py index d3e8f995..15e9d56c 100644 --- a/influxdb_client/service/_base_service.py +++ b/influxdb_client/service/_base_service.py @@ -9,6 +9,7 @@ def __init__(self, api_client=None): raise ValueError("Invalid value for `api_client`, must be defined.") self.api_client = api_client self._build_type = None + self._build_version = None def _check_operation_params(self, operation_id, supported_params, local_params): supported_params.append('async_req') @@ -35,6 +36,16 @@ async def _is_cloud_instance_async(self) -> bool: self._build_type = await self.build_type_async() return 'cloud' in self._build_type.lower() + def _is_below_v2(self) -> bool: + if self._build_version is None: + self._build_version = self.build_version() + return self._build_version < '2' + + async def _is_below_v2_async(self) -> bool: + if self._build_version is None: + self._build_version = await self.build_version() + return self._build_version < '2' + def build_type(self) -> str: """ Return the build type of the connected InfluxDB Server. @@ -59,6 +70,30 @@ async def build_type_async(self) -> str: response = await ping_service.get_ping_async(_return_http_data_only=False) return self.response_header(response, header_name='X-Influxdb-Build') + def build_version(self) -> str: + """ + Return the version number of the connected InfluxDB Server. + + :return: Version number of InfluxDB build. + """ + from influxdb_client import PingService + ping_service = PingService(self.api_client) + + response = ping_service.get_ping_with_http_info(_return_http_data_only=False) + return self.response_header(response, header_name='X-Influxdb-Version') + + async def build_version_async(self) -> str: + """ + Return the version number of the connected InfluxDB Server. + + :return: Version number of InfluxDB build. + """ + from influxdb_client import PingService + ping_service = PingService(self.api_client) + + response = await ping_service.get_ping_async(_return_http_data_only=False) + return self.response_header(response, header_name='X-Influxdb-Version') + def response_header(self, response, header_name='X-Influxdb-Version') -> str: if response is not None and len(response) >= 3: if header_name in response[2]: From 83deff41dec116bd85c021f25ff4082384cf3b9a Mon Sep 17 00:00:00 2001 From: Pitastic Date: Wed, 28 Dec 2022 21:55:17 +0100 Subject: [PATCH 8/8] fixes: check-code-style --- influxdb_client/client/bucket_api.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/influxdb_client/client/bucket_api.py b/influxdb_client/client/bucket_api.py index 2b49ed52..3b10488c 100644 --- a/influxdb_client/client/bucket_api.py +++ b/influxdb_client/client/bucket_api.py @@ -5,7 +5,6 @@ A bucket belongs to an organization. """ import warnings -from influxdb_client.rest import ApiException from influxdb_client import BucketsService, Bucket, PostBucketRequest, PatchBucketRequest from influxdb_client.client.util.helpers import get_org_query_param @@ -36,7 +35,7 @@ def create_bucket(self, bucket=None, bucket_name=None, org_id=None, retention_ru """ if self._buckets_service._is_below_v2(): # Fall back to v1 API if buckets are not supported - warnings.warn("InfluxDB versions below v2.0 are deprecated. " + \ + warnings.warn("InfluxDB versions below v2.0 are deprecated. " + "Falling back to CREATE DATABASE statement", DeprecationWarning) database_name = bucket_name if bucket_name is not None else bucket return self._create_database(database=database_name) @@ -124,7 +123,7 @@ def delete_bucket(self, bucket): if self._buckets_service._is_below_v2(): # Fall back to v1 API if buckets are not supported - warnings.warn("InfluxDB versions below v2.0 are deprecated. " + \ + warnings.warn("InfluxDB versions below v2.0 are deprecated. " + "Falling back to DROP DATABASE statement", DeprecationWarning) return self._delete_database(database=bucket_id)