)]}'
{"kuryr_kubernetes/controller/handlers/namespace.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"431ff2fededd46cfd365a8d2cf0a34a6817eb675","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    @MEMOIZE"},{"line_number":183,"context_line":"    def _check_quota(self, quota):"},{"line_number":184,"context_line":"        os_net \u003d clients.get_openstacksdk().network"},{"line_number":185,"context_line":"        resources \u003d {\u0027subnets\u0027, os_net.subnets,"},{"line_number":186,"context_line":"                     \u0027networks\u0027, os_net.networks,"},{"line_number":187,"context_line":"                     \u0027security_groups\u0027, os_net.security_groups}"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_fc533f38","line":184,"range":{"start_line":184,"start_character":17,"end_line":184,"end_character":51},"updated":"2019-10-18 11:11:02.000000000","message":"Can we just have clients.get_network_client() not to always do .network? It\u0027s how Octavia was implemented.","commit_id":"38343f17f9ac3078b11cf67f95512719ac0fd6ba"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"2f64211636f4b699309a05c5100b79b91487a656","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    @MEMOIZE"},{"line_number":183,"context_line":"    def _check_quota(self, quota):"},{"line_number":184,"context_line":"        os_net \u003d clients.get_openstacksdk().network"},{"line_number":185,"context_line":"        resources \u003d {\u0027subnets\u0027, os_net.subnets,"},{"line_number":186,"context_line":"                     \u0027networks\u0027, os_net.networks,"},{"line_number":187,"context_line":"                     \u0027security_groups\u0027, os_net.security_groups}"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_456ab6ed","line":184,"range":{"start_line":184,"start_character":17,"end_line":184,"end_character":51},"in_reply_to":"3fa7e38b_bf9db9bc","updated":"2019-10-18 14:29:41.000000000","message":"Will do.","commit_id":"38343f17f9ac3078b11cf67f95512719ac0fd6ba"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"5d43b59e42065b88f8a885f55bdeef5b55ac6cbf","unresolved":false,"context_lines":[{"line_number":181,"context_line":""},{"line_number":182,"context_line":"    @MEMOIZE"},{"line_number":183,"context_line":"    def _check_quota(self, quota):"},{"line_number":184,"context_line":"        os_net \u003d clients.get_openstacksdk().network"},{"line_number":185,"context_line":"        resources \u003d {\u0027subnets\u0027, os_net.subnets,"},{"line_number":186,"context_line":"                     \u0027networks\u0027, os_net.networks,"},{"line_number":187,"context_line":"                     \u0027security_groups\u0027, os_net.security_groups}"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_bf9db9bc","line":184,"range":{"start_line":184,"start_character":17,"end_line":184,"end_character":51},"in_reply_to":"3fa7e38b_fc533f38","updated":"2019-10-18 11:56:05.000000000","message":"+1","commit_id":"38343f17f9ac3078b11cf67f95512719ac0fd6ba"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"5d43b59e42065b88f8a885f55bdeef5b55ac6cbf","unresolved":false,"context_lines":[{"line_number":182,"context_line":"    @MEMOIZE"},{"line_number":183,"context_line":"    def _check_quota(self, quota):"},{"line_number":184,"context_line":"        os_net \u003d clients.get_openstacksdk().network"},{"line_number":185,"context_line":"        resources \u003d {\u0027subnets\u0027, os_net.subnets,"},{"line_number":186,"context_line":"                     \u0027networks\u0027, os_net.networks,"},{"line_number":187,"context_line":"                     \u0027security_groups\u0027, os_net.security_groups}"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        for resource, neutron_func in resources.items():"},{"line_number":190,"context_line":"            resource_quota \u003d quota[resource]"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_9fb9dded","line":187,"range":{"start_line":185,"start_character":0,"end_line":187,"end_character":63},"updated":"2019-10-18 11:56:05.000000000","message":"Is there a reason for this not being a Python dict anymore?\nThe items retrieval will fail in the next line.","commit_id":"38343f17f9ac3078b11cf67f95512719ac0fd6ba"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"fe2c95de6748934891d7da1e34ff48082202af65","unresolved":false,"context_lines":[{"line_number":182,"context_line":"    @MEMOIZE"},{"line_number":183,"context_line":"    def _check_quota(self, quota):"},{"line_number":184,"context_line":"        os_net \u003d clients.get_openstacksdk().network"},{"line_number":185,"context_line":"        resources \u003d {\u0027subnets\u0027, os_net.subnets,"},{"line_number":186,"context_line":"                     \u0027networks\u0027, os_net.networks,"},{"line_number":187,"context_line":"                     \u0027security_groups\u0027, os_net.security_groups}"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        for resource, neutron_func in resources.items():"},{"line_number":190,"context_line":"            resource_quota \u003d quota[resource]"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_05f7de8e","line":187,"range":{"start_line":185,"start_character":0,"end_line":187,"end_character":63},"in_reply_to":"3fa7e38b_9fb9dded","updated":"2019-10-18 14:29:19.000000000","message":"Whoa, nice catch!","commit_id":"38343f17f9ac3078b11cf67f95512719ac0fd6ba"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"5d43b59e42065b88f8a885f55bdeef5b55ac6cbf","unresolved":false,"context_lines":[{"line_number":187,"context_line":"                     \u0027security_groups\u0027, os_net.security_groups}"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        for resource, neutron_func in resources.items():"},{"line_number":190,"context_line":"            resource_quota \u003d quota[resource]"},{"line_number":191,"context_line":"            if utils.has_limit(resource_quota):"},{"line_number":192,"context_line":"                if not utils.is_available(resource, resource_quota,"},{"line_number":193,"context_line":"                                          neutron_func):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_5fa8458b","line":190,"range":{"start_line":190,"start_character":12,"end_line":190,"end_character":44},"updated":"2019-10-18 11:56:05.000000000","message":"The quota returned by the OpenStackSDK client has the following format: \n\nopenstack.network.v2.quota.Quota(subnet\u003d100, network\u003d100, floatingip\u003d50, subnetpool\u003d-1, id\u003dbcd9dea442274994b03ca150ab2441a4, security_group_rule\u003d100, location\u003dMunch({\u0027project\u0027: Munch({\u0027domain_id\u0027: None, \u0027id\u0027: u\u0027e632637b422847a9ad24b73801841a6e\u0027, \u0027name\u0027: None, \u0027domain_name\u0027: None}), \u0027zone\u0027: None, \u0027region_name\u0027: None, \u0027cloud\u0027: \u002710.11.4.14\u0027}),\n security_group\u003d100, router\u003d10, rbac_policy\u003d10, port\u003d500)\n\nNote that the name of resources does not contain an \u0027s\u0027 in the end. Thus, we would fail to fetch a specific quota.\n\nUnless, you may be getting a different output on your ENV when getting the quota.","commit_id":"38343f17f9ac3078b11cf67f95512719ac0fd6ba"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"fe2c95de6748934891d7da1e34ff48082202af65","unresolved":false,"context_lines":[{"line_number":187,"context_line":"                     \u0027security_groups\u0027, os_net.security_groups}"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        for resource, neutron_func in resources.items():"},{"line_number":190,"context_line":"            resource_quota \u003d quota[resource]"},{"line_number":191,"context_line":"            if utils.has_limit(resource_quota):"},{"line_number":192,"context_line":"                if not utils.is_available(resource, resource_quota,"},{"line_number":193,"context_line":"                                          neutron_func):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_e58c02d9","line":190,"range":{"start_line":190,"start_character":12,"end_line":190,"end_character":44},"in_reply_to":"3fa7e38b_5fa8458b","updated":"2019-10-18 14:29:19.000000000","message":"Well, you\u0027re right regarding repr of the Quota object, although interface is all plural.\n\n  In [3]: q \u003d os.network.get_quota(\u00272fae62ef81b64f95a53c2d34ddff4127\u0027)\n\n  In [4]: q\n  Out[4]: openstack.network.v2.quota.Quota(subnet\u003d100, network\u003d100, floatingip\u003d50, subnetpool\u003d-1, id\u003d2fae62ef81b64f95a53c2d34ddff4127, security_group_rule\u003d100, location\u003dMunch({\u0027project\u0027: Munch({\u0027domain_id\u0027: \nNone, \u0027id\u0027: u\u00272fae62ef81b64f95a53c2d34ddff4127\u0027, \u0027name\u0027: None, \u0027domain_name\u0027: None}), \u0027zone\u0027: None, \u0027region_name\u0027: None, \u0027cloud\u0027: \u0027192.168.113.23\u0027}), security_group\u003d100,   router\u003d10, rbac_policy\u003d10, port\u003d500)                                                                                                                                                                                       \n  In [5]: q.floating_ips\n  Out[5]: 50\n\n  In [6]: q.secu\n  q.security_group_rules  q.security_groups       \n\n  In [6]: q.security_groups\n  Out[6]: 100","commit_id":"38343f17f9ac3078b11cf67f95512719ac0fd6ba"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"da7d647d93caf32d4e1ed7bc5d0797e661c5f612","unresolved":false,"context_lines":[{"line_number":187,"context_line":"                     \u0027security_groups\u0027, os_net.security_groups}"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        for resource, neutron_func in resources.items():"},{"line_number":190,"context_line":"            resource_quota \u003d quota[resource]"},{"line_number":191,"context_line":"            if utils.has_limit(resource_quota):"},{"line_number":192,"context_line":"                if not utils.is_available(resource, resource_quota,"},{"line_number":193,"context_line":"                                          neutron_func):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_b0bac6bd","line":190,"range":{"start_line":190,"start_character":12,"end_line":190,"end_character":44},"in_reply_to":"3fa7e38b_e58c02d9","updated":"2019-10-18 15:00:36.000000000","message":"ah, cool!","commit_id":"38343f17f9ac3078b11cf67f95512719ac0fd6ba"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"da7d647d93caf32d4e1ed7bc5d0797e661c5f612","unresolved":false,"context_lines":[{"line_number":189,"context_line":"        for resource, neutron_func in resources.items():"},{"line_number":190,"context_line":"            resource_quota \u003d quota[resource]"},{"line_number":191,"context_line":"            if utils.has_limit(resource_quota):"},{"line_number":192,"context_line":"                if not utils.is_available(resource, resource_quota,"},{"line_number":193,"context_line":"                                          neutron_func):"},{"line_number":194,"context_line":"                    return False"},{"line_number":195,"context_line":"        return True"},{"line_number":196,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_f0d4beeb","line":193,"range":{"start_line":192,"start_character":23,"end_line":193,"end_character":56},"updated":"2019-10-18 15:00:36.000000000","message":"As OpenStackSDK returns a generator, you\u0027ll probably need to update this function when getting the resource.","commit_id":"38343f17f9ac3078b11cf67f95512719ac0fd6ba"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"63fb60daf43e1025dc07f2a2e9e0f4453bb0a3a8","unresolved":false,"context_lines":[{"line_number":189,"context_line":"        for resource, neutron_func in resources.items():"},{"line_number":190,"context_line":"            resource_quota \u003d quota[resource]"},{"line_number":191,"context_line":"            if utils.has_limit(resource_quota):"},{"line_number":192,"context_line":"                if not utils.is_available(resource, resource_quota,"},{"line_number":193,"context_line":"                                          neutron_func):"},{"line_number":194,"context_line":"                    return False"},{"line_number":195,"context_line":"        return True"},{"line_number":196,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_8b60bf0f","line":193,"range":{"start_line":192,"start_character":23,"end_line":193,"end_character":56},"in_reply_to":"3fa7e38b_f0d4beeb","updated":"2019-10-18 16:14:31.000000000","message":"Ack.","commit_id":"38343f17f9ac3078b11cf67f95512719ac0fd6ba"}],"kuryr_kubernetes/utils.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"61a50c60403aaa992b6177cf1b22bdf103e57957","unresolved":false,"context_lines":[{"line_number":194,"context_line":"    os_net \u003d clients.get_network_client()"},{"line_number":195,"context_line":"    try:"},{"line_number":196,"context_line":"        subnet_obj \u003d os_net.get_subnet(subnet_id)"},{"line_number":197,"context_line":"    except os_exc.ResourceNotFound:"},{"line_number":198,"context_line":"        LOG.exception(\"Subnet %s CIDR not found!\", subnet_id)"},{"line_number":199,"context_line":"        raise"},{"line_number":200,"context_line":"    return subnet_obj.cidr"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_2cf2dbe4","line":197,"range":{"start_line":197,"start_character":18,"end_line":197,"end_character":34},"updated":"2019-10-22 15:09:47.000000000","message":"Actually a good choice, not sure why it was a more generic exception previously.","commit_id":"ecdd9ea974e56c9812943ad661294cbeffe7b555"}]}
