)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"cab4f5296d52b7f6886390a7b296d62ed88d5348","unresolved":false,"context_lines":[{"line_number":15,"context_line":"A organization had a system."},{"line_number":16,"context_line":"They hope to migrate to Openstack in private environment."},{"line_number":17,"context_line":"But a new system must use a IP address that is the same as the sytem,"},{"line_number":18,"context_line":"and the IP address should be floating ip."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This patch fixes this problem."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAUH%2F93bs%3D","line":18,"updated":"2014-02-03 06:57:55.000000000","message":"IMO, we don\u0027t need to describe the motivation of the patch in the commit message. It is better this kind of thing is described in the bug report (or blueprint). Instead, what this patch changes should be described.","commit_id":"1c574a4b7c5f78cace53772c07f5270c68034722"},{"author":{"_account_id":7203,"name":"yuuichi fujioka","email":"fujioka.yuuichi@gmail.com","username":"FujiokaYuuichi"},"change_message_id":"2172fc49ac1884fe214197f9d1c8d3c76130cfd9","unresolved":false,"context_lines":[{"line_number":15,"context_line":"A organization had a system."},{"line_number":16,"context_line":"They hope to migrate to Openstack in private environment."},{"line_number":17,"context_line":"But a new system must use a IP address that is the same as the sytem,"},{"line_number":18,"context_line":"and the IP address should be floating ip."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This patch fixes this problem."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAUH%2F9yA0%3D","line":18,"in_reply_to":"AAAAUH%2F93bs%3D","updated":"2014-02-04 01:36:40.000000000","message":"Done","commit_id":"1c574a4b7c5f78cace53772c07f5270c68034722"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"386b64742ad313227890b7cc4e628149aca07928","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     fujioka yuuichi \u003cfujioka-yuuichi@zx.mxh.nes.nec.co.jp\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-02-04 10:22:05 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"fix to allow setting ip address of floating ip"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"IP Address of floating ip will be automatically allocated."},{"line_number":10,"context_line":"In some case, user hopes to specify IP Address of floating ip."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAVX%2F%2Fq8w%3D","line":7,"updated":"2014-03-01 10:13:49.000000000","message":"Hmm.. it is not a fix but a small feature. The commit summary needs to be updated.","commit_id":"37616aa549a541a043130e85cb00840eddd05edb"},{"author":{"_account_id":7203,"name":"yuuichi fujioka","email":"fujioka.yuuichi@gmail.com","username":"FujiokaYuuichi"},"unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     fujioka yuuichi \u003cfujioka-yuuichi@zx.mxh.nes.nec.co.jp\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-02-04 10:22:05 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"fix to allow setting ip address of floating ip"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"IP Address of floating ip will be automatically allocated."},{"line_number":10,"context_line":"In some case, user hopes to specify IP Address of floating ip."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAVn%2F%2FjUs%3D","line":7,"in_reply_to":"AAAAVX%2F%2Fq8w%3D","updated":"2014-03-05 13:17:53.000000000","message":"Done","commit_id":"37616aa549a541a043130e85cb00840eddd05edb"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"386b64742ad313227890b7cc4e628149aca07928","unresolved":false,"context_lines":[{"line_number":9,"context_line":"IP Address of floating ip will be automatically allocated."},{"line_number":10,"context_line":"In some case, user hopes to specify IP Address of floating ip."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch fixes this problem."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"DocImpact"},{"line_number":15,"context_line":"Closes-Bug: #1138730"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAVX%2F%2Fq8k%3D","line":12,"updated":"2014-03-01 10:13:49.000000000","message":"Above two paragraphs look unnecessary.\n\nInstead please mention that this feature is only allowed to admin by default. It helps writing a document.","commit_id":"37616aa549a541a043130e85cb00840eddd05edb"},{"author":{"_account_id":7203,"name":"yuuichi fujioka","email":"fujioka.yuuichi@gmail.com","username":"FujiokaYuuichi"},"unresolved":false,"context_lines":[{"line_number":9,"context_line":"IP Address of floating ip will be automatically allocated."},{"line_number":10,"context_line":"In some case, user hopes to specify IP Address of floating ip."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch fixes this problem."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"DocImpact"},{"line_number":15,"context_line":"Closes-Bug: #1138730"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAVn%2F%2FjUk%3D","line":12,"in_reply_to":"AAAAVX%2F%2Fq8k%3D","updated":"2014-03-05 13:17:53.000000000","message":"Done","commit_id":"37616aa549a541a043130e85cb00840eddd05edb"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"unresolved":false,"context_lines":[{"line_number":14,"context_line":"The specific floating ip address is limited by"},{"line_number":15,"context_line":"\"create_floatingip:floating_ip_address\" in \"policy.json\"."},{"line_number":16,"context_line":"In default, it needs an admin role."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Implements: blueprint allow-specific-floating-ip-address"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: Iba64a0f0a38ca5eb39c605e121a12c956637b96c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"3a961159_936bf0ef","line":17,"updated":"2014-12-24 08:25:12.000000000","message":"please add DocImpact","commit_id":"4d7220a274928a9e6abe6fde62ceabba256b0319"},{"author":{"_account_id":7203,"name":"yuuichi fujioka","email":"fujioka.yuuichi@gmail.com","username":"FujiokaYuuichi"},"unresolved":false,"context_lines":[{"line_number":14,"context_line":"The specific floating ip address is limited by"},{"line_number":15,"context_line":"\"create_floatingip:floating_ip_address\" in \"policy.json\"."},{"line_number":16,"context_line":"In default, it needs an admin role."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Implements: blueprint allow-specific-floating-ip-address"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: Iba64a0f0a38ca5eb39c605e121a12c956637b96c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":18,"id":"3a961159_9eacd7a0","line":17,"in_reply_to":"3a961159_936bf0ef","updated":"2014-12-24 08:49:12.000000000","message":"Done","commit_id":"4d7220a274928a9e6abe6fde62ceabba256b0319"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The specific floating ip address is limited by"},{"line_number":15,"context_line":"\"create_floatingip:floating_ip_address\" in \"policy.json\"."},{"line_number":16,"context_line":"In default, it needs an admin role."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"DocImpact"},{"line_number":19,"context_line":"APIImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"3a961159_44c9c024","line":16,"updated":"2014-12-24 10:50:17.000000000","message":"By default,","commit_id":"dac1769683fe34010d42597f92098260385c3e05"},{"author":{"_account_id":7203,"name":"yuuichi fujioka","email":"fujioka.yuuichi@gmail.com","username":"FujiokaYuuichi"},"unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The specific floating ip address is limited by"},{"line_number":15,"context_line":"\"create_floatingip:floating_ip_address\" in \"policy.json\"."},{"line_number":16,"context_line":"In default, it needs an admin role."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"DocImpact"},{"line_number":19,"context_line":"APIImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"3a961159_7133d961","line":16,"in_reply_to":"3a961159_44c9c024","updated":"2014-12-24 12:43:59.000000000","message":"Done","commit_id":"dac1769683fe34010d42597f92098260385c3e05"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"386b64742ad313227890b7cc4e628149aca07928","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Yuuichi Fujioka \u003cfujioka.yuuichi@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-12-24 12:43:37 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"allow setting ip address of floating ip"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"IP Address of floating ip will be automatically allocated."},{"line_number":10,"context_line":"In some case, user hopes to specify IP Address of floating ip."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"3a961159_3872feb0","line":7,"updated":"2014-12-26 02:17:15.000000000","message":"allow setting ip -\u003e Allow to specify IP","commit_id":"4b96a5398ba0102b42aa8fd7071b0675c1608e1c"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"386b64742ad313227890b7cc4e628149aca07928","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch fixes this problem."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The specific floating ip address is limited by"},{"line_number":15,"context_line":"\"create_floatingip:floating_ip_address\" in \"policy.json\"."},{"line_number":16,"context_line":"By default, it needs an admin role."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"3a961159_987132ab","line":14,"updated":"2014-12-26 02:17:15.000000000","message":"The specific floating ip address -\u003e The feature","commit_id":"4b96a5398ba0102b42aa8fd7071b0675c1608e1c"}],"neutron/db/l3_db.py":[{"author":{"_account_id":1119,"name":"Christoph Thiel","email":"ct@kki.org","username":"cthiel-suse"},"change_message_id":"2912c9ed10acd1f3f0180fed13eb8aa87c7458e7","unresolved":false,"context_lines":[{"line_number":609,"context_line":""},{"line_number":610,"context_line":"        fip_ip \u003d attributes.ATTR_NOT_SPECIFIED"},{"line_number":611,"context_line":"        if fip.get(\u0027floating_ip_address\u0027):"},{"line_number":612,"context_line":"            if not context.is_admin:"},{"line_number":613,"context_line":"                reason \u003d _(\u0027Cannot specify ip address of floating ip\u0027)"},{"line_number":614,"context_line":"                raise q_exc.AdminRequired(reason\u003dreason)"},{"line_number":615,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F99hg%3D","line":612,"updated":"2014-01-31 16:31:38.000000000","message":"Why just allow admins to create specific floating IPs? Shouldn\u0027t it be possible to allow for everyone, who can create floating ips, to also request a specific IP? See https://review.openstack.org/#/c/23327/5/quantum/db/l3_db.py for prior discussion on this topic.","commit_id":"db12e5e6c03e38834e6c14d9b6c462b6a20a1c7b"},{"author":{"_account_id":7203,"name":"yuuichi fujioka","email":"fujioka.yuuichi@gmail.com","username":"FujiokaYuuichi"},"change_message_id":"9266dfbaa315029c8d00dcf9d25d3e8a385dc7c8","unresolved":false,"context_lines":[{"line_number":609,"context_line":""},{"line_number":610,"context_line":"        fip_ip \u003d attributes.ATTR_NOT_SPECIFIED"},{"line_number":611,"context_line":"        if fip.get(\u0027floating_ip_address\u0027):"},{"line_number":612,"context_line":"            if not context.is_admin:"},{"line_number":613,"context_line":"                reason \u003d _(\u0027Cannot specify ip address of floating ip\u0027)"},{"line_number":614,"context_line":"                raise q_exc.AdminRequired(reason\u003dreason)"},{"line_number":615,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F93po%3D","line":612,"in_reply_to":"AAAAUH%2F97Pc%3D","updated":"2014-02-03 01:41:06.000000000","message":"Done","commit_id":"db12e5e6c03e38834e6c14d9b6c462b6a20a1c7b"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"82b3561574a63313301251e2b4d149f87c40e78b","unresolved":false,"context_lines":[{"line_number":609,"context_line":""},{"line_number":610,"context_line":"        fip_ip \u003d attributes.ATTR_NOT_SPECIFIED"},{"line_number":611,"context_line":"        if fip.get(\u0027floating_ip_address\u0027):"},{"line_number":612,"context_line":"            if not context.is_admin:"},{"line_number":613,"context_line":"                reason \u003d _(\u0027Cannot specify ip address of floating ip\u0027)"},{"line_number":614,"context_line":"                raise q_exc.AdminRequired(reason\u003dreason)"},{"line_number":615,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F97Pc%3D","line":612,"in_reply_to":"AAAAUH%2F99hg%3D","updated":"2014-02-01 00:40:19.000000000","message":"From a public cloud perspective, we probably want to make this configurable because some deployers may not want non-admins to choose their IP.","commit_id":"db12e5e6c03e38834e6c14d9b6c462b6a20a1c7b"},{"author":{"_account_id":1935,"name":"Tomoe Sugihara","email":"tomoe.sugihara@gmail.com","username":"tomoe"},"unresolved":false,"context_lines":[{"line_number":614,"context_line":"            msg \u003d _(\"Network %s is not a valid external network\") % f_net_id"},{"line_number":615,"context_line":"            raise n_exc.BadRequest(resource\u003d\u0027floatingip\u0027, msg\u003dmsg)"},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"        fip_ip \u003d attributes.ATTR_NOT_SPECIFIED"},{"line_number":618,"context_line":"        if fip.get(\u0027floating_ip_address\u0027):"},{"line_number":619,"context_line":"            fip_ip \u003d [{\u0027ip_address\u0027: fip[\u0027floating_ip_address\u0027]}]"},{"line_number":620,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2B0yA%3D","line":617,"updated":"2014-03-24 00:49:36.000000000","message":"May want to rename fip_ip to fixed_ips? fip seems very confusing as both floating and fixed starts with f.","commit_id":"347fba4729bf76f4578e5ba347d90fb11a9f8c04"},{"author":{"_account_id":7203,"name":"yuuichi fujioka","email":"fujioka.yuuichi@gmail.com","username":"FujiokaYuuichi"},"unresolved":false,"context_lines":[{"line_number":614,"context_line":"            msg \u003d _(\"Network %s is not a valid external network\") % f_net_id"},{"line_number":615,"context_line":"            raise n_exc.BadRequest(resource\u003d\u0027floatingip\u0027, msg\u003dmsg)"},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"        fip_ip \u003d attributes.ATTR_NOT_SPECIFIED"},{"line_number":618,"context_line":"        if fip.get(\u0027floating_ip_address\u0027):"},{"line_number":619,"context_line":"            fip_ip \u003d [{\u0027ip_address\u0027: fip[\u0027floating_ip_address\u0027]}]"},{"line_number":620,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2Bzvg%3D","line":617,"in_reply_to":"AAAAWH%2F%2B0yA%3D","updated":"2014-03-24 06:32:26.000000000","message":"I don\u0027t feel you are right.\nthis naming is the same as L608 and L610.\nfloating ip is called \"fip\" almost in this class.","commit_id":"347fba4729bf76f4578e5ba347d90fb11a9f8c04"},{"author":{"_account_id":7203,"name":"yuuichi fujioka","email":"fujioka.yuuichi@gmail.com","username":"FujiokaYuuichi"},"unresolved":false,"context_lines":[{"line_number":614,"context_line":"            msg \u003d _(\"Network %s is not a valid external network\") % f_net_id"},{"line_number":615,"context_line":"            raise n_exc.BadRequest(resource\u003d\u0027floatingip\u0027, msg\u003dmsg)"},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"        fip_ip \u003d attributes.ATTR_NOT_SPECIFIED"},{"line_number":618,"context_line":"        if fip.get(\u0027floating_ip_address\u0027):"},{"line_number":619,"context_line":"            fip_ip \u003d [{\u0027ip_address\u0027: fip[\u0027floating_ip_address\u0027]}]"},{"line_number":620,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F95eQ%3D","line":617,"in_reply_to":"AAAAWH%2F%2BEu8%3D","updated":"2014-04-01 10:48:02.000000000","message":"fip_ip means floatingip\u0027s ip address. if rename it, I wan to rename to floating_ip_address.\nbut I think it is bit longer.\nshould it be renamed?\n\nabout allow choose the subnet.\nI think it is good.\nhowever, bp mentions ip address only.\nit is out of scope of this patch.","commit_id":"347fba4729bf76f4578e5ba347d90fb11a9f8c04"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"unresolved":false,"context_lines":[{"line_number":614,"context_line":"            msg \u003d _(\"Network %s is not a valid external network\") % f_net_id"},{"line_number":615,"context_line":"            raise n_exc.BadRequest(resource\u003d\u0027floatingip\u0027, msg\u003dmsg)"},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"        fip_ip \u003d attributes.ATTR_NOT_SPECIFIED"},{"line_number":618,"context_line":"        if fip.get(\u0027floating_ip_address\u0027):"},{"line_number":619,"context_line":"            fip_ip \u003d [{\u0027ip_address\u0027: fip[\u0027floating_ip_address\u0027]}]"},{"line_number":620,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2BEu8%3D","line":617,"in_reply_to":"AAAAWH%2F%2BIqQ%3D","updated":"2014-03-31 03:55:51.000000000","message":"I think we should use fixed_ips. and for it to be further thinking, why not allow users to choose the subnet they want to use, just like we do in creating port?","commit_id":"347fba4729bf76f4578e5ba347d90fb11a9f8c04"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"unresolved":false,"context_lines":[{"line_number":614,"context_line":"            msg \u003d _(\"Network %s is not a valid external network\") % f_net_id"},{"line_number":615,"context_line":"            raise n_exc.BadRequest(resource\u003d\u0027floatingip\u0027, msg\u003dmsg)"},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"        fip_ip \u003d attributes.ATTR_NOT_SPECIFIED"},{"line_number":618,"context_line":"        if fip.get(\u0027floating_ip_address\u0027):"},{"line_number":619,"context_line":"            fip_ip \u003d [{\u0027ip_address\u0027: fip[\u0027floating_ip_address\u0027]}]"},{"line_number":620,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2BIqQ%3D","line":617,"in_reply_to":"AAAAWH%2F%2Bt8Y%3D","updated":"2014-03-28 21:50:23.000000000","message":"FWIW:  I\u0027m okay with fip_ip.","commit_id":"347fba4729bf76f4578e5ba347d90fb11a9f8c04"},{"author":{"_account_id":1935,"name":"Tomoe Sugihara","email":"tomoe.sugihara@gmail.com","username":"tomoe"},"unresolved":false,"context_lines":[{"line_number":614,"context_line":"            msg \u003d _(\"Network %s is not a valid external network\") % f_net_id"},{"line_number":615,"context_line":"            raise n_exc.BadRequest(resource\u003d\u0027floatingip\u0027, msg\u003dmsg)"},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"        fip_ip \u003d attributes.ATTR_NOT_SPECIFIED"},{"line_number":618,"context_line":"        if fip.get(\u0027floating_ip_address\u0027):"},{"line_number":619,"context_line":"            fip_ip \u003d [{\u0027ip_address\u0027: fip[\u0027floating_ip_address\u0027]}]"},{"line_number":620,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2Bt8Y%3D","line":617,"in_reply_to":"AAAAWH%2F%2Bzvg%3D","updated":"2014-03-24 21:37:25.000000000","message":"This might be subjective, but L608 and L610 are using fip to mean floating ip while you\u0027re using fip for the fixed_ips field in a port data, which happens to include floating ip inside its data. That was at least confusing to me.","commit_id":"347fba4729bf76f4578e5ba347d90fb11a9f8c04"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"unresolved":false,"context_lines":[{"line_number":614,"context_line":"            msg \u003d _(\"Network %s is not a valid external network\") % f_net_id"},{"line_number":615,"context_line":"            raise n_exc.BadRequest(resource\u003d\u0027floatingip\u0027, msg\u003dmsg)"},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"        fip_ip \u003d attributes.ATTR_NOT_SPECIFIED"},{"line_number":618,"context_line":"        if fip.get(\u0027floating_ip_address\u0027):"},{"line_number":619,"context_line":"            fip_ip \u003d [{\u0027ip_address\u0027: fip[\u0027floating_ip_address\u0027]}]"},{"line_number":620,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F9os0%3D","line":617,"in_reply_to":"AAAAWH%2F95eQ%3D","updated":"2014-04-03 07:17:48.000000000","message":"Don\u0027t be limited by the BP, we can change it if needed. but make the feature more reasonable.","commit_id":"347fba4729bf76f4578e5ba347d90fb11a9f8c04"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"386b64742ad313227890b7cc4e628149aca07928","unresolved":false,"context_lines":[{"line_number":614,"context_line":"            msg \u003d _(\"Network %s is not a valid external network\") % f_net_id"},{"line_number":615,"context_line":"            raise n_exc.BadRequest(resource\u003d\u0027floatingip\u0027, msg\u003dmsg)"},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"        fip_ip \u003d attributes.ATTR_NOT_SPECIFIED"},{"line_number":618,"context_line":"        if fip.get(\u0027floating_ip_address\u0027):"},{"line_number":619,"context_line":"            fip_ip \u003d [{\u0027ip_address\u0027: fip[\u0027floating_ip_address\u0027]}]"},{"line_number":620,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAW3%2F%2Fwdg%3D","line":617,"in_reply_to":"AAAAWH%2F9YLw%3D","updated":"2014-04-10 15:44:06.000000000","message":"I agree \"fip\" is confusing.\n\nfloating_ip_address sounds reasonable. It is used at L.640 in the same meaning too and it is exactly an IP address of the floating IP being created.\n\nfixed_ips sounds odd to me as \"fixed_ips\" is used to specify an internal IP address to which the floating IP is mapped in this context.\n\nNote that if we use a singular form \"floating_ip_address\" L.619 should not be a list.","commit_id":"347fba4729bf76f4578e5ba347d90fb11a9f8c04"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"unresolved":false,"context_lines":[{"line_number":614,"context_line":"            msg \u003d _(\"Network %s is not a valid external network\") % f_net_id"},{"line_number":615,"context_line":"            raise n_exc.BadRequest(resource\u003d\u0027floatingip\u0027, msg\u003dmsg)"},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"        fip_ip \u003d attributes.ATTR_NOT_SPECIFIED"},{"line_number":618,"context_line":"        if fip.get(\u0027floating_ip_address\u0027):"},{"line_number":619,"context_line":"            fip_ip \u003d [{\u0027ip_address\u0027: fip[\u0027floating_ip_address\u0027]}]"},{"line_number":620,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F9YLw%3D","line":617,"in_reply_to":"AAAAWH%2F9ohw%3D","updated":"2014-04-04 23:40:08.000000000","message":"the patch even with subnet way is also easy and simple.","commit_id":"347fba4729bf76f4578e5ba347d90fb11a9f8c04"},{"author":{"_account_id":7203,"name":"yuuichi fujioka","email":"fujioka.yuuichi@gmail.com","username":"FujiokaYuuichi"},"unresolved":false,"context_lines":[{"line_number":614,"context_line":"            msg \u003d _(\"Network %s is not a valid external network\") % f_net_id"},{"line_number":615,"context_line":"            raise n_exc.BadRequest(resource\u003d\u0027floatingip\u0027, msg\u003dmsg)"},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"        fip_ip \u003d attributes.ATTR_NOT_SPECIFIED"},{"line_number":618,"context_line":"        if fip.get(\u0027floating_ip_address\u0027):"},{"line_number":619,"context_line":"            fip_ip \u003d [{\u0027ip_address\u0027: fip[\u0027floating_ip_address\u0027]}]"},{"line_number":620,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F9ohw%3D","line":617,"in_reply_to":"AAAAWH%2F9olk%3D","updated":"2014-04-03 07:53:59.000000000","message":"would it be better to separate the bp?","commit_id":"347fba4729bf76f4578e5ba347d90fb11a9f8c04"},{"author":{"_account_id":7203,"name":"yuuichi fujioka","email":"fujioka.yuuichi@gmail.com","username":"FujiokaYuuichi"},"unresolved":false,"context_lines":[{"line_number":614,"context_line":"            msg \u003d _(\"Network %s is not a valid external network\") % f_net_id"},{"line_number":615,"context_line":"            raise n_exc.BadRequest(resource\u003d\u0027floatingip\u0027, msg\u003dmsg)"},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"        fip_ip \u003d attributes.ATTR_NOT_SPECIFIED"},{"line_number":618,"context_line":"        if fip.get(\u0027floating_ip_address\u0027):"},{"line_number":619,"context_line":"            fip_ip \u003d [{\u0027ip_address\u0027: fip[\u0027floating_ip_address\u0027]}]"},{"line_number":620,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F9olk%3D","line":617,"in_reply_to":"AAAAWH%2F9os0%3D","updated":"2014-04-03 07:44:31.000000000","message":"I agree. I will change the bp.\n\nI want to separate the patch.\nbecause, I think this patch is very simple and easy to review.\nthis patch will become complex, if includes about allowing set subnet.\nHow do you think?","commit_id":"347fba4729bf76f4578e5ba347d90fb11a9f8c04"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"386b64742ad313227890b7cc4e628149aca07928","unresolved":false,"context_lines":[{"line_number":616,"context_line":""},{"line_number":617,"context_line":"        fip_ip \u003d attributes.ATTR_NOT_SPECIFIED"},{"line_number":618,"context_line":"        if fip.get(\u0027floating_ip_address\u0027):"},{"line_number":619,"context_line":"            fip_ip \u003d [{\u0027ip_address\u0027: fip[\u0027floating_ip_address\u0027]}]"},{"line_number":620,"context_line":""},{"line_number":621,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":622,"context_line":"            # This external port is never exposed to the tenant."}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAW3%2F%2FwZE%3D","line":619,"updated":"2014-04-10 15:44:06.000000000","message":"subnet_id needs to be specified too to avoid ambiguity.\nThe operation of L.625 is done in admin context, so if some subnet from other tenant which is not connected to the external network has overlapping IP range L.625 operation would fail.","commit_id":"347fba4729bf76f4578e5ba347d90fb11a9f8c04"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"unresolved":false,"context_lines":[{"line_number":616,"context_line":""},{"line_number":617,"context_line":"        fip_ip \u003d attributes.ATTR_NOT_SPECIFIED"},{"line_number":618,"context_line":"        if fip.get(\u0027floating_ip_address\u0027):"},{"line_number":619,"context_line":"            fip_ip \u003d [{\u0027ip_address\u0027: fip[\u0027floating_ip_address\u0027]}]"},{"line_number":620,"context_line":""},{"line_number":621,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":622,"context_line":"            # This external port is never exposed to the tenant."}],"source_content_type":"text/x-python","patch_set":6,"id":"bad4c104_832b83ea","line":619,"in_reply_to":"AAAAW3%2F%2FwZE%3D","updated":"2014-04-29 21:33:48.000000000","message":"It does specify network_id which will avoid the ambiguity.","commit_id":"347fba4729bf76f4578e5ba347d90fb11a9f8c04"}],"neutron/tests/unit/test_l3_plugin.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"cab4f5296d52b7f6886390a7b296d62ed88d5348","unresolved":false,"context_lines":[{"line_number":1583,"context_line":"                                              s[\u0027subnet\u0027][\u0027id\u0027],"},{"line_number":1584,"context_line":"                                              None)"},{"line_number":1585,"context_line":""},{"line_number":1586,"context_line":"    def test_floatingip_with_specific_ip(self):"},{"line_number":1587,"context_line":"        with self.subnet(cidr\u003d\u002710.0.0.0/24\u0027) as s1:"},{"line_number":1588,"context_line":"            network_id1 \u003d s1[\u0027subnet\u0027][\u0027network_id\u0027]"},{"line_number":1589,"context_line":"            self._set_net_external(network_id1)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F93cQ%3D","line":1586,"updated":"2014-02-03 06:57:55.000000000","message":"test_create_floatingip_xxxx","commit_id":"1c574a4b7c5f78cace53772c07f5270c68034722"},{"author":{"_account_id":7203,"name":"yuuichi fujioka","email":"fujioka.yuuichi@gmail.com","username":"FujiokaYuuichi"},"change_message_id":"2172fc49ac1884fe214197f9d1c8d3c76130cfd9","unresolved":false,"context_lines":[{"line_number":1583,"context_line":"                                              s[\u0027subnet\u0027][\u0027id\u0027],"},{"line_number":1584,"context_line":"                                              None)"},{"line_number":1585,"context_line":""},{"line_number":1586,"context_line":"    def test_floatingip_with_specific_ip(self):"},{"line_number":1587,"context_line":"        with self.subnet(cidr\u003d\u002710.0.0.0/24\u0027) as s1:"},{"line_number":1588,"context_line":"            network_id1 \u003d s1[\u0027subnet\u0027][\u0027network_id\u0027]"},{"line_number":1589,"context_line":"            self._set_net_external(network_id1)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9yHY%3D","line":1586,"in_reply_to":"AAAAUH%2F93cQ%3D","updated":"2014-02-04 01:36:40.000000000","message":"Done","commit_id":"1c574a4b7c5f78cace53772c07f5270c68034722"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"cab4f5296d52b7f6886390a7b296d62ed88d5348","unresolved":false,"context_lines":[{"line_number":1584,"context_line":"                                              None)"},{"line_number":1585,"context_line":""},{"line_number":1586,"context_line":"    def test_floatingip_with_specific_ip(self):"},{"line_number":1587,"context_line":"        with self.subnet(cidr\u003d\u002710.0.0.0/24\u0027) as s1:"},{"line_number":1588,"context_line":"            network_id1 \u003d s1[\u0027subnet\u0027][\u0027network_id\u0027]"},{"line_number":1589,"context_line":"            self._set_net_external(network_id1)"},{"line_number":1590,"context_line":"            fp1 \u003d self._make_floatingip(self.fmt, network_id1,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F93cY%3D","line":1587,"updated":"2014-02-03 06:57:55.000000000","message":"Why do you use \"s1\" instead of \"s\"? Only one subnet is used in this test case. In other places, \"s\" is used in such case.","commit_id":"1c574a4b7c5f78cace53772c07f5270c68034722"},{"author":{"_account_id":7203,"name":"yuuichi fujioka","email":"fujioka.yuuichi@gmail.com","username":"FujiokaYuuichi"},"change_message_id":"2172fc49ac1884fe214197f9d1c8d3c76130cfd9","unresolved":false,"context_lines":[{"line_number":1584,"context_line":"                                              None)"},{"line_number":1585,"context_line":""},{"line_number":1586,"context_line":"    def test_floatingip_with_specific_ip(self):"},{"line_number":1587,"context_line":"        with self.subnet(cidr\u003d\u002710.0.0.0/24\u0027) as s1:"},{"line_number":1588,"context_line":"            network_id1 \u003d s1[\u0027subnet\u0027][\u0027network_id\u0027]"},{"line_number":1589,"context_line":"            self._set_net_external(network_id1)"},{"line_number":1590,"context_line":"            fp1 \u003d self._make_floatingip(self.fmt, network_id1,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9yHU%3D","line":1587,"in_reply_to":"AAAAUH%2F93cY%3D","updated":"2014-02-04 01:36:40.000000000","message":"Done","commit_id":"1c574a4b7c5f78cace53772c07f5270c68034722"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"cab4f5296d52b7f6886390a7b296d62ed88d5348","unresolved":false,"context_lines":[{"line_number":1585,"context_line":""},{"line_number":1586,"context_line":"    def test_floatingip_with_specific_ip(self):"},{"line_number":1587,"context_line":"        with self.subnet(cidr\u003d\u002710.0.0.0/24\u0027) as s1:"},{"line_number":1588,"context_line":"            network_id1 \u003d s1[\u0027subnet\u0027][\u0027network_id\u0027]"},{"line_number":1589,"context_line":"            self._set_net_external(network_id1)"},{"line_number":1590,"context_line":"            fp1 \u003d self._make_floatingip(self.fmt, network_id1,"},{"line_number":1591,"context_line":"                                        floating_ip\u003d\u002710.0.0.10\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F93cU%3D","line":1588,"updated":"2014-02-03 06:57:55.000000000","message":"ditto","commit_id":"1c574a4b7c5f78cace53772c07f5270c68034722"},{"author":{"_account_id":7203,"name":"yuuichi fujioka","email":"fujioka.yuuichi@gmail.com","username":"FujiokaYuuichi"},"change_message_id":"2172fc49ac1884fe214197f9d1c8d3c76130cfd9","unresolved":false,"context_lines":[{"line_number":1585,"context_line":""},{"line_number":1586,"context_line":"    def test_floatingip_with_specific_ip(self):"},{"line_number":1587,"context_line":"        with self.subnet(cidr\u003d\u002710.0.0.0/24\u0027) as s1:"},{"line_number":1588,"context_line":"            network_id1 \u003d s1[\u0027subnet\u0027][\u0027network_id\u0027]"},{"line_number":1589,"context_line":"            self._set_net_external(network_id1)"},{"line_number":1590,"context_line":"            fp1 \u003d self._make_floatingip(self.fmt, network_id1,"},{"line_number":1591,"context_line":"                                        floating_ip\u003d\u002710.0.0.10\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9yHQ%3D","line":1588,"in_reply_to":"AAAAUH%2F93cU%3D","updated":"2014-02-04 01:36:40.000000000","message":"Done","commit_id":"1c574a4b7c5f78cace53772c07f5270c68034722"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"cab4f5296d52b7f6886390a7b296d62ed88d5348","unresolved":false,"context_lines":[{"line_number":1595,"context_line":"            finally:"},{"line_number":1596,"context_line":"                self._delete(\u0027floatingips\u0027, fp1[\u0027floatingip\u0027][\u0027id\u0027])"},{"line_number":1597,"context_line":""},{"line_number":1598,"context_line":"    def test_floatingip_with_specific_ip_none_admin(self):"},{"line_number":1599,"context_line":"        cxt \u003d context.Context(\u0027user_id\u0027, \u0027tenant_id\u0027)"},{"line_number":1600,"context_line":""},{"line_number":1601,"context_line":"        with self.subnet(cidr\u003d\u002710.0.0.0/24\u0027) as s1:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F93cg%3D","line":1598,"updated":"2014-02-03 06:57:55.000000000","message":"test_floatingip -\u003e test_create_floatingip\nnone_admin -\u003e non_admin","commit_id":"1c574a4b7c5f78cace53772c07f5270c68034722"},{"author":{"_account_id":7203,"name":"yuuichi fujioka","email":"fujioka.yuuichi@gmail.com","username":"FujiokaYuuichi"},"change_message_id":"2172fc49ac1884fe214197f9d1c8d3c76130cfd9","unresolved":false,"context_lines":[{"line_number":1595,"context_line":"            finally:"},{"line_number":1596,"context_line":"                self._delete(\u0027floatingips\u0027, fp1[\u0027floatingip\u0027][\u0027id\u0027])"},{"line_number":1597,"context_line":""},{"line_number":1598,"context_line":"    def test_floatingip_with_specific_ip_none_admin(self):"},{"line_number":1599,"context_line":"        cxt \u003d context.Context(\u0027user_id\u0027, \u0027tenant_id\u0027)"},{"line_number":1600,"context_line":""},{"line_number":1601,"context_line":"        with self.subnet(cidr\u003d\u002710.0.0.0/24\u0027) as s1:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9yGM%3D","line":1598,"in_reply_to":"AAAAUH%2F93cg%3D","updated":"2014-02-04 01:36:40.000000000","message":"Done","commit_id":"1c574a4b7c5f78cace53772c07f5270c68034722"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"cab4f5296d52b7f6886390a7b296d62ed88d5348","unresolved":false,"context_lines":[{"line_number":1596,"context_line":"                self._delete(\u0027floatingips\u0027, fp1[\u0027floatingip\u0027][\u0027id\u0027])"},{"line_number":1597,"context_line":""},{"line_number":1598,"context_line":"    def test_floatingip_with_specific_ip_none_admin(self):"},{"line_number":1599,"context_line":"        cxt \u003d context.Context(\u0027user_id\u0027, \u0027tenant_id\u0027)"},{"line_number":1600,"context_line":""},{"line_number":1601,"context_line":"        with self.subnet(cidr\u003d\u002710.0.0.0/24\u0027) as s1:"},{"line_number":1602,"context_line":"            network_id1 \u003d s1[\u0027subnet\u0027][\u0027network_id\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F93cc%3D","line":1599,"updated":"2014-02-03 06:57:55.000000000","message":"\"ctx\" is used in other places. It is better to use the same variable name in a single module.","commit_id":"1c574a4b7c5f78cace53772c07f5270c68034722"},{"author":{"_account_id":7203,"name":"yuuichi fujioka","email":"fujioka.yuuichi@gmail.com","username":"FujiokaYuuichi"},"change_message_id":"2172fc49ac1884fe214197f9d1c8d3c76130cfd9","unresolved":false,"context_lines":[{"line_number":1596,"context_line":"                self._delete(\u0027floatingips\u0027, fp1[\u0027floatingip\u0027][\u0027id\u0027])"},{"line_number":1597,"context_line":""},{"line_number":1598,"context_line":"    def test_floatingip_with_specific_ip_none_admin(self):"},{"line_number":1599,"context_line":"        cxt \u003d context.Context(\u0027user_id\u0027, \u0027tenant_id\u0027)"},{"line_number":1600,"context_line":""},{"line_number":1601,"context_line":"        with self.subnet(cidr\u003d\u002710.0.0.0/24\u0027) as s1:"},{"line_number":1602,"context_line":"            network_id1 \u003d s1[\u0027subnet\u0027][\u0027network_id\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9yGQ%3D","line":1599,"in_reply_to":"AAAAUH%2F93cc%3D","updated":"2014-02-04 01:36:40.000000000","message":"Done","commit_id":"1c574a4b7c5f78cace53772c07f5270c68034722"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"cab4f5296d52b7f6886390a7b296d62ed88d5348","unresolved":false,"context_lines":[{"line_number":1607,"context_line":"                                        http_status\u003dexc.HTTPForbidden.code)"},{"line_number":1608,"context_line":""},{"line_number":1609,"context_line":"            msg \u003d \"Policy doesn\u0027t allow create_floatingip to be performed\""},{"line_number":1610,"context_line":"            self.assertIn(msg, fp1[\u0027NeutronError\u0027][\u0027message\u0027])"},{"line_number":1611,"context_line":""},{"line_number":1612,"context_line":"    def test_floatingip_with_specific_ip_out_of_subnet(self):"},{"line_number":1613,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F93b8%3D","line":1610,"updated":"2014-02-03 06:57:55.000000000","message":"can\u0027t we use assertEqual?","commit_id":"1c574a4b7c5f78cace53772c07f5270c68034722"},{"author":{"_account_id":7203,"name":"yuuichi fujioka","email":"fujioka.yuuichi@gmail.com","username":"FujiokaYuuichi"},"change_message_id":"2172fc49ac1884fe214197f9d1c8d3c76130cfd9","unresolved":false,"context_lines":[{"line_number":1607,"context_line":"                                        http_status\u003dexc.HTTPForbidden.code)"},{"line_number":1608,"context_line":""},{"line_number":1609,"context_line":"            msg \u003d \"Policy doesn\u0027t allow create_floatingip to be performed\""},{"line_number":1610,"context_line":"            self.assertIn(msg, fp1[\u0027NeutronError\u0027][\u0027message\u0027])"},{"line_number":1611,"context_line":""},{"line_number":1612,"context_line":"    def test_floatingip_with_specific_ip_out_of_subnet(self):"},{"line_number":1613,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9yHc%3D","line":1610,"in_reply_to":"AAAAUH%2F93b8%3D","updated":"2014-02-04 01:36:40.000000000","message":"Done","commit_id":"1c574a4b7c5f78cace53772c07f5270c68034722"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"cab4f5296d52b7f6886390a7b296d62ed88d5348","unresolved":false,"context_lines":[{"line_number":1609,"context_line":"            msg \u003d \"Policy doesn\u0027t allow create_floatingip to be performed\""},{"line_number":1610,"context_line":"            self.assertIn(msg, fp1[\u0027NeutronError\u0027][\u0027message\u0027])"},{"line_number":1611,"context_line":""},{"line_number":1612,"context_line":"    def test_floatingip_with_specific_ip_out_of_subnet(self):"},{"line_number":1613,"context_line":""},{"line_number":1614,"context_line":"        with self.subnet(cidr\u003d\u002710.0.0.0/24\u0027) as s1:"},{"line_number":1615,"context_line":"            network_id1 \u003d s1[\u0027subnet\u0027][\u0027network_id\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F93cM%3D","line":1612,"updated":"2014-02-03 06:57:55.000000000","message":"same as the above","commit_id":"1c574a4b7c5f78cace53772c07f5270c68034722"},{"author":{"_account_id":7203,"name":"yuuichi fujioka","email":"fujioka.yuuichi@gmail.com","username":"FujiokaYuuichi"},"change_message_id":"2172fc49ac1884fe214197f9d1c8d3c76130cfd9","unresolved":false,"context_lines":[{"line_number":1609,"context_line":"            msg \u003d \"Policy doesn\u0027t allow create_floatingip to be performed\""},{"line_number":1610,"context_line":"            self.assertIn(msg, fp1[\u0027NeutronError\u0027][\u0027message\u0027])"},{"line_number":1611,"context_line":""},{"line_number":1612,"context_line":"    def test_floatingip_with_specific_ip_out_of_subnet(self):"},{"line_number":1613,"context_line":""},{"line_number":1614,"context_line":"        with self.subnet(cidr\u003d\u002710.0.0.0/24\u0027) as s1:"},{"line_number":1615,"context_line":"            network_id1 \u003d s1[\u0027subnet\u0027][\u0027network_id\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F9yHM%3D","line":1612,"in_reply_to":"AAAAUH%2F93cM%3D","updated":"2014-02-04 01:36:40.000000000","message":"Done","commit_id":"1c574a4b7c5f78cace53772c07f5270c68034722"},{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"unresolved":false,"context_lines":[{"line_number":1810,"context_line":"                self._delete(\u0027floatingips\u0027, fp1[\u0027floatingip\u0027][\u0027id\u0027])"},{"line_number":1811,"context_line":""},{"line_number":1812,"context_line":"    def test_create_floatingip_with_specific_subnet(self):"},{"line_number":1813,"context_line":"        if not self.allow_multi_subnet_per_ext_net:"},{"line_number":1814,"context_line":"            return"},{"line_number":1815,"context_line":"        with self.network() as n:"},{"line_number":1816,"context_line":"            with self.subnet(network\u003dn, cidr\u003d\u002710.0.0.0/24\u0027) as s:"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a890539_6c82a195","line":1813,"updated":"2014-11-13 14:59:26.000000000","message":"self.skipTest()","commit_id":"d3192ef2e5db67bfc9bb6318f5b2662a4cf5bd87"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":1828,"context_line":"                                       floating_ip\u003d\u002710.0.0.10\u0027,"},{"line_number":1829,"context_line":"                                       http_status\u003dexc.HTTPForbidden.code)"},{"line_number":1830,"context_line":""},{"line_number":1831,"context_line":"            msg \u003d (\"Policy doesn\u0027t allow (rule:create_floatingip and \""},{"line_number":1832,"context_line":"                   \"rule:create_floatingip:floating_ip_address)\""},{"line_number":1833,"context_line":"                   \" to be performed.\")"},{"line_number":1834,"context_line":"            self.assertEqual(msg, fp[\u0027NeutronError\u0027][\u0027message\u0027])"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a961159_06ae4b81","line":1831,"updated":"2014-12-19 02:16:59.000000000","message":"I think we only want to validate the HTTP response codes.  The contents of the error messages may change over time making these Unit Tests fragile.","commit_id":"d3d98ce47e8454ad640b9836090cfd0643a13254"},{"author":{"_account_id":7203,"name":"yuuichi fujioka","email":"fujioka.yuuichi@gmail.com","username":"FujiokaYuuichi"},"unresolved":false,"context_lines":[{"line_number":1828,"context_line":"                                       floating_ip\u003d\u002710.0.0.10\u0027,"},{"line_number":1829,"context_line":"                                       http_status\u003dexc.HTTPForbidden.code)"},{"line_number":1830,"context_line":""},{"line_number":1831,"context_line":"            msg \u003d (\"Policy doesn\u0027t allow (rule:create_floatingip and \""},{"line_number":1832,"context_line":"                   \"rule:create_floatingip:floating_ip_address)\""},{"line_number":1833,"context_line":"                   \" to be performed.\")"},{"line_number":1834,"context_line":"            self.assertEqual(msg, fp[\u0027NeutronError\u0027][\u0027message\u0027])"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a961159_c6bd236a","line":1831,"in_reply_to":"3a961159_06ae4b81","updated":"2014-12-19 02:25:01.000000000","message":"Done","commit_id":"d3d98ce47e8454ad640b9836090cfd0643a13254"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":1842,"context_line":"                                       floating_ip\u003d\u002710.0.1.10\u0027,"},{"line_number":1843,"context_line":"                                       http_status\u003dexc.HTTPBadRequest.code)"},{"line_number":1844,"context_line":""},{"line_number":1845,"context_line":"            msg \u003d (\u0027Invalid input for operation: \u0027"},{"line_number":1846,"context_line":"                   \u0027IP address 10.0.1.10 is not a valid IP for \u0027"},{"line_number":1847,"context_line":"                   \u0027the defined networks subnets.\u0027)"},{"line_number":1848,"context_line":"            self.assertEqual(msg, fp[\u0027NeutronError\u0027][\u0027message\u0027])"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a961159_464053a5","line":1845,"updated":"2014-12-19 02:16:59.000000000","message":"same as above","commit_id":"d3d98ce47e8454ad640b9836090cfd0643a13254"},{"author":{"_account_id":7203,"name":"yuuichi fujioka","email":"fujioka.yuuichi@gmail.com","username":"FujiokaYuuichi"},"unresolved":false,"context_lines":[{"line_number":1842,"context_line":"                                       floating_ip\u003d\u002710.0.1.10\u0027,"},{"line_number":1843,"context_line":"                                       http_status\u003dexc.HTTPBadRequest.code)"},{"line_number":1844,"context_line":""},{"line_number":1845,"context_line":"            msg \u003d (\u0027Invalid input for operation: \u0027"},{"line_number":1846,"context_line":"                   \u0027IP address 10.0.1.10 is not a valid IP for \u0027"},{"line_number":1847,"context_line":"                   \u0027the defined networks subnets.\u0027)"},{"line_number":1848,"context_line":"            self.assertEqual(msg, fp[\u0027NeutronError\u0027][\u0027message\u0027])"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a961159_06b48b80","line":1845,"in_reply_to":"3a961159_464053a5","updated":"2014-12-19 02:25:01.000000000","message":"Done","commit_id":"d3d98ce47e8454ad640b9836090cfd0643a13254"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"unresolved":false,"context_lines":[{"line_number":1860,"context_line":"                                            floating_ip\u003d\u002710.0.0.10\u0027,"},{"line_number":1861,"context_line":"                                            http_status\u003dexc.HTTPConflict.code)"},{"line_number":1862,"context_line":""},{"line_number":1863,"context_line":"                msg \u003d (\u0027Unable to complete operation for network %s. \u0027"},{"line_number":1864,"context_line":"                       \u0027The IP address 10.0.0.10 is in use.\u0027 % (network_id))"},{"line_number":1865,"context_line":"                self.assertEqual(msg, fp2[\u0027NeutronError\u0027][\u0027message\u0027])"},{"line_number":1866,"context_line":"            finally:"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a961159_2638a73c","line":1863,"updated":"2014-12-19 02:16:59.000000000","message":"same as above","commit_id":"d3d98ce47e8454ad640b9836090cfd0643a13254"},{"author":{"_account_id":7203,"name":"yuuichi fujioka","email":"fujioka.yuuichi@gmail.com","username":"FujiokaYuuichi"},"unresolved":false,"context_lines":[{"line_number":1860,"context_line":"                                            floating_ip\u003d\u002710.0.0.10\u0027,"},{"line_number":1861,"context_line":"                                            http_status\u003dexc.HTTPConflict.code)"},{"line_number":1862,"context_line":""},{"line_number":1863,"context_line":"                msg \u003d (\u0027Unable to complete operation for network %s. \u0027"},{"line_number":1864,"context_line":"                       \u0027The IP address 10.0.0.10 is in use.\u0027 % (network_id))"},{"line_number":1865,"context_line":"                self.assertEqual(msg, fp2[\u0027NeutronError\u0027][\u0027message\u0027])"},{"line_number":1866,"context_line":"            finally:"}],"source_content_type":"text/x-python","patch_set":15,"id":"3a961159_46b1338e","line":1863,"in_reply_to":"3a961159_2638a73c","updated":"2014-12-19 02:25:01.000000000","message":"Done","commit_id":"d3d98ce47e8454ad640b9836090cfd0643a13254"}]}
