Skip to content

Commit

Permalink
Merge pull request #36 from hhovsepy/hawkular_integration
Browse files Browse the repository at this point in the history
[WIP] Added new REST API method to list datasources on Hawkular side.
  • Loading branch information
psav committed May 11, 2016
2 parents 4208706 + 4de5039 commit d33a83c
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 1 deletion.
14 changes: 14 additions & 0 deletions mgmtsystem/hawkular.py
Expand Up @@ -28,6 +28,7 @@
ResourceType = namedtuple('ResourceType', ['id', 'name', 'path'])
Server = namedtuple('Server', ['id', 'name', 'path'])
Deployment = namedtuple('Deployment', ['id', 'name', 'path'])
Datasource = namedtuple('Datasource', ['id', 'name', 'path'])
ServerStatus = namedtuple('ServerStatus', ['address', 'version', 'state', 'product', 'host'])
Event = namedtuple('event', ['id', 'eventType', 'ctime', 'dataSource', 'dataId',
'category', 'text'])
Expand All @@ -53,6 +54,8 @@ class Hawkular(MgmtSystemAPIBase):
'num_server': lambda self: sum(len(self.list_server(f.id)) for f in self.list_feed()),
'num_deployment': lambda self: sum(len(self.list_server_deployment(f.id))
for f in self.list_feed()),
'num_datasource': lambda self: sum(len(self.list_server_datasource(f.id))
for f in self.list_feed()),
}

def __init__(self,
Expand Down Expand Up @@ -209,3 +212,14 @@ def list_event(self, start_time=0, end_time=sys.maxsize):
entity_j['category'], entity_j['text'])
entities.append(entity)
return entities

def list_server_datasource(self, feed_id, type_id='Datasource'):
"""Returns list of datasources on servers by provided feed ID and resource type ID"""
entities = []
entities_j = self.api.get_json('feeds/{}/resourceTypes/{}/resources'
.format(feed_id, type_id))
if entities_j:
for entity_j in entities_j:
entity = Datasource(entity_j['id'], entity_j['name'], entity_j['path'])
entities.append(entity)
return entities
29 changes: 28 additions & 1 deletion tests/test_hawkular.py
Expand Up @@ -63,7 +63,24 @@ def test_list_server_deployment(provider):
assert deployment.id
assert deployment.name
assert deployment.path
assert found, "No any deployment is listed for any of feeds"
assert (found | provider._stats_available['num_deployment'](provider) > 0,
"No any deployment is listed for any of feeds, but they exists")


def test_list_server_datasource(provider):
""" Checks whether any datasource is listed and has attributes """
found = False
feeds = provider.list_feed()
for feed in feeds:
datasources = provider.list_server_datasource(feed.id)
if len(datasources) > 0:
found = True
for datasource in datasources:
assert datasource.id
assert datasource.name
assert datasource.path
assert (found | provider._stats_available['num_datasource'](provider) > 0,
"No any datasource is listed for any of feeds, but they exists")


def test_get_server_status(provider):
Expand Down Expand Up @@ -102,6 +119,16 @@ def test_num_deployment(provider):
assert num_deployment == deployments_count, "Number of deployments is wrong"


def test_num_datasource(provider):
""" Checks whether number of datasources is returned correct """
datasources_count = 0
feeds = provider.list_feed()
for feed in feeds:
datasources_count += len(provider.list_server_datasource(feed.id))
num_datasource = provider._stats_available['num_datasource'](provider)
assert num_datasource == datasources_count, "Number of datasources is wrong"


def test_list_event_empty(provider):
""" Checks that events are filtered and empty list is returned """
assert len(provider.list_event(0, 0)) == 0, "Unexpected events are returned"
Expand Down

0 comments on commit d33a83c

Please sign in to comment.