)]}'
{"neutron/plugins/cisco/db/n1kv_db_v2.py":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"d0a960593dae4dad83b879aca3f44f3b0ead65a2","unresolved":false,"context_lines":[{"line_number":1250,"context_line":"            msg \u003d _(\"invalid multicast ip address range. \""},{"line_number":1251,"context_line":"                    \"example range: 224.1.1.1-224.1.1.10\")"},{"line_number":1252,"context_line":"            LOG.exception(msg)"},{"line_number":1253,"context_line":"            raise q_exc.InvalidInput(error_message\u003dmsg)"},{"line_number":1254,"context_line":""},{"line_number":1255,"context_line":"    def _validate_network_profile(self, net_p):"},{"line_number":1256,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUX%2F%2BcFs%3D","line":1253,"updated":"2014-02-21 06:00:06.000000000","message":"The logic in this method is not Pythonic. Here\u0027s my suggestion, please tweak to your liking:\n\n        LOG.debug(\"multicast_ip_range %s\",\n                  network_profile[\u0027multicast_ip_range\u0027])\n        min_ip, max_ip \u003d network_profile[\u0027multicast_ip_range\u0027].split(\u0027-\u0027)\n        LOG.debug(\"min_ip %s, max_ip %s\", min_ip, max_ip)\n        bad_addr \u003d None\n        try:\n            netaddr.IPAddress(min_ip).is_multicast()\n        except (ValueError, netaddr.core.AddrFormatError):\n            bad_addr \u003d min_ip\n        try:\n            netaddr.IPAddress(max_ip).is_multicast()\n        except (ValueError, netaddr.core.AddrFormatError):\n            bad_addr \u003d max_ip\n        if bad_addr:\n            msg \u003d _(\"%s is not a valid multicast ip address\") % bad_addr\n            LOG.exception(msg)\n            raise q_exc.InvalidInput(error_message\u003dmsg)","commit_id":"6355b27140d2fd7398b783c1a68b32a4cdbdef59"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"fe11c1cd902f8c6baa4764738d21bd331ecca673","unresolved":false,"context_lines":[{"line_number":1250,"context_line":"            msg \u003d _(\"invalid multicast ip address range. \""},{"line_number":1251,"context_line":"                    \"example range: 224.1.1.1-224.1.1.10\")"},{"line_number":1252,"context_line":"            LOG.exception(msg)"},{"line_number":1253,"context_line":"            raise q_exc.InvalidInput(error_message\u003dmsg)"},{"line_number":1254,"context_line":""},{"line_number":1255,"context_line":"    def _validate_network_profile(self, net_p):"},{"line_number":1256,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAU3%2F%2Flyo%3D","line":1253,"in_reply_to":"AAAAUX%2F%2BcFs%3D","updated":"2014-02-25 19:15:32.000000000","message":"is_multicast() returns a Boolean value. Wont raise an exception. So perhaps if... else does makes sense?","commit_id":"6355b27140d2fd7398b783c1a68b32a4cdbdef59"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"d0a960593dae4dad83b879aca3f44f3b0ead65a2","unresolved":false,"context_lines":[{"line_number":1299,"context_line":"            else:"},{"line_number":1300,"context_line":"                multicast_ip_range \u003d net_p.get(\"multicast_ip_range\")"},{"line_number":1301,"context_line":"                if not attributes.is_attr_set(multicast_ip_range):"},{"line_number":1302,"context_line":"                    msg \u003d _(\"argument multicast_ip_range missing\""},{"line_number":1303,"context_line":"                            \"for VXLAN multicast network profile\")"},{"line_number":1304,"context_line":"                    LOG.exception(msg)"},{"line_number":1305,"context_line":"                    raise q_exc.InvalidInput(error_message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUX%2F%2BcLs%3D","line":1302,"updated":"2014-02-21 06:00:06.000000000","message":"Begin sentence with upper case.","commit_id":"6355b27140d2fd7398b783c1a68b32a4cdbdef59"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"541bf138ba57036cd3d06baae6457ab253b7ed11","unresolved":false,"context_lines":[{"line_number":1252,"context_line":"        if bad_addr:"},{"line_number":1253,"context_line":"            msg \u003d _(\"%s is not a valid multicast ip address\") % bad_addr"},{"line_number":1254,"context_line":"            LOG.exception(msg)"},{"line_number":1255,"context_line":"            raise q_exc.InvalidInput(error_message\u003dmsg)"},{"line_number":1256,"context_line":""},{"line_number":1257,"context_line":"    def _validate_network_profile(self, net_p):"},{"line_number":1258,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVX%2F%2FpIw%3D","line":1255,"updated":"2014-03-02 06:13:06.000000000","message":"I think you can replace L1237 - L1255 with the following?\n\n  for ip in [min_ip, max_ip]:\n       try:\n           if not netaddr.IPAddress(ip).is_multicast():\n               raise\n       except:\n           msg \u003d _(\"%s is not a valid multicast ip address\") % ip\n           LOG.exception(msg)\n           raise q_exc.InvalidInput(error_message\u003dmsg)","commit_id":"ecfa552d771a248940c3f8ae00803a98c4f2afb7"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"0464299a92f1167619ebd4901b309dd21b5be8ff","unresolved":false,"context_lines":[{"line_number":1229,"context_line":"        \"\"\""},{"line_number":1230,"context_line":"        try:"},{"line_number":1231,"context_line":"            min_ip, max_ip \u003d network_profile[\u0027multicast_ip_range\u0027].split(\u0027-\u0027)"},{"line_number":1232,"context_line":"        except Exception:"},{"line_number":1233,"context_line":"            msg \u003d _(\"Invalid multicast ip address range. \""},{"line_number":1234,"context_line":"                    \"example range: 224.1.1.1-224.1.1.10\")"},{"line_number":1235,"context_line":"            LOG.exception(msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2Fysk%3D","line":1232,"updated":"2014-03-04 04:10:37.000000000","message":"except (KeyError, TypeError)","commit_id":"0e8496ba0f7b53134c579b171a7109b65ba9de20"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"78846de895d49c6574b29852281917c42f060bb9","unresolved":false,"context_lines":[{"line_number":1229,"context_line":"        \"\"\""},{"line_number":1230,"context_line":"        try:"},{"line_number":1231,"context_line":"            min_ip, max_ip \u003d network_profile[\u0027multicast_ip_range\u0027].split(\u0027-\u0027)"},{"line_number":1232,"context_line":"        except Exception:"},{"line_number":1233,"context_line":"            msg \u003d _(\"Invalid multicast ip address range. \""},{"line_number":1234,"context_line":"                    \"example range: 224.1.1.1-224.1.1.10\")"},{"line_number":1235,"context_line":"            LOG.exception(msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2Fn5I%3D","line":1232,"in_reply_to":"AAAAVn%2F%2Fysk%3D","updated":"2014-03-05 00:56:18.000000000","message":"Agree with Aaron on this one.","commit_id":"0e8496ba0f7b53134c579b171a7109b65ba9de20"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"0464299a92f1167619ebd4901b309dd21b5be8ff","unresolved":false,"context_lines":[{"line_number":1238,"context_line":"            try:"},{"line_number":1239,"context_line":"                if not netaddr.IPAddress(ip).is_multicast():"},{"line_number":1240,"context_line":"                    raise"},{"line_number":1241,"context_line":"            except Exception:"},{"line_number":1242,"context_line":"                msg \u003d _(\"%s is not a valid multicast ip address\") % ip"},{"line_number":1243,"context_line":"                LOG.exception(msg)"},{"line_number":1244,"context_line":"                raise q_exc.InvalidInput(error_message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2Fyr0%3D","line":1241,"updated":"2014-03-04 04:10:37.000000000","message":"You should just raise Invalid on 1240 and remove this","commit_id":"0e8496ba0f7b53134c579b171a7109b65ba9de20"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"701576acfe8833bbe87bfcbc0c629a23bd45b9db","unresolved":false,"context_lines":[{"line_number":1238,"context_line":"            try:"},{"line_number":1239,"context_line":"                if not netaddr.IPAddress(ip).is_multicast():"},{"line_number":1240,"context_line":"                    raise"},{"line_number":1241,"context_line":"            except Exception:"},{"line_number":1242,"context_line":"                msg \u003d _(\"%s is not a valid multicast ip address\") % ip"},{"line_number":1243,"context_line":"                LOG.exception(msg)"},{"line_number":1244,"context_line":"                raise q_exc.InvalidInput(error_message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2Fnxk%3D","line":1241,"in_reply_to":"AAAAVn%2F%2Fn3o%3D","updated":"2014-03-05 01:07:51.000000000","message":"It doesn\u0027t seem to make sense to raise on 1240 then Except on 1241 and then raise a different exception on 1244. Why not just raise what\u0027s on 1244 on 1240?","commit_id":"0e8496ba0f7b53134c579b171a7109b65ba9de20"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"5a4bfd2e49dab57e239ff6ff5865de13aee1f244","unresolved":false,"context_lines":[{"line_number":1238,"context_line":"            try:"},{"line_number":1239,"context_line":"                if not netaddr.IPAddress(ip).is_multicast():"},{"line_number":1240,"context_line":"                    raise"},{"line_number":1241,"context_line":"            except Exception:"},{"line_number":1242,"context_line":"                msg \u003d _(\"%s is not a valid multicast ip address\") % ip"},{"line_number":1243,"context_line":"                LOG.exception(msg)"},{"line_number":1244,"context_line":"                raise q_exc.InvalidInput(error_message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2FcPI%3D","line":1241,"in_reply_to":"AAAAVn%2F%2FnqM%3D","updated":"2014-03-06 02:37:33.000000000","message":"i see.","commit_id":"0e8496ba0f7b53134c579b171a7109b65ba9de20"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"3fcc3734b33145e51b9a67bae76a0fcd0b755fe7","unresolved":false,"context_lines":[{"line_number":1238,"context_line":"            try:"},{"line_number":1239,"context_line":"                if not netaddr.IPAddress(ip).is_multicast():"},{"line_number":1240,"context_line":"                    raise"},{"line_number":1241,"context_line":"            except Exception:"},{"line_number":1242,"context_line":"                msg \u003d _(\"%s is not a valid multicast ip address\") % ip"},{"line_number":1243,"context_line":"                LOG.exception(msg)"},{"line_number":1244,"context_line":"                raise q_exc.InvalidInput(error_message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2FnqM%3D","line":1241,"in_reply_to":"AAAAVn%2F%2Fnxk%3D","updated":"2014-03-05 01:24:38.000000000","message":"Perhaps this will make better sense?\n for ip in [min_ip, max_ip]:\n     try:\n         if not netaddr.IPAddress(ip).is_multicast():\n             msg \u003d _(\"%s is not a valid multicast ip address\") % ip\n             LOG.exception(msg)\n             raise q_exc.InvalidInput(error_message\u003dmsg)\n      except netaddr.AddrFormatError:\n          msg \u003d _(\"%s is not a valid ip address\") % ip\n          LOG.exception(msg)\n          raise q_exc.InvalidInput(error_message\u003dmsg)","commit_id":"0e8496ba0f7b53134c579b171a7109b65ba9de20"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"78846de895d49c6574b29852281917c42f060bb9","unresolved":false,"context_lines":[{"line_number":1238,"context_line":"            try:"},{"line_number":1239,"context_line":"                if not netaddr.IPAddress(ip).is_multicast():"},{"line_number":1240,"context_line":"                    raise"},{"line_number":1241,"context_line":"            except Exception:"},{"line_number":1242,"context_line":"                msg \u003d _(\"%s is not a valid multicast ip address\") % ip"},{"line_number":1243,"context_line":"                LOG.exception(msg)"},{"line_number":1244,"context_line":"                raise q_exc.InvalidInput(error_message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2Fn3o%3D","line":1241,"in_reply_to":"AAAAVn%2F%2Fyr0%3D","updated":"2014-03-05 00:56:18.000000000","message":"If you remove the except block and raise invalid on 1240, you wont catch AddrFormatError exception, if an invalid Ip address (eg. 10,0,0,0) is passed.\nOr are you suggesting something else Aaron?","commit_id":"0e8496ba0f7b53134c579b171a7109b65ba9de20"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"0464299a92f1167619ebd4901b309dd21b5be8ff","unresolved":false,"context_lines":[{"line_number":1291,"context_line":"                multicast_ip_range \u003d net_p.get(\"multicast_ip_range\")"},{"line_number":1292,"context_line":"                if not attributes.is_attr_set(multicast_ip_range):"},{"line_number":1293,"context_line":"                    msg \u003d _(\"Argument multicast_ip_range missing\""},{"line_number":1294,"context_line":"                            \"for VXLAN multicast network profile\")"},{"line_number":1295,"context_line":"                    LOG.exception(msg)"},{"line_number":1296,"context_line":"                    raise q_exc.InvalidInput(error_message\u003dmsg)"},{"line_number":1297,"context_line":"                self._validate_multicast_ip_range(net_p)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2Fyrs%3D","line":1294,"updated":"2014-03-04 04:10:37.000000000","message":"missing space at end.","commit_id":"0e8496ba0f7b53134c579b171a7109b65ba9de20"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"ad243d93b36d3e500fae59b6ed617d4940d7fef3","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from neutron.api.v2 import attributes"},{"line_number":28,"context_line":"from neutron.common import exceptions as n_exc"},{"line_number":29,"context_line":"from neutron.common import exceptions as q_exc"},{"line_number":30,"context_line":"import neutron.db.api as db"},{"line_number":31,"context_line":"from neutron.db import models_v2"},{"line_number":32,"context_line":"from neutron.openstack.common import log as logging"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2Fbfs%3D","line":29,"updated":"2014-03-06 05:43:02.000000000","message":"This line is not needed. See line above and use n_exc","commit_id":"af1dbbd850f4c57e1dc6c00aa4cf1f606e97fe17"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"ad243d93b36d3e500fae59b6ed617d4940d7fef3","unresolved":false,"context_lines":[{"line_number":1228,"context_line":"            msg \u003d _(\"Invalid segment range. example range: 500-550\")"},{"line_number":1229,"context_line":"            raise n_exc.InvalidInput(error_message\u003dmsg)"},{"line_number":1230,"context_line":""},{"line_number":1231,"context_line":"    def _validate_multicast_ip_range(self, network_profile):"},{"line_number":1232,"context_line":"        \"\"\""},{"line_number":1233,"context_line":"        Validate multicast ip range values."},{"line_number":1234,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2Fbcw%3D","line":1231,"updated":"2014-03-06 05:43:02.000000000","message":"Please follow ip_allocations example which is a subnet attribute and how its validated across neutron code.\n\nhttps://github.com/openstack/neutron/blob/master/neutron/api/v2/attributes.py\n\nhttps://github.com/openstack/neutron/blob/master/neutron/db/db_base_plugin_v2.py#L685","commit_id":"af1dbbd850f4c57e1dc6c00aa4cf1f606e97fe17"},{"author":{"_account_id":10283,"name":"Dhanashree Gosavi","email":"dhgosavi@cisco.com","username":"dhgosavi"},"change_message_id":"92e637996ce53fc67876fd6c513ab1e5d16806f9","unresolved":false,"context_lines":[{"line_number":1228,"context_line":"            msg \u003d _(\"Invalid segment range. example range: 500-550\")"},{"line_number":1229,"context_line":"            raise n_exc.InvalidInput(error_message\u003dmsg)"},{"line_number":1230,"context_line":""},{"line_number":1231,"context_line":"    def _validate_multicast_ip_range(self, network_profile):"},{"line_number":1232,"context_line":"        \"\"\""},{"line_number":1233,"context_line":"        Validate multicast ip range values."},{"line_number":1234,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FSqA%3D","line":1231,"in_reply_to":"AAAAVn%2F%2Fbcw%3D","updated":"2014-03-07 01:03:45.000000000","message":"Same explanation as that for the \u0027validator\u0027","commit_id":"af1dbbd850f4c57e1dc6c00aa4cf1f606e97fe17"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"c621b03477808e995c29b592c787c2d3412eff0b","unresolved":false,"context_lines":[{"line_number":1234,"context_line":"        :param network_profile: network profile object"},{"line_number":1235,"context_line":"        \"\"\""},{"line_number":1236,"context_line":"        try:"},{"line_number":1237,"context_line":"            min_ip, max_ip \u003d network_profile[\u0027multicast_ip_range\u0027].split(\u0027-\u0027)"},{"line_number":1238,"context_line":"        except ValueError:"},{"line_number":1239,"context_line":"            msg \u003d _(\"Invalid multicast ip address range. \""},{"line_number":1240,"context_line":"                    \"example range: 224.1.1.1-224.1.1.10\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2FG%2FE%3D","line":1237,"updated":"2014-03-09 14:51:04.000000000","message":"It seems split(\u0027-\u0027, 1) is better.","commit_id":"94915051a885fb7378a33a584fee138243b0880d"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"c621b03477808e995c29b592c787c2d3412eff0b","unresolved":false,"context_lines":[{"line_number":1238,"context_line":"        except ValueError:"},{"line_number":1239,"context_line":"            msg \u003d _(\"Invalid multicast ip address range. \""},{"line_number":1240,"context_line":"                    \"example range: 224.1.1.1-224.1.1.10\")"},{"line_number":1241,"context_line":"            LOG.exception(msg)"},{"line_number":1242,"context_line":"            raise n_exc.InvalidInput(error_message\u003dmsg)"},{"line_number":1243,"context_line":"        for ip in [min_ip, max_ip]:"},{"line_number":1244,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2FG%2FI%3D","line":1241,"updated":"2014-03-09 14:51:04.000000000","message":"Do we need to use LOG.exception? It seems LOG.error is enough because there is no need to log traceback.","commit_id":"94915051a885fb7378a33a584fee138243b0880d"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"c621b03477808e995c29b592c787c2d3412eff0b","unresolved":false,"context_lines":[{"line_number":1244,"context_line":"            try:"},{"line_number":1245,"context_line":"                if not netaddr.IPAddress(ip).is_multicast():"},{"line_number":1246,"context_line":"                    msg \u003d _(\"%s is not a valid multicast ip address\") % ip"},{"line_number":1247,"context_line":"                    LOG.exception(msg)"},{"line_number":1248,"context_line":"                    raise n_exc.InvalidInput(error_message\u003dmsg)"},{"line_number":1249,"context_line":"            except netaddr.AddrFormatError:"},{"line_number":1250,"context_line":"                msg \u003d _(\"%s is not a valid ip address\") % ip"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2FG%2FA%3D","line":1247,"updated":"2014-03-09 14:51:04.000000000","message":"LOG.error. The reason is same as the above.","commit_id":"94915051a885fb7378a33a584fee138243b0880d"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"c621b03477808e995c29b592c787c2d3412eff0b","unresolved":false,"context_lines":[{"line_number":1248,"context_line":"                    raise n_exc.InvalidInput(error_message\u003dmsg)"},{"line_number":1249,"context_line":"            except netaddr.AddrFormatError:"},{"line_number":1250,"context_line":"                msg \u003d _(\"%s is not a valid ip address\") % ip"},{"line_number":1251,"context_line":"                LOG.exception(msg)"},{"line_number":1252,"context_line":"                raise n_exc.InvalidInput(error_message\u003dmsg)"},{"line_number":1253,"context_line":""},{"line_number":1254,"context_line":"    def _validate_network_profile(self, net_p):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2FG%2Bw%3D","line":1251,"updated":"2014-03-09 14:51:04.000000000","message":"LOG.error. The reason is same as the above.","commit_id":"94915051a885fb7378a33a584fee138243b0880d"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"c621b03477808e995c29b592c787c2d3412eff0b","unresolved":false,"context_lines":[{"line_number":1300,"context_line":"                if not attributes.is_attr_set(multicast_ip_range):"},{"line_number":1301,"context_line":"                    msg \u003d _(\"Argument multicast_ip_range missing\""},{"line_number":1302,"context_line":"                            \" for VXLAN multicast network profile\")"},{"line_number":1303,"context_line":"                    LOG.exception(msg)"},{"line_number":1304,"context_line":"                    raise n_exc.InvalidInput(error_message\u003dmsg)"},{"line_number":1305,"context_line":"                self._validate_multicast_ip_range(net_p)"},{"line_number":1306,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAVn%2F%2FG%2Bg%3D","line":1303,"updated":"2014-03-09 14:51:04.000000000","message":"LOG.error from the same reason.","commit_id":"94915051a885fb7378a33a584fee138243b0880d"},{"author":{"_account_id":1689,"name":"Robert Kukura","email":"rk@theep.net","username":"rkukura"},"change_message_id":"c945e497f3e09ee82d7f3569c5d0fe78dfa3c64e","unresolved":false,"context_lines":[{"line_number":1250,"context_line":"            except netaddr.AddrFormatError:"},{"line_number":1251,"context_line":"                msg \u003d _(\"%s is not a valid ip address\") % ip"},{"line_number":1252,"context_line":"                LOG.error(msg)"},{"line_number":1253,"context_line":"                raise n_exc.InvalidInput(error_message\u003dmsg)"},{"line_number":1254,"context_line":""},{"line_number":1255,"context_line":"    def _validate_network_profile(self, net_p):"},{"line_number":1256,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2FpkA%3D","line":1253,"updated":"2014-03-14 18:31:49.000000000","message":"Also validate min_ip \u003c\u003d max_ip, and test this in the UT.","commit_id":"48da55b07be5b028ec3e1d17027ee52f015c3eb2"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"673eca09e6e1ab5a189f559f0d92e1d83b4fad05","unresolved":false,"context_lines":[{"line_number":1251,"context_line":"                msg \u003d _(\"%s is not a valid ip address\") % ip"},{"line_number":1252,"context_line":"                LOG.error(msg)"},{"line_number":1253,"context_line":"                raise n_exc.InvalidInput(error_message\u003dmsg)"},{"line_number":1254,"context_line":"        if netaddr.IPAddress(min_ip) \u003e\u003d netaddr.IPAddress(max_ip):"},{"line_number":1255,"context_line":"            msg \u003d _(\"%s Invalid min_ip, min_ip \u003c\u003d max_ip\") % min_ip"},{"line_number":1256,"context_line":"            LOG.error(msg)"},{"line_number":1257,"context_line":"            raise n_exc.InvalidInput(error_message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAWH%2F%2FnW4%3D","line":1254,"updated":"2014-03-15 01:52:51.000000000","message":"I think a range of one ip address is OK, so this should check if min_ip \u003e max_ip.","commit_id":"0033ba9cd23990e309bf3762fb792e0b798867b2"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"673eca09e6e1ab5a189f559f0d92e1d83b4fad05","unresolved":false,"context_lines":[{"line_number":1252,"context_line":"                LOG.error(msg)"},{"line_number":1253,"context_line":"                raise n_exc.InvalidInput(error_message\u003dmsg)"},{"line_number":1254,"context_line":"        if netaddr.IPAddress(min_ip) \u003e\u003d netaddr.IPAddress(max_ip):"},{"line_number":1255,"context_line":"            msg \u003d _(\"%s Invalid min_ip, min_ip \u003c\u003d max_ip\") % min_ip"},{"line_number":1256,"context_line":"            LOG.error(msg)"},{"line_number":1257,"context_line":"            raise n_exc.InvalidInput(error_message\u003dmsg)"},{"line_number":1258,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAWH%2F%2FnWk%3D","line":1255,"updated":"2014-03-15 01:52:51.000000000","message":"I think this message could be better. How about: \"Invalid multicast IP range \u0027%s - %s\u0027: range must be from low address to high address\"","commit_id":"0033ba9cd23990e309bf3762fb792e0b798867b2"}],"neutron/plugins/cisco/extensions/network_profile.py":[{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"ad243d93b36d3e500fae59b6ed617d4940d7fef3","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        \u0027segment_range\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: True,"},{"line_number":41,"context_line":"                          \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"},{"line_number":42,"context_line":"        \u0027multicast_ip_range\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: True,"},{"line_number":43,"context_line":"                               \u0027is_visible\u0027: True,"},{"line_number":44,"context_line":"                               \u0027default\u0027: attributes.ATTR_NOT_SPECIFIED},"},{"line_number":45,"context_line":"        \u0027multicast_ip_index\u0027: {\u0027allow_post\u0027: False, \u0027allow_put\u0027: False,"},{"line_number":46,"context_line":"                               \u0027is_visible\u0027: False, \u0027default\u0027: \u00270\u0027},"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FbcU%3D","line":43,"updated":"2014-03-06 05:43:02.000000000","message":"Wouldnt it be good idea to put validator here?\n\nhttps://github.com/openstack/neutron/blob/master/neutron/api/v2/attributes.py#L701","commit_id":"af1dbbd850f4c57e1dc6c00aa4cf1f606e97fe17"},{"author":{"_account_id":10283,"name":"Dhanashree Gosavi","email":"dhgosavi@cisco.com","username":"dhgosavi"},"change_message_id":"92e637996ce53fc67876fd6c513ab1e5d16806f9","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        \u0027segment_range\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: True,"},{"line_number":41,"context_line":"                          \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"},{"line_number":42,"context_line":"        \u0027multicast_ip_range\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: True,"},{"line_number":43,"context_line":"                               \u0027is_visible\u0027: True,"},{"line_number":44,"context_line":"                               \u0027default\u0027: attributes.ATTR_NOT_SPECIFIED},"},{"line_number":45,"context_line":"        \u0027multicast_ip_index\u0027: {\u0027allow_post\u0027: False, \u0027allow_put\u0027: False,"},{"line_number":46,"context_line":"                               \u0027is_visible\u0027: False, \u0027default\u0027: \u00270\u0027},"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FSqI%3D","line":43,"in_reply_to":"AAAAVn%2F%2FbcU%3D","updated":"2014-03-07 01:03:45.000000000","message":"Multicast_ip_range accepts string as opposed to ip_pool that accepts lists.\nSo a validator wont work in this case.\nIf in the future we change the CLI for multicast_ip_range to accept a list, a validator would be a good idea.","commit_id":"af1dbbd850f4c57e1dc6c00aa4cf1f606e97fe17"}],"neutron/plugins/cisco/n1kv/n1kv_client.py":[{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"541bf138ba57036cd3d06baae6457ab253b7ed11","unresolved":false,"context_lines":[{"line_number":199,"context_line":"        :param network: network dict"},{"line_number":200,"context_line":"        :param network_profile: network profile dict"},{"line_number":201,"context_line":"        \"\"\""},{"line_number":202,"context_line":"        body \u003d {\u0027publishName\u0027: network[\u0027id\u0027],"},{"line_number":203,"context_line":"                \u0027description\u0027: network[\u0027name\u0027],"},{"line_number":204,"context_line":"                \u0027id\u0027: network[\u0027id\u0027],"},{"line_number":205,"context_line":"                \u0027tenantId\u0027: network[\u0027tenant_id\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVX%2F%2FpLs%3D","line":202,"updated":"2014-03-02 06:13:06.000000000","message":"Seems like an unrelated change, but I guess that\u0027s fine.","commit_id":"ecfa552d771a248940c3f8ae00803a98c4f2afb7"}],"neutron/plugins/cisco/n1kv/n1kv_neutron_plugin.py":[{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"541bf138ba57036cd3d06baae6457ab253b7ed11","unresolved":false,"context_lines":[{"line_number":700,"context_line":"        profile \u003d self.get_network_profile(context,"},{"line_number":701,"context_line":"                                           network[n1kv_profile.PROFILE_ID])"},{"line_number":702,"context_line":"        n1kvclient \u003d n1kv_client.Client()"},{"line_number":703,"context_line":"        if network[providernet.NETWORK_TYPE] \u003d\u003d c_const.NETWORK_TYPE_OVERLAY:"},{"line_number":704,"context_line":"            try:"},{"line_number":705,"context_line":"                n1kvclient.create_bridge_domain(network, profile[\u0027sub_type\u0027])"},{"line_number":706,"context_line":"            except(cisco_exceptions.VSMError,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVX%2F%2FpJM%3D","line":703,"updated":"2014-03-02 06:13:06.000000000","message":"Are the changes in this module related to the bug being addressed here? Seem unrelated to me...","commit_id":"ecfa552d771a248940c3f8ae00803a98c4f2afb7"}],"neutron/tests/unit/cisco/n1kv/test_n1kv_plugin.py":[{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"ad243d93b36d3e500fae59b6ed617d4940d7fef3","unresolved":false,"context_lines":[{"line_number":254,"context_line":"        elif segment_type \u003d\u003d \u0027overlay\u0027:"},{"line_number":255,"context_line":"            netp[\u0027network_profile\u0027][\u0027segment_range\u0027] \u003d \u002710000-10010\u0027"},{"line_number":256,"context_line":"            netp[\u0027network_profile\u0027][\u0027sub_type\u0027] \u003d \u0027enhanced\u0027 or \u0027native_vxlan\u0027"},{"line_number":257,"context_line":"            \"netp[\u0027network_profile\u0027][\u0027multicast_ip_range\u0027]\""},{"line_number":258,"context_line":"            \"\u003d\u0027224.1.1.1 - 224.1.1.10\u0027\""},{"line_number":259,"context_line":"        return netp"},{"line_number":260,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2Fbak%3D","line":257,"updated":"2014-03-06 05:43:02.000000000","message":"typo?","commit_id":"af1dbbd850f4c57e1dc6c00aa4cf1f606e97fe17"},{"author":{"_account_id":7962,"name":"Ronak Shah","email":"ronak.malav.shah@gmail.com","username":"ronak"},"change_message_id":"ad243d93b36d3e500fae59b6ed617d4940d7fef3","unresolved":false,"context_lines":[{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    def test_create_overlay_network_profile_invalid_multicast_fail(self):"},{"line_number":298,"context_line":"        net_p_dict \u003d self._prepare_net_profile_data(\u0027overlay\u0027)"},{"line_number":299,"context_line":"        data \u003d {\u0027network_profile\u0027: {\u0027sub_type\u0027: \u0027native_vxlan\u0027},"},{"line_number":300,"context_line":"                \u0027network_profile\u0027: {\u0027multicast_ip_range\u0027: \u00271.1.1.1\u0027}}"},{"line_number":301,"context_line":"        net_p_req \u003d self.new_create_request(\u0027network_profiles\u0027, data,"},{"line_number":302,"context_line":"                                            net_p_dict)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FbZ4%3D","line":299,"updated":"2014-03-06 05:43:02.000000000","message":"Across this file you need:\n{ \u0027network_profile\u0027: {\n         \u0027sub_type\u0027: \u003cvalue\u003e,\n         \u0027multicast_ip_range\u0027: \u003cvalue\u003e\n   }\n}\n\nWhat you are doing will override \u0027network_profile\u0027 key\u0027s value.","commit_id":"af1dbbd850f4c57e1dc6c00aa4cf1f606e97fe17"}]}
