Fix consistency issue in grafana_dashboard module. (#47459)

* Move check for 'dashboard' key to before the create/update if statement.
* Add changelog fragment for PR #47459

(cherry picked from commit 880762e07e)
This commit is contained in:
Eric Matysek 2018-11-09 17:27:11 -05:00 committed by Toshio Kuratomi
parent 1abd90e3e6
commit 483226cdce
2 changed files with 6 additions and 2 deletions

View file

@ -0,0 +1,2 @@
bugfixes:
- Fix consistency issue in grafana_dashboard module where the module would detect absence of 'dashboard' key on dashboard create but not dashboard update.

View file

@ -226,6 +226,10 @@ def grafana_create_dashboard(module, data):
except Exception as e:
raise GrafanaAPIException("Can't load json file %s" % to_native(e))
# Check that the dashboard JSON is nested under the 'dashboard' key
if 'dashboard' not in payload:
payload = {'dashboard': payload}
# define http header
headers = grafana_headers(module, data)
@ -278,8 +282,6 @@ def grafana_create_dashboard(module, data):
raise GrafanaAPIException('Unable to update the dashboard %s : %s' % (uid, body['message']))
else:
# create
if 'dashboard' not in payload:
payload = {'dashboard': payload}
r, info = fetch_url(module, '%s/api/dashboards/db' % data['grafana_url'], data=json.dumps(payload), headers=headers, method='POST')
if info['status'] == 200:
result['msg'] = "Dashboard %s created" % uid