Skip to content

Commit 203d122

Browse files
committed
Merge pull request influxdata#281 from amancevice/get_list_servers
Added get_list_servers() method to client
2 parents 1da39bf + 8e099c0 commit 203d122

File tree

2 files changed

+52
-0
lines changed

2 files changed

+52
-0
lines changed

influxdb/client.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -592,6 +592,25 @@ def get_list_series(self, database=None):
592592
)
593593
return series
594594

595+
def get_list_servers(self):
596+
"""Get the list of servers in InfluxDB cluster.
597+
598+
:returns: all nodes in InfluxDB cluster
599+
:rtype: list of dictionaries
600+
601+
:Example:
602+
603+
::
604+
605+
>> servers = client.get_list_servers()
606+
>> servers
607+
[{'cluster_addr': 'server01:8088',
608+
'id': 1,
609+
'raft': True,
610+
'raft-leader': True}]
611+
"""
612+
return list(self.query("SHOW SERVERS").get_points())
613+
595614
def get_list_users(self):
596615
"""Get the list of all users in InfluxDB.
597616

influxdb/tests/client_test.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,39 @@ def test_get_list_database_fails(self):
485485
with _mocked_session(cli, 'get', 401):
486486
cli.get_list_database()
487487

488+
def test_get_list_servers(self):
489+
data = {'results': [
490+
{'series': [
491+
{'columns': ['id', 'cluster_addr', 'raft', 'raft-leader'],
492+
'values': [
493+
[1, 'server01:8088', True, True],
494+
[2, 'server02:8088', True, False],
495+
[3, 'server03:8088', True, False]]}]}
496+
]}
497+
498+
with _mocked_session(self.cli, 'get', 200, json.dumps(data)):
499+
self.assertListEqual(
500+
self.cli.get_list_servers(),
501+
[{'cluster_addr': 'server01:8088',
502+
'id': 1,
503+
'raft': True,
504+
'raft-leader': True},
505+
{'cluster_addr': 'server02:8088',
506+
'id': 2,
507+
'raft': True,
508+
'raft-leader': False},
509+
{'cluster_addr': 'server03:8088',
510+
'id': 3,
511+
'raft': True,
512+
'raft-leader': False}]
513+
)
514+
515+
@raises(Exception)
516+
def test_get_list_servers_fails(self):
517+
cli = InfluxDBClient('host', 8086, 'username', 'password')
518+
with _mocked_session(cli, 'get', 401):
519+
cli.get_list_servers()
520+
488521
def test_get_list_series(self):
489522
example_response = \
490523
'{"results": [{"series": [{"name": "cpu_load_short", "columns": ' \

0 commit comments

Comments
 (0)
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