From 92ef419c01af7a4fe3bcd02c2975a8296c597c3d Mon Sep 17 00:00:00 2001
From: Ian Wienand <iwienand@redhat.com>
Date: Wed, 24 Jun 2020 11:03:00 +1000
Subject: [PATCH] Remove query variable refresh deprecation

Added with dd6582e9ccb2b5fcb31e3833166df3af5aec9eff, we have found
that setting a bool here means the query variable no longer refreshes
at all.  Thus it's dangerous to accept it, force it to be an int.

For reference, the values seem to be

 0 = never refresh
 1 = on load
 2 = on timeseries change

Change-Id: Ia96f0166a80ece0b307acdca20eeca045a2e4a75
---
 grafana_dashboards/schema/template/query.py | 9 ++-------
 tests/schema/fixtures/dashboard-0014.json   | 2 +-
 tests/schema/fixtures/dashboard-0021.json   | 2 +-
 tests/schema/fixtures/dashboard-0021.yaml   | 2 +-
 tests/schema/fixtures/dashboard-0023.json   | 2 +-
 tests/schema/fixtures/dashboard-0023.yaml   | 2 +-
 6 files changed, 7 insertions(+), 12 deletions(-)

diff --git a/grafana_dashboards/schema/template/query.py b/grafana_dashboards/schema/template/query.py
index 914fb7f..406fb3d 100644
--- a/grafana_dashboards/schema/template/query.py
+++ b/grafana_dashboards/schema/template/query.py
@@ -23,18 +23,13 @@ LOG = logging.getLogger(__name__)
 
 class Query(Base):
 
-    def validate_refresh(self, data):
-        v.Schema(v.Any(v.All(int, v.Range(min=0, max=2)), bool))(data)
-        if isinstance(data, bool):
-            LOG.warn('templating query refresh type bool is deprecated')
-        return data
-
     def get_schema(self):
         query = {
             v.Required('includeAll', default=False): v.All(bool),
             v.Required('multi', default=False): v.All(bool),
             v.Required('query', default=''): v.All(str),
-            v.Required('refresh', default=0): self.validate_refresh,
+            v.Required('refresh', default=1): \
+                v.All(int, v.Range(min=0, max=2)),
             v.Optional('datasource'): v.All(str),
             v.Optional('hide'): v.All(int, v.Range(min=0, max=2)),
         }
diff --git a/tests/schema/fixtures/dashboard-0014.json b/tests/schema/fixtures/dashboard-0014.json
index 48fcd96..232c152 100644
--- a/tests/schema/fixtures/dashboard-0014.json
+++ b/tests/schema/fixtures/dashboard-0014.json
@@ -10,7 +10,7 @@
                         "multi": false,
                         "name": "foobar",
                         "query": "foobar.*",
-                        "refresh": 0,
+                        "refresh": 1,
                         "type": "query"
                     }
                 ]
diff --git a/tests/schema/fixtures/dashboard-0021.json b/tests/schema/fixtures/dashboard-0021.json
index 9e948f4..f86ec99 100644
--- a/tests/schema/fixtures/dashboard-0021.json
+++ b/tests/schema/fixtures/dashboard-0021.json
@@ -45,7 +45,7 @@
                         "multi": false,
                         "name": "hostname",
                         "query": "node*",
-                        "refresh": true,
+                        "refresh": 1,
                         "type": "query"
                     }
                 ]
diff --git a/tests/schema/fixtures/dashboard-0021.yaml b/tests/schema/fixtures/dashboard-0021.yaml
index 135733e..daaf256 100644
--- a/tests/schema/fixtures/dashboard-0021.yaml
+++ b/tests/schema/fixtures/dashboard-0021.yaml
@@ -7,7 +7,7 @@ dashboard:
       type: query
       datasource: graphite
       query: node*
-      refresh: true
+      refresh: 1
   title: New dashboard
   rows:
     - title: New row
diff --git a/tests/schema/fixtures/dashboard-0023.json b/tests/schema/fixtures/dashboard-0023.json
index abcc600..583b057 100644
--- a/tests/schema/fixtures/dashboard-0023.json
+++ b/tests/schema/fixtures/dashboard-0023.json
@@ -59,7 +59,7 @@
                         "multi": false,
                         "name": "hostname",
                         "query": "node*",
-                        "refresh": true,
+                        "refresh": 1,
                         "type": "query"
                     }
                 ]
diff --git a/tests/schema/fixtures/dashboard-0023.yaml b/tests/schema/fixtures/dashboard-0023.yaml
index 4c25d8b..53dae4c 100644
--- a/tests/schema/fixtures/dashboard-0023.yaml
+++ b/tests/schema/fixtures/dashboard-0023.yaml
@@ -4,7 +4,7 @@ dashboard:
       type: query
       datasource: graphite
       query: node*
-      refresh: true
+      refresh: 1
       hide: 0
   title: New dashboard
   rows: