diff --git a/grafana_dashboards/schema/dashboard.py b/grafana_dashboards/schema/dashboard.py index 47bd7ac..d322df8 100644 --- a/grafana_dashboards/schema/dashboard.py +++ b/grafana_dashboards/schema/dashboard.py @@ -25,6 +25,10 @@ class Dashboard(object): v.Required('timezone', default='utc'): v.Any('browser', 'utc'), v.Required('title'): v.All(str, v.Length(min=1)), v.Optional('id'): int, + v.Optional('time'): { + v.Required('from'): v.Any(v.Datetime(), str), + v.Required('to'): v.Any(v.Datetime(), str), + }, } rows = Row().get_schema() dashboard.update(rows.schema) diff --git a/tests/schema/fixtures/dashboard-0021.json b/tests/schema/fixtures/dashboard-0021.json index 95c375b..9e948f4 100644 --- a/tests/schema/fixtures/dashboard-0021.json +++ b/tests/schema/fixtures/dashboard-0021.json @@ -50,6 +50,10 @@ } ] }, + "time": { + "from": "2018-02-07T08:42:27.000Z", + "to": "2018-02-07T13:48:32.000Z" + }, "timezone": "utc", "title": "New dashboard" } diff --git a/tests/schema/fixtures/dashboard-0021.yaml b/tests/schema/fixtures/dashboard-0021.yaml index 8f75a46..135733e 100644 --- a/tests/schema/fixtures/dashboard-0021.yaml +++ b/tests/schema/fixtures/dashboard-0021.yaml @@ -1,4 +1,7 @@ dashboard: + time: + from: "2018-02-07T08:42:27.000Z" + to: "2018-02-07T13:48:32.000Z" templating: - name: hostname type: query diff --git a/tests/schema/fixtures/dashboard-0022.json b/tests/schema/fixtures/dashboard-0022.json new file mode 100644 index 0000000..90c5dc9 --- /dev/null +++ b/tests/schema/fixtures/dashboard-0022.json @@ -0,0 +1,46 @@ +{ + "dashboard": { + "new-dashboard": { + "rows": [ + { + "collapse": false, + "editable": true, + "height": "250px", + "panels": [ + { + "bars": false, + "editable": true, + "error": false, + "fill": 1, + "lines": true, + "linewidth": 2, + "percentage": false, + "pointradius": 5, + "points": false, + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [], + "title": "no title (click here)", + "type": "graph", + "x-axis": true, + "y-axis": true + } + ], + "showTitle": false, + "title": "New row" + } + ], + "templating": { + "enabled": false, + "list": [] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timezone": "utc", + "title": "New dashboard" + } + } +} diff --git a/tests/schema/fixtures/dashboard-0022.yaml b/tests/schema/fixtures/dashboard-0022.yaml new file mode 100644 index 0000000..8c76a94 --- /dev/null +++ b/tests/schema/fixtures/dashboard-0022.yaml @@ -0,0 +1,11 @@ +dashboard: + title: New dashboard + time: + from: now-1h + to: now + rows: + - title: New row + height: 250px + panels: + - title: no title (click here) + type: graph