)]}'
{"tempest/api/network/test_fwaas_extensions.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"04f2eca7a7660616486851b9a1d6408bd636cdbd","unresolved":false,"context_lines":[{"line_number":75,"context_line":"            firewall \u003d firewall[\u0027firewall\u0027]"},{"line_number":76,"context_line":"            return firewall[\u0027status\u0027] \u003d\u003d \u0027ACTIVE\u0027"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        if not test.call_until_true(_wait, 10, 1):"},{"line_number":79,"context_line":"            m \u003d \u0027Timed out waiting for firewall %s to become ACTIVE.\u0027 % fw_id"},{"line_number":80,"context_line":"            raise exceptions.TimeoutException(m)"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2Fk5U%3D","line":78,"updated":"2014-04-12 04:32:53.000000000","message":"We probably should avoid hard coded timeouts values.","commit_id":"b82761a844cc27e84bdb22ed7cfa0fad8d0ea014"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"04f2eca7a7660616486851b9a1d6408bd636cdbd","unresolved":false,"context_lines":[{"line_number":79,"context_line":"            m \u003d \u0027Timed out waiting for firewall %s to become ACTIVE.\u0027 % fw_id"},{"line_number":80,"context_line":"            raise exceptions.TimeoutException(m)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def _wait_for_delete(self, fw_id):"},{"line_number":83,"context_line":"        def _wait():"},{"line_number":84,"context_line":"            try:"},{"line_number":85,"context_line":"                resp, firewall \u003d self.client.show_firewall(fw_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2Fk5g%3D","line":82,"updated":"2014-04-12 04:32:53.000000000","message":"There is a common wait for delete method that the other services use. Is there a reason it can\u0027t be used here?","commit_id":"b82761a844cc27e84bdb22ed7cfa0fad8d0ea014"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"28f70751df826e1e4f83bc633ce253079afc65ea","unresolved":false,"context_lines":[{"line_number":79,"context_line":"            m \u003d \u0027Timed out waiting for firewall %s to become ACTIVE.\u0027 % fw_id"},{"line_number":80,"context_line":"            raise exceptions.TimeoutException(m)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def _wait_for_delete(self, fw_id):"},{"line_number":83,"context_line":"        def _wait():"},{"line_number":84,"context_line":"            try:"},{"line_number":85,"context_line":"                resp, firewall \u003d self.client.show_firewall(fw_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FbAc%3D","line":82,"in_reply_to":"AAAAW3%2F%2Fk5g%3D","updated":"2014-04-14 17:59:03.000000000","message":"ah! Overlooked that one.","commit_id":"b82761a844cc27e84bdb22ed7cfa0fad8d0ea014"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"04f2eca7a7660616486851b9a1d6408bd636cdbd","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                return True"},{"line_number":90,"context_line":"            return False"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        if not test.call_until_true(_wait, 10, 1):"},{"line_number":93,"context_line":"            m \u003d \u0027Timed out deleting firewall %s.\u0027 % fw_id"},{"line_number":94,"context_line":"            raise exceptions.TimeoutException(m)"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2Fk5A%3D","line":92,"updated":"2014-04-12 04:32:53.000000000","message":"Same here about the hardcoded time out value.","commit_id":"b82761a844cc27e84bdb22ed7cfa0fad8d0ea014"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"04f2eca7a7660616486851b9a1d6408bd636cdbd","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        router \u003d self.create_router("},{"line_number":201,"context_line":"            data_utils.rand_name(\u0027router-\u0027),"},{"line_number":202,"context_line":"            admin_state_up\u003dTrue)"},{"line_number":203,"context_line":"        self.client.add_router_interface_with_subnet_id("},{"line_number":204,"context_line":"            router[\u0027id\u0027], subnet[\u0027id\u0027])"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        # Create firewall"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2Fk5k%3D","line":203,"updated":"2014-04-12 04:32:53.000000000","message":"You need to add cleanups for all the new resources that you\u0027re adding here.","commit_id":"b82761a844cc27e84bdb22ed7cfa0fad8d0ea014"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"28f70751df826e1e4f83bc633ce253079afc65ea","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        router \u003d self.create_router("},{"line_number":201,"context_line":"            data_utils.rand_name(\u0027router-\u0027),"},{"line_number":202,"context_line":"            admin_state_up\u003dTrue)"},{"line_number":203,"context_line":"        self.client.add_router_interface_with_subnet_id("},{"line_number":204,"context_line":"            router[\u0027id\u0027], subnet[\u0027id\u0027])"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        # Create firewall"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FbBQ%3D","line":203,"in_reply_to":"AAAAW3%2F%2Fk5k%3D","updated":"2014-04-14 17:59:03.000000000","message":"The BaseNetworkTest class takes care of tracking and cleaning up these resources (incl. router interface) as part of tearDownClass().","commit_id":"b82761a844cc27e84bdb22ed7cfa0fad8d0ea014"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"04f2eca7a7660616486851b9a1d6408bd636cdbd","unresolved":false,"context_lines":[{"line_number":220,"context_line":"        firewall \u003d firewall[\u0027firewall\u0027]"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        for key, value in firewall.iteritems():"},{"line_number":223,"context_line":"            if key \u003d\u003d \u0027status\u0027:"},{"line_number":224,"context_line":"                continue"},{"line_number":225,"context_line":"            self.assertEqual(created_firewall[key], value)"},{"line_number":226,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2Fk4w%3D","line":223,"updated":"2014-04-12 04:32:53.000000000","message":"You could just drop the status key and do a straight up comparison. That might be a bit simpler? But this is fine too.","commit_id":"b82761a844cc27e84bdb22ed7cfa0fad8d0ea014"}]}
