)]}'
{"TESTING.rst":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"3a3cc008c20e0da9a1ad952dc477d2dbcfd1abaa","unresolved":false,"context_lines":[{"line_number":226,"context_line":"++++"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"The idea behind \"fullstack\" testing is to fill a gap between unit + functional"},{"line_number":229,"context_line":"tests and Tempest. Tempest tests are expensive to run, and target unknown box"},{"line_number":230,"context_line":"API tests exclusively. Tempest requires an OpenStack deployment to be run"},{"line_number":231,"context_line":"against, which can be difficult to configure and setup. Full stack testing"},{"line_number":232,"context_line":"addresses these issues by taking care of the deployment itself, according to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f560f44_ffb78e85","line":229,"range":{"start_line":229,"start_character":66,"end_line":229,"end_character":73},"updated":"2020-07-28 10:08:00.000000000","message":"to be honest I\u0027m not sure about that change. \"Black box\" and \"White box\" testing are well known term in the software testing. I didn\u0027t met anywhere terms like \"unknown box\" and \"transparent box\" testing. Is that officially decided somewhere to change it that way?","commit_id":"3a2f17772c33f3a2ebb92a3cc772d99060d4d110"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"fbec7bb350aa79050af27bd84c343400a070846d","unresolved":false,"context_lines":[{"line_number":226,"context_line":"++++"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"The idea behind \"fullstack\" testing is to fill a gap between unit + functional"},{"line_number":229,"context_line":"tests and Tempest. Tempest tests are expensive to run, and target unknown box"},{"line_number":230,"context_line":"API tests exclusively. Tempest requires an OpenStack deployment to be run"},{"line_number":231,"context_line":"against, which can be difficult to configure and setup. Full stack testing"},{"line_number":232,"context_line":"addresses these issues by taking care of the deployment itself, according to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f560f44_0249fe89","line":229,"range":{"start_line":229,"start_character":66,"end_line":229,"end_character":73},"in_reply_to":"9f560f44_dfa7c1bc","updated":"2020-08-19 21:01:17.000000000","message":"Done","commit_id":"3a2f17772c33f3a2ebb92a3cc772d99060d4d110"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"c3640f3385fd5167b5b868e6bcaf8d7592bc1102","unresolved":false,"context_lines":[{"line_number":226,"context_line":"++++"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"The idea behind \"fullstack\" testing is to fill a gap between unit + functional"},{"line_number":229,"context_line":"tests and Tempest. Tempest tests are expensive to run, and target unknown box"},{"line_number":230,"context_line":"API tests exclusively. Tempest requires an OpenStack deployment to be run"},{"line_number":231,"context_line":"against, which can be difficult to configure and setup. Full stack testing"},{"line_number":232,"context_line":"addresses these issues by taking care of the deployment itself, according to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f560f44_dfa7c1bc","line":229,"range":{"start_line":229,"start_character":66,"end_line":229,"end_character":73},"in_reply_to":"9f560f44_ffb78e85","updated":"2020-08-03 19:35:31.000000000","message":"https://en.wikipedia.org/wiki/White-box_testing has \"transparent box\" as a synonym.\n\nI think I must have made-up \"unknown box\", but I have seen \"behavioral testing\" as a synonym for black box - http://softwaretestingfundamentals.com/black-box-testing/\n\nI can leave this alone for now for someone else to update later.","commit_id":"3a2f17772c33f3a2ebb92a3cc772d99060d4d110"}],"neutron/agent/l3/ha_router.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"0d05947434737ebf82b4d9a8426f9ddb7f954c28","unresolved":false,"context_lines":[{"line_number":109,"context_line":"            return self._ha_state"},{"line_number":110,"context_line":"        try:"},{"line_number":111,"context_line":"            with open(self.ha_state_path, \u0027r\u0027) as f:"},{"line_number":112,"context_line":"                self._ha_state \u003d f.read()"},{"line_number":113,"context_line":"        except (OSError, IOError):"},{"line_number":114,"context_line":"            LOG.debug(\u0027Error while reading HA state for %s\u0027, self.router_id)"},{"line_number":115,"context_line":"        return self._ha_state or \u0027unknown\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_c5747838","line":112,"updated":"2020-07-28 15:08:59.000000000","message":"I think you\u0027ll need to translate master to primary here because of upgrades. The _ha_state would remain \u0027master\u0027 for the existing HA routers once upgraded, wouldn\u0027t it?","commit_id":"3a2f17772c33f3a2ebb92a3cc772d99060d4d110"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"e0d1ce95aa59a53a0e85e08305424cf257331fd0","unresolved":false,"context_lines":[{"line_number":109,"context_line":"            return self._ha_state"},{"line_number":110,"context_line":"        try:"},{"line_number":111,"context_line":"            with open(self.ha_state_path, \u0027r\u0027) as f:"},{"line_number":112,"context_line":"                self._ha_state \u003d f.read()"},{"line_number":113,"context_line":"        except (OSError, IOError):"},{"line_number":114,"context_line":"            LOG.debug(\u0027Error while reading HA state for %s\u0027, self.router_id)"},{"line_number":115,"context_line":"        return self._ha_state or \u0027unknown\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_8260a4a7","line":112,"in_reply_to":"9f560f44_25be1465","updated":"2020-07-29 10:50:11.000000000","message":"I think we will need to compare read state to \"master\" also at least for one more cycle and then remove it.","commit_id":"3a2f17772c33f3a2ebb92a3cc772d99060d4d110"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"c3640f3385fd5167b5b868e6bcaf8d7592bc1102","unresolved":false,"context_lines":[{"line_number":109,"context_line":"            return self._ha_state"},{"line_number":110,"context_line":"        try:"},{"line_number":111,"context_line":"            with open(self.ha_state_path, \u0027r\u0027) as f:"},{"line_number":112,"context_line":"                self._ha_state \u003d f.read()"},{"line_number":113,"context_line":"        except (OSError, IOError):"},{"line_number":114,"context_line":"            LOG.debug(\u0027Error while reading HA state for %s\u0027, self.router_id)"},{"line_number":115,"context_line":"        return self._ha_state or \u0027unknown\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_df90614d","line":112,"in_reply_to":"9f560f44_8260a4a7","updated":"2020-08-03 19:35:31.000000000","message":"Yes, I can make sure we check against both \u0027master\u0027 and \u0027primary\u0027 and add a note for deprecating it eventually.","commit_id":"3a2f17772c33f3a2ebb92a3cc772d99060d4d110"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b417ce98a776badd83aaea3cce79cd4bb8111ae0","unresolved":false,"context_lines":[{"line_number":109,"context_line":"            return self._ha_state"},{"line_number":110,"context_line":"        try:"},{"line_number":111,"context_line":"            with open(self.ha_state_path, \u0027r\u0027) as f:"},{"line_number":112,"context_line":"                self._ha_state \u003d f.read()"},{"line_number":113,"context_line":"        except (OSError, IOError):"},{"line_number":114,"context_line":"            LOG.debug(\u0027Error while reading HA state for %s\u0027, self.router_id)"},{"line_number":115,"context_line":"        return self._ha_state or \u0027unknown\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_25be1465","line":112,"in_reply_to":"9f560f44_c5747838","updated":"2020-07-28 15:28:17.000000000","message":"+1, maybe an upgrade tool should be added for this change.","commit_id":"3a2f17772c33f3a2ebb92a3cc772d99060d4d110"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"fbec7bb350aa79050af27bd84c343400a070846d","unresolved":false,"context_lines":[{"line_number":109,"context_line":"            return self._ha_state"},{"line_number":110,"context_line":"        try:"},{"line_number":111,"context_line":"            with open(self.ha_state_path, \u0027r\u0027) as f:"},{"line_number":112,"context_line":"                self._ha_state \u003d f.read()"},{"line_number":113,"context_line":"        except (OSError, IOError):"},{"line_number":114,"context_line":"            LOG.debug(\u0027Error while reading HA state for %s\u0027, self.router_id)"},{"line_number":115,"context_line":"        return self._ha_state or \u0027unknown\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_6276fada","line":112,"in_reply_to":"9f560f44_df90614d","updated":"2020-08-19 21:01:17.000000000","message":"Done","commit_id":"3a2f17772c33f3a2ebb92a3cc772d99060d4d110"}]}
