Add paging for status hosts and services

Change-Id: I449a1eb681e2eff60ad312b47e136a2a427786e1
This commit is contained in:
flavien peyre
2015-07-23 13:21:25 -04:00
parent fafec7f3fd
commit a4874635a4
3 changed files with 37 additions and 7 deletions

View File

@@ -1195,9 +1195,17 @@ def do_config_reload(sc, args):
print(sc.config.reload_config()['message'])
@cliutils.arg("--live_query", help="Live query")
@cliutils.arg("--page_size", help="Number of returned data")
@cliutils.arg("--page", help="Page number")
def do_status_host_list(sc, args):
"""List all status hosts."""
services = sc.status.hosts.list()
arg_names = ['live_query',
'page_size',
'page'
]
arg = _dict_from_args(args, arg_names)
services = sc.status.hosts.list(**arg)
if args.json:
print(utils.json_formatter(services))
@@ -1236,9 +1244,18 @@ def do_status_host_show(sc, args):
utils.print_item(host, hostProperties)
@cliutils.arg("--live_query", help="Live query")
@cliutils.arg("--page_size", help="Number of returned data")
@cliutils.arg("--page", help="Page number")
def do_status_service_list(sc, args):
"""List all status services."""
services = sc.status.services.list()
arg_names = ['live_query',
'page_size',
'page'
]
arg = _dict_from_args(args, arg_names)
services = sc.status.services.list(**arg)
if args.json:
print(utils.json_formatter(services))

View File

@@ -13,6 +13,7 @@
# under the License.
from surveilclient.common import surveil_manager
from surveilclient.common import utils
from surveilclient.v2_0.status.metrics import metrics
@@ -23,10 +24,16 @@ class HostsManager(surveil_manager.SurveilManager):
super(HostsManager, self).__init__(http_client)
self.metrics = metrics.MetricsManager(self.http_client)
def list(self, live_query={'filters': '{}'}):
def list(self, live_query=None, page_size=None, page=None):
"""Get a list of hosts."""
query = utils.create_query(
query=live_query,
page_size=page_size,
page=page
)
resp, body = self.http_client.json_request(
HostsManager.base_url, 'POST', body=live_query
HostsManager.base_url, 'POST', body=query
)
return body

View File

@@ -13,15 +13,21 @@
# under the License.
from surveilclient.common import surveil_manager
from surveilclient.common import utils
class ServicesManager(surveil_manager.SurveilManager):
base_url = '/status/services'
def list(self, live_query={'filters': '{}'}):
"""Get a list of hosts."""
def list(self, live_query=None, page_size=None, page=None):
"""Get a list of services."""
query = utils.create_query(
query=live_query,
page_size=page_size,
page=page
)
resp, body = self.http_client.json_request(
ServicesManager.base_url, 'POST', body=live_query
ServicesManager.base_url, 'POST', body=query
)
return body