Merge "Fix bug when passing url and key into grafana"

This commit is contained in:
Jenkins 2015-10-24 18:02:40 +00:00 committed by Gerrit Code Review
commit 57e4e17f20
3 changed files with 12 additions and 5 deletions

View File

@ -29,7 +29,8 @@ class Builder(object):
config.get('cache', 'cachedir'), config.get('cache', 'cachedir'),
config.getboolean('cache', 'enabled')) config.getboolean('cache', 'enabled'))
self.grafana = Grafana( self.grafana = Grafana(
config.get('grafana', 'apikey'), config.get('grafana', 'url')) url=config.get('grafana', 'url'),
key=config.get('grafana', 'apikey'))
self.parser = YamlParser() self.parser = YamlParser()
def delete_dashboard(self, path): def delete_dashboard(self, path):

View File

@ -33,8 +33,10 @@ class Grafana(object):
:type key: str :type key: str
""" """
self.server = url
self.auth = None
base_url = urljoin(url, 'api/dashboards/db/') base_url = urljoin(self.server, 'api/dashboards/db/')
session = requests.Session() session = requests.Session()
session.headers.update({ session.headers.update({
'Content-Type': 'application/json', 'Content-Type': 'application/json',
@ -42,8 +44,7 @@ class Grafana(object):
# NOTE(pabelanger): Grafana 2.1.0 added basic auth support so now the # NOTE(pabelanger): Grafana 2.1.0 added basic auth support so now the
# api key is optional. # api key is optional.
if key: if key:
session.headers.update({ self.auth = {'Authorization': 'Bearer %s' % key}
'Authorization': 'Bearer %s' % key, session.headers.update(self.auth)
})
self.dashboard = Dashboard(base_url, session) self.dashboard = Dashboard(base_url, session)

View File

@ -39,6 +39,11 @@ class TestCaseBuilder(TestCase):
builder2.delete_dashboard(path) builder2.delete_dashboard(path)
self.assertEqual(mock_grafana.call_count, 1) self.assertEqual(mock_grafana.call_count, 1)
def test_grafana_defaults(self):
self.assertEqual(
self.builder.grafana.server, 'http://grafana.example.org')
self.assertEqual(self.builder.grafana.auth, None)
@mock.patch('grafana_dashboards.grafana.Dashboard.create') @mock.patch('grafana_dashboards.grafana.Dashboard.create')
def test_update_dashboard(self, mock_grafana): def test_update_dashboard(self, mock_grafana):
path = os.path.join( path = os.path.join(