)]}'
{"openstack/cloud/openstackcloud.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"750fa03d30d93ed8443fe0fddf8482e0a8af8f73","unresolved":false,"context_lines":[{"line_number":3461,"context_line":"            self.log.debug(\"Network %s not found for deleting\", name_or_id)"},{"line_number":3462,"context_line":"            return False"},{"line_number":3463,"context_line":""},{"line_number":3464,"context_line":"        _adapter._json_response(self.network.delete("},{"line_number":3465,"context_line":"            \"/networks/{network_id}.json\".format(network_id\u003dnetwork[\u0027id\u0027])))"},{"line_number":3466,"context_line":""},{"line_number":3467,"context_line":"        # Reset cache so the deleted network is removed"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_332c2292","line":3464,"updated":"2018-09-28 14:23:54.000000000","message":"Why do you need a JSON response here if you immediately discard it?\n\nUPD: oh, it also checks the response code? this is a bit confusing, I\u0027d prefer you used exceptions.raise_from_response directly.","commit_id":"c1deac5f7e86189f15287e3e76574985c13fc4a7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"750fa03d30d93ed8443fe0fddf8482e0a8af8f73","unresolved":false,"context_lines":[{"line_number":3562,"context_line":"            self.log.debug(\"QoS policy %s not found for deleting\", name_or_id)"},{"line_number":3563,"context_line":"            return False"},{"line_number":3564,"context_line":""},{"line_number":3565,"context_line":"        _adapter._json_response(self.network.delete("},{"line_number":3566,"context_line":"            \"/qos/policies/{policy_id}.json\".format(policy_id\u003dpolicy[\u0027id\u0027])))"},{"line_number":3567,"context_line":""},{"line_number":3568,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_d34a8e59","line":3565,"updated":"2018-09-28 14:23:54.000000000","message":"ditto","commit_id":"c1deac5f7e86189f15287e3e76574985c13fc4a7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"750fa03d30d93ed8443fe0fddf8482e0a8af8f73","unresolved":false,"context_lines":[{"line_number":3760,"context_line":"                    name_or_id\u003dpolicy_name_or_id))"},{"line_number":3761,"context_line":""},{"line_number":3762,"context_line":"        try:"},{"line_number":3763,"context_line":"            _adapter._json_response(self.network.delete("},{"line_number":3764,"context_line":"                \"/qos/policies/{policy}/bandwidth_limit_rules/{rule}.json\"."},{"line_number":3765,"context_line":"                format(policy\u003dpolicy[\u0027id\u0027], rule\u003drule_id)))"},{"line_number":3766,"context_line":"        except exc.OpenStackCloudURINotFound:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_f34f8a67","line":3763,"updated":"2018-09-28 14:23:54.000000000","message":"ditto","commit_id":"c1deac5f7e86189f15287e3e76574985c13fc4a7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"750fa03d30d93ed8443fe0fddf8482e0a8af8f73","unresolved":false,"context_lines":[{"line_number":3943,"context_line":"                    name_or_id\u003dpolicy_name_or_id))"},{"line_number":3944,"context_line":""},{"line_number":3945,"context_line":"        try:"},{"line_number":3946,"context_line":"            _adapter._json_response(self.network.delete("},{"line_number":3947,"context_line":"                \"/qos/policies/{policy}/dscp_marking_rules/{rule}.json\"."},{"line_number":3948,"context_line":"                format(policy\u003dpolicy[\u0027id\u0027], rule\u003drule_id)))"},{"line_number":3949,"context_line":"        except exc.OpenStackCloudURINotFound:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_9350960b","line":3946,"updated":"2018-09-28 14:23:54.000000000","message":"ditto","commit_id":"c1deac5f7e86189f15287e3e76574985c13fc4a7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"750fa03d30d93ed8443fe0fddf8482e0a8af8f73","unresolved":false,"context_lines":[{"line_number":4132,"context_line":"                    name_or_id\u003dpolicy_name_or_id))"},{"line_number":4133,"context_line":""},{"line_number":4134,"context_line":"        try:"},{"line_number":4135,"context_line":"            _adapter._json_response(self.network.delete("},{"line_number":4136,"context_line":"                \"/qos/policies/{policy}/minimum_bandwidth_rules/{rule}.json\"."},{"line_number":4137,"context_line":"                format(policy\u003dpolicy[\u0027id\u0027], rule\u003drule_id)))"},{"line_number":4138,"context_line":"        except exc.OpenStackCloudURINotFound:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_b35592fb","line":4135,"updated":"2018-09-28 14:23:54.000000000","message":"ditto","commit_id":"c1deac5f7e86189f15287e3e76574985c13fc4a7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"750fa03d30d93ed8443fe0fddf8482e0a8af8f73","unresolved":false,"context_lines":[{"line_number":4215,"context_line":"            raise ValueError("},{"line_number":4216,"context_line":"                \"At least one of subnet_id or port_id must be supplied.\")"},{"line_number":4217,"context_line":""},{"line_number":4218,"context_line":"        _adapter._json_response("},{"line_number":4219,"context_line":"            self.network.put("},{"line_number":4220,"context_line":"                \"/routers/{router_id}/remove_router_interface.json\".format("},{"line_number":4221,"context_line":"                    router_id\u003drouter[\u0027id\u0027]),"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_533e7eb9","line":4218,"updated":"2018-09-28 14:23:54.000000000","message":"ditto","commit_id":"c1deac5f7e86189f15287e3e76574985c13fc4a7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"750fa03d30d93ed8443fe0fddf8482e0a8af8f73","unresolved":false,"context_lines":[{"line_number":4394,"context_line":"            self.log.debug(\"Router %s not found for deleting\", name_or_id)"},{"line_number":4395,"context_line":"            return False"},{"line_number":4396,"context_line":""},{"line_number":4397,"context_line":"        _adapter._json_response(self.network.delete("},{"line_number":4398,"context_line":"            \"/routers/{router_id}.json\".format(router_id\u003drouter[\u0027id\u0027]),"},{"line_number":4399,"context_line":"            error_message\u003d\"Error deleting router {0}\".format(name_or_id)))"},{"line_number":4400,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_733b7ac7","line":4397,"updated":"2018-09-28 14:23:54.000000000","message":"ditto","commit_id":"c1deac5f7e86189f15287e3e76574985c13fc4a7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"750fa03d30d93ed8443fe0fddf8482e0a8af8f73","unresolved":false,"context_lines":[{"line_number":8102,"context_line":"        if use_default_subnetpool:"},{"line_number":8103,"context_line":"            subnet[\u0027use_default_subnetpool\u0027] \u003d True"},{"line_number":8104,"context_line":""},{"line_number":8105,"context_line":"        data \u003d self.network.post(\"/subnets.json\", json\u003d{\"subnet\": subnet})"},{"line_number":8106,"context_line":""},{"line_number":8107,"context_line":"        return self._get_and_munchify(\u0027subnet\u0027, data)"},{"line_number":8108,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_13448647","line":8105,"updated":"2018-09-28 14:23:54.000000000","message":"nit: s/data/response/ (data is only fetched inside of _get_and_munchify)","commit_id":"c1deac5f7e86189f15287e3e76574985c13fc4a7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"750fa03d30d93ed8443fe0fddf8482e0a8af8f73","unresolved":false,"context_lines":[{"line_number":8124,"context_line":"            self.log.debug(\"Subnet %s not found for deleting\", name_or_id)"},{"line_number":8125,"context_line":"            return False"},{"line_number":8126,"context_line":""},{"line_number":8127,"context_line":"        self.network.delete("},{"line_number":8128,"context_line":"            \"/subnets/{subnet_id}.json\".format(subnet_id\u003dsubnet[\u0027id\u0027]))"},{"line_number":8129,"context_line":"        return True"},{"line_number":8130,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_33418237","line":8127,"updated":"2018-09-28 14:23:54.000000000","message":"so, here you do not use anything to verify the response code? is it by design?","commit_id":"c1deac5f7e86189f15287e3e76574985c13fc4a7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"750fa03d30d93ed8443fe0fddf8482e0a8af8f73","unresolved":false,"context_lines":[{"line_number":8210,"context_line":"            raise exc.OpenStackCloudException("},{"line_number":8211,"context_line":"                \"Subnet %s not found.\" % name_or_id)"},{"line_number":8212,"context_line":""},{"line_number":8213,"context_line":"        data \u003d self.network.put("},{"line_number":8214,"context_line":"            \"/subnets/{subnet_id}.json\".format(subnet_id\u003dcurr_subnet[\u0027id\u0027]),"},{"line_number":8215,"context_line":"            json\u003d{\"subnet\": subnet})"},{"line_number":8216,"context_line":"        return self._get_and_munchify(\u0027subnet\u0027, data)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_d3736eb3","line":8213,"updated":"2018-09-28 14:23:54.000000000","message":"nit: s/data/response/","commit_id":"c1deac5f7e86189f15287e3e76574985c13fc4a7"}],"openstack/service_description.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2180482da608cef7ee3c38d6528ae103b1df31d6","unresolved":false,"context_lines":[{"line_number":118,"context_line":"                )"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        if proxy_obj:"},{"line_number":121,"context_line":"            if self.service_type \u003d\u003d \u0027network\u0027:"},{"line_number":122,"context_line":"                # Special case neutron. This logic comes from neutronclient"},{"line_number":123,"context_line":"                # and is repeated in shade. It saves a discovery call that\u0027s"},{"line_number":124,"context_line":"                # always a waste of time."}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_875378de","line":121,"updated":"2018-09-28 12:35:14.000000000","message":"I liked this patch so much before getting here.. :) Let\u0027s have some boolean flag like proxy_obj.skip_discovery (or maybe self.skip_discovery, since it\u0027s probably a part of the description) to at least avoid hardcoding \u0027network\u0027 here?","commit_id":"05eff0a758a9ff0470191ca640c8eeb7fe0161e8"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2180482da608cef7ee3c38d6528ae103b1df31d6","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                if not endpoint.rstrip().rsplit(\u0027/\u0027)[1] \u003d\u003d \u0027v2.0\u0027:"},{"line_number":127,"context_line":"                    if not endpoint.endswith(\u0027/\u0027):"},{"line_number":128,"context_line":"                        endpoint +\u003d \u0027/\u0027"},{"line_number":129,"context_line":"                    endpoint \u003d urllib.parse.urljoin(endpoint, \u0027v2.0\u0027)"},{"line_number":130,"context_line":"                return config.get_session_client("},{"line_number":131,"context_line":"                    self.service_type,"},{"line_number":132,"context_line":"                    constructor\u003dself.supported_versions.get(version_string),"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_a758f4f8","line":129,"updated":"2018-09-28 12:35:14.000000000","message":"I must be blind but I don\u0027t see where the endpoint variable is used... And if it\u0027s not, we\u0027re probably fine without this hack?","commit_id":"05eff0a758a9ff0470191ca640c8eeb7fe0161e8"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"6e2ac018f28905abfdca2441abf00a20c0cd59d3","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                if not endpoint.rstrip().rsplit(\u0027/\u0027)[1] \u003d\u003d \u0027v2.0\u0027:"},{"line_number":127,"context_line":"                    if not endpoint.endswith(\u0027/\u0027):"},{"line_number":128,"context_line":"                        endpoint +\u003d \u0027/\u0027"},{"line_number":129,"context_line":"                    endpoint \u003d urllib.parse.urljoin(endpoint, \u0027v2.0\u0027)"},{"line_number":130,"context_line":"                return config.get_session_client("},{"line_number":131,"context_line":"                    self.service_type,"},{"line_number":132,"context_line":"                    constructor\u003dself.supported_versions.get(version_string),"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_4df7c18d","line":129,"in_reply_to":"3f79a3b5_a758f4f8","updated":"2018-09-28 13:43:49.000000000","message":"Wow, it certainly does seem to be the case doens\u0027t it?","commit_id":"05eff0a758a9ff0470191ca640c8eeb7fe0161e8"}]}
