)]}'
{"monitoring/alarms/tables.py":[{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"514aa29d132604f0f7ba9f79035dcd9c5b81f40f","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        return url + query"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    def allowed(self, request, datum\u003dNone):"},{"line_number":183,"context_line":"        return getattr(settings, \u0027GRAFANA_LINKS\u0027, None) is not None \\"},{"line_number":184,"context_line":"            and len(getattr(settings, \u0027GRAFANA_LINKS\u0027)) \u003e 0 \\"},{"line_number":185,"context_line":"            and datum[\u0027metrics\u0027]"},{"line_number":186,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9fb8cfa7_accc3d6a","line":183,"range":{"start_line":183,"start_character":34,"end_line":183,"end_character":47},"updated":"2019-06-25 14:05:07.000000000","message":"`GRAFANA_LINKS` is not strictly required, so checking it is not sufficient. For example, in DevStack deployment we set [1]:\n\n  GRAFANA_URL \u003d {\u0027RegionOne\u0027: \"http://${SERVICE_HOST}:3000\", }\n  GRAFANA_LINKS \u003d []\n\nIn this setup your change disables the button although Grafana is deployed and usable.\n\n[1] https://opendev.org/openstack/monasca-api/src/branch/master/devstack/lib/ui.sh#L37","commit_id":"c52911385bf4b143f9bc36294e460d5deba6e4a6"},{"author":{"_account_id":11880,"name":"Gloria Gu","email":"gloriafanggu@gmail.com","username":"gugl"},"change_message_id":"a58053df45f3752ad853ca6dc4c9f93da3d2a28b","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        return url + query"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    def allowed(self, request, datum\u003dNone):"},{"line_number":183,"context_line":"        return getattr(settings, \u0027GRAFANA_LINKS\u0027, None) is not None \\"},{"line_number":184,"context_line":"            and len(getattr(settings, \u0027GRAFANA_LINKS\u0027)) \u003e 0 \\"},{"line_number":185,"context_line":"            and datum[\u0027metrics\u0027]"},{"line_number":186,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9fb8cfa7_cb6dce32","line":183,"range":{"start_line":183,"start_character":34,"end_line":183,"end_character":47},"in_reply_to":"9fb8cfa7_accc3d6a","updated":"2019-06-25 23:40:00.000000000","message":"Can you advice what is a reliable way to detect Grafana integration. We have a couple of customer cases where user complains the link goes nowhere when Grafana integration is not available.","commit_id":"c52911385bf4b143f9bc36294e460d5deba6e4a6"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"37d8654063e3185d17f2ca6781ec266081f5dd3e","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        return url + query"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    def allowed(self, request, datum\u003dNone):"},{"line_number":183,"context_line":"        return getattr(settings, \u0027GRAFANA_LINKS\u0027, None) is not None \\"},{"line_number":184,"context_line":"            and len(getattr(settings, \u0027GRAFANA_LINKS\u0027)) \u003e 0 \\"},{"line_number":185,"context_line":"            and datum[\u0027metrics\u0027]"},{"line_number":186,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9fb8cfa7_39e39bda","line":183,"range":{"start_line":183,"start_character":34,"end_line":183,"end_character":47},"in_reply_to":"9fb8cfa7_cb6dce32","updated":"2019-06-26 09:37:02.000000000","message":"Checking `GRAFANA_URL` should work. It\u0027s also used earlier in this class. If unset, Grafana integration won\u0027t work.","commit_id":"c52911385bf4b143f9bc36294e460d5deba6e4a6"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"7e32280ec3926dceec9e407575d5eed0ae5057be","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import json"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from django.conf import settings"},{"line_number":19,"context_line":"from django import template"},{"line_number":20,"context_line":"from django.urls import reverse"},{"line_number":21,"context_line":"from django.urls import reverse_lazy"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_f3dde940","line":18,"updated":"2019-08-05 10:44:13.000000000","message":"What is the difference between `django.conf.settings` and `monitoring.config.local_settings` imported in line 29?\n\nWhen testing in DevStack I noticed the button being disabled even when the GRAFANA_URL was set. Please note that in DevStack we update the `local_settings` module to set the GRAFANA_URL [1]. Is it the recommended way? Should we change that?\n\n[1] https://opendev.org/openstack/monasca-api/src/branch/master/devstack/lib/ui.sh#L37","commit_id":"4aff16addcd72611abb05c411f8fa8d0bce32233"},{"author":{"_account_id":11880,"name":"Gloria Gu","email":"gloriafanggu@gmail.com","username":"gugl"},"change_message_id":"5ab7f693e5e2c94741c429dfe78f084a554795ee","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import json"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from django.conf import settings"},{"line_number":19,"context_line":"from django import template"},{"line_number":20,"context_line":"from django.urls import reverse"},{"line_number":21,"context_line":"from django.urls import reverse_lazy"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_fa797881","line":18,"in_reply_to":"7faddb67_bf7692d7","updated":"2019-08-16 00:16:04.000000000","message":"@Witold, Sorry I was a little bit confused earlier. I did a couple of more testing again, now it works the way it is supposed to be.  I added GRAFANA_URL in local/local_settings.py or local/local_settings.d/_111_test.py in the real cloud environment. Both worked fine, the Graph Metric button shows when it is set and doesn\u0027t show when it is NOT set. \nIn alarms/tables.py, local_settings is from monitoring.config where it will get the GRAFANA_URL from django.conf. If I use the local_settings instead of django.conf , the problem is in the unit test, the test will fail, because I am using django.test.utils import override_settings to overwrite settings to force condition. Do you have any suggestions? Thanks.","commit_id":"4aff16addcd72611abb05c411f8fa8d0bce32233"},{"author":{"_account_id":11880,"name":"Gloria Gu","email":"gloriafanggu@gmail.com","username":"gugl"},"change_message_id":"dd10c5d0f0ddf1219b3b70b031f581be94e6665b","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import json"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from django.conf import settings"},{"line_number":19,"context_line":"from django import template"},{"line_number":20,"context_line":"from django.urls import reverse"},{"line_number":21,"context_line":"from django.urls import reverse_lazy"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_bf7692d7","line":18,"in_reply_to":"7faddb67_f3dde940","updated":"2019-08-15 23:20:53.000000000","message":"@Witold, I remember using local_settings didn\u0027t work when I test it in our cloud, using django.conf, it used to work. It has been a while, today I tried it with local_settings and settings...both of them don\u0027t seem to work anymore. It doesn\u0027t make sense...need to dig.","commit_id":"4aff16addcd72611abb05c411f8fa8d0bce32233"},{"author":{"_account_id":11880,"name":"Gloria Gu","email":"gloriafanggu@gmail.com","username":"gugl"},"change_message_id":"1467b05853f80625ffc9a70bb3cb323dfbae6a5c","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import json"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from django.conf import settings"},{"line_number":19,"context_line":"from django import template"},{"line_number":20,"context_line":"from django.urls import reverse"},{"line_number":21,"context_line":"from django.urls import reverse_lazy"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_da211cb6","line":18,"in_reply_to":"7faddb67_fa797881","updated":"2019-08-16 01:15:32.000000000","message":"I am not sure about devstack part...need to dig a little bit more.","commit_id":"4aff16addcd72611abb05c411f8fa8d0bce32233"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"f1b034e00efb0bcc9586109a9cef82d37a7a7029","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    def allowed(self, request, datum\u003dNone):"},{"line_number":183,"context_line":"        return (getattr(settings, \u0027GRAFANA_URL\u0027, None) or"},{"line_number":184,"context_line":"                getattr(local_settings, \u0027GRAFANA_URL\u0027, None)) is not None \\"},{"line_number":185,"context_line":"            and datum[\u0027metrics\u0027]"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_5632e760","line":184,"range":{"start_line":184,"start_character":24,"end_line":184,"end_character":38},"updated":"2019-09-13 12:23:34.000000000","message":"We don\u0027t need to check for local_settings. \u0027getattr(settings, \u0027GRAFANA_URL\u0027, None)\u0027 is enough","commit_id":"347b394f32b5d9fbb9213e058ea78e47a7f58e40"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"4fc1386817d306bff28e15f7e082ff6618185671","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    def allowed(self, request, datum\u003dNone):"},{"line_number":183,"context_line":"        return (getattr(settings, \u0027GRAFANA_URL\u0027, None) or"},{"line_number":184,"context_line":"                getattr(local_settings, \u0027GRAFANA_URL\u0027, None)) is not None \\"},{"line_number":185,"context_line":"            and datum[\u0027metrics\u0027]"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5faad753_28681fb7","line":184,"range":{"start_line":184,"start_character":24,"end_line":184,"end_character":38},"in_reply_to":"5faad753_5632e760","updated":"2019-09-13 16:54:41.000000000","message":"Thanks Ivan!\n\nIndeed, PS4 was correct. Gloria, could you revert to it? Also, please use settings instead of local_settings in get_link_url() and remove the redundant import statement.\n\nI\u0027ve found a reason why it didn\u0027t work for me. We\u0027ve got a bug in DevStack plugin configuration and in the `overview` page. I\u0027ll submit patches on Monday.","commit_id":"347b394f32b5d9fbb9213e058ea78e47a7f58e40"}],"monitoring/test/test_alarm_tables.py":[{"author":{"_account_id":10311,"name":"Joseph Davis","email":"joseph.davis@suse.com","username":"joadavis"},"change_message_id":"bff5079b0cc741c6d3df962e4416078fa370ca03","unresolved":false,"context_lines":[{"line_number":48,"context_line":"            r\u0027\u0026api\u003dhttp://foo/api/\u0027"},{"line_number":49,"context_line":"        )"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def test_allowed_grafana_liniks(self):"},{"line_number":52,"context_line":"        allowed \u003d self.get_allowed()"},{"line_number":53,"context_line":"        self.assertEqual(allowed, False)"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_4b1575e4","line":51,"range":{"start_line":51,"start_character":32,"end_line":51,"end_character":33},"updated":"2019-06-24 20:16:25.000000000","message":"nit: Got an extra \u0027i\u0027 here.","commit_id":"5644c525f7a5a028a10c01be1f9e8bc13b2e78ae"},{"author":{"_account_id":11880,"name":"Gloria Gu","email":"gloriafanggu@gmail.com","username":"gugl"},"change_message_id":"f3575a09d8b4f1bc1d291689eec3f25ccb4504e9","unresolved":false,"context_lines":[{"line_number":48,"context_line":"            r\u0027\u0026api\u003dhttp://foo/api/\u0027"},{"line_number":49,"context_line":"        )"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def test_allowed_grafana_liniks(self):"},{"line_number":52,"context_line":"        allowed \u003d self.get_allowed()"},{"line_number":53,"context_line":"        self.assertEqual(allowed, False)"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_ebb8e9c8","line":51,"range":{"start_line":51,"start_character":32,"end_line":51,"end_character":33},"in_reply_to":"9fb8cfa7_4b1575e4","updated":"2019-06-24 20:24:51.000000000","message":"oops, will fix. thanks","commit_id":"5644c525f7a5a028a10c01be1f9e8bc13b2e78ae"}]}
