)]}'
{"tempest/services/network/json/network_client.py":[{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"528c482066ffae4648a4559204b1ce766e4ed11a","unresolved":false,"context_lines":[{"line_number":260,"context_line":"            \u0027external_gateway_info\u0027, body[\u0027router\u0027][\u0027external_gateway_info\u0027])"},{"line_number":261,"context_line":"        update_body \u003d dict(router\u003dupdate_body)"},{"line_number":262,"context_line":"        update_body \u003d json.dumps(update_body)"},{"line_number":263,"context_line":"        print update_body"},{"line_number":264,"context_line":"        resp, body \u003d self.put(uri, update_body, self.headers)"},{"line_number":265,"context_line":"        body \u003d json.loads(body)"},{"line_number":266,"context_line":"        return resp, body"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2FZB4%3D","line":263,"updated":"2013-09-27 16:19:28.000000000","message":"print should be removed","commit_id":"dbad13571918012b200276a752c752df40d45155"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"b65c503215459cc74b350cd0cdf9a84ad07cb580","unresolved":false,"context_lines":[{"line_number":260,"context_line":"            \u0027external_gateway_info\u0027, body[\u0027router\u0027][\u0027external_gateway_info\u0027])"},{"line_number":261,"context_line":"        update_body \u003d dict(router\u003dupdate_body)"},{"line_number":262,"context_line":"        update_body \u003d json.dumps(update_body)"},{"line_number":263,"context_line":"        print update_body"},{"line_number":264,"context_line":"        resp, body \u003d self.put(uri, update_body, self.headers)"},{"line_number":265,"context_line":"        body \u003d json.loads(body)"},{"line_number":266,"context_line":"        return resp, body"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2FYKg%3D","line":263,"in_reply_to":"AAAAS3%2F%2FZB4%3D","updated":"2013-09-27 20:16:33.000000000","message":"whoops!","commit_id":"dbad13571918012b200276a752c752df40d45155"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"3210b1196caaafd0bb739f13e22a8d4d8756980d","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        self.uri_prefix \u003d \"v%s\" % (self.version)"},{"line_number":41,"context_line":"        # Used to assess whether admin only attributes should be"},{"line_number":42,"context_line":"        # included in requests or not"},{"line_number":43,"context_line":"        self.is_admin \u003d self.user \u003d\u003d self.config.identity.admin_username"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def list_networks(self):"},{"line_number":46,"context_line":"        uri \u003d \u0027%s/networks\u0027 % (self.uri_prefix)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2FSdM%3D","line":43,"updated":"2013-10-18 11:13:50.000000000","message":"It is not reliable way to figure out is the user has admin rights when the tenant isolation is enabled, many identity admin user created with different name.","commit_id":"7af247364c92b1c23045cdc00f565d86caa63bd8"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"96c72dc4819f5ec1e233ab02ce40d7655a22fdf0","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        self.uri_prefix \u003d \"v%s\" % (self.version)"},{"line_number":41,"context_line":"        # Used to assess whether admin only attributes should be"},{"line_number":42,"context_line":"        # included in requests or not"},{"line_number":43,"context_line":"        self.is_admin \u003d self.user \u003d\u003d self.config.identity.admin_username"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def list_networks(self):"},{"line_number":46,"context_line":"        uri \u003d \u0027%s/networks\u0027 % (self.uri_prefix)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2FRXs%3D","line":43,"in_reply_to":"AAAATH%2F%2FSdM%3D","updated":"2013-10-18 16:26:52.000000000","message":"no problem; I shall be able to find a different way","commit_id":"7af247364c92b1c23045cdc00f565d86caa63bd8"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"3210b1196caaafd0bb739f13e22a8d4d8756980d","unresolved":false,"context_lines":[{"line_number":244,"context_line":"        # NOTE(salv-orlando): The above applies as long as Neutron\u0027s default"},{"line_number":245,"context_line":"        # policy is to restrict enable_snat usage to admins only."},{"line_number":246,"context_line":"        cur_gw_info \u003d body[\u0027router\u0027][\u0027external_gateway_info\u0027]"},{"line_number":247,"context_line":"        if not self.is_admin and cur_gw_info:"},{"line_number":248,"context_line":"            cur_gw_info.pop(\u0027enable_snat\u0027, None)"},{"line_number":249,"context_line":"        update_body[\u0027external_gateway_info\u0027] \u003d kwargs.get("},{"line_number":250,"context_line":"            \u0027external_gateway_info\u0027, body[\u0027router\u0027][\u0027external_gateway_info\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2FScg%3D","line":247,"updated":"2013-10-18 11:13:50.000000000","message":"Tempest at the moment assumes the identity admin and the generated admin users  are admins everywhere.\n\nIn the future we might distinguish a network admin role for the generated users.\n\nPlease use an admin user explicit if you need the \u0027enable_snat\u0027 in a test case.","commit_id":"7af247364c92b1c23045cdc00f565d86caa63bd8"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"96c72dc4819f5ec1e233ab02ce40d7655a22fdf0","unresolved":false,"context_lines":[{"line_number":244,"context_line":"        # NOTE(salv-orlando): The above applies as long as Neutron\u0027s default"},{"line_number":245,"context_line":"        # policy is to restrict enable_snat usage to admins only."},{"line_number":246,"context_line":"        cur_gw_info \u003d body[\u0027router\u0027][\u0027external_gateway_info\u0027]"},{"line_number":247,"context_line":"        if not self.is_admin and cur_gw_info:"},{"line_number":248,"context_line":"            cur_gw_info.pop(\u0027enable_snat\u0027, None)"},{"line_number":249,"context_line":"        update_body[\u0027external_gateway_info\u0027] \u003d kwargs.get("},{"line_number":250,"context_line":"            \u0027external_gateway_info\u0027, body[\u0027router\u0027][\u0027external_gateway_info\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2FRXY%3D","line":247,"in_reply_to":"AAAATH%2F%2FScg%3D","updated":"2013-10-18 16:26:52.000000000","message":"I will therefore assume this method is always invoked in tenant context and have a different method for the operation to be executed in admin context.\n\nThis can easily be revisited in the future.","commit_id":"7af247364c92b1c23045cdc00f565d86caa63bd8"}]}
