)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"4c5aed4db6c29440081b52d420df41b2d8419854","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Avishay Balderman \u003cavishayb@radware.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-07-29 18:20:08 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Radware LBaaS driver create extra Neutron Ports"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I769a9d85e217b30a1ea4d09449ff39bf1ab23c5a"},{"line_number":10,"context_line":"Closes-bug: #1349895"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"baada198_6d364cea","line":7,"updated":"2014-07-30 07:47:20.000000000","message":"this description sounds like a bug, not a fix. Please rephrase to describe the fix","commit_id":"5dff8c7b8898862ca313873bc3049131dbd3506c"},{"author":{"_account_id":6447,"name":"Avishay Balderman","email":"avishayb@radware.com","username":"avishayb"},"change_message_id":"07667fed277de1ad718de03ff2d6ca304204ae24","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Avishay Balderman \u003cavishayb@radware.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-07-29 18:20:08 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Radware LBaaS driver create extra Neutron Ports"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I769a9d85e217b30a1ea4d09449ff39bf1ab23c5a"},{"line_number":10,"context_line":"Closes-bug: #1349895"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"baada198_ad4a24ab","line":7,"in_reply_to":"baada198_6d364cea","updated":"2014-07-30 13:19:57.000000000","message":"OK","commit_id":"5dff8c7b8898862ca313873bc3049131dbd3506c"},{"author":{"_account_id":1923,"name":"Mohammad Banikazemi","email":"mbanikazemi@gmail.com","username":"mb-s"},"change_message_id":"bc6f1101fb1abab7b3a06f99dddd3d4046c9503c","unresolved":false,"context_lines":[{"line_number":7,"context_line":"When a pip is needed, reuse the Neutron Port"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When a pip is needed by the driver, do not create"},{"line_number":10,"context_line":"a new Port every time a pip is needed. Reuse the"},{"line_number":11,"context_line":"an existing Port."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I769a9d85e217b30a1ea4d09449ff39bf1ab23c5a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"baada198_3aaab971","line":10,"updated":"2014-07-30 14:31:47.000000000","message":"reuse ----the---- an existing port.","commit_id":"e3df41ada07846befe1c010f9f4deb693e39521e"},{"author":{"_account_id":6447,"name":"Avishay Balderman","email":"avishayb@radware.com","username":"avishayb"},"change_message_id":"4312ff917c4cd495c0b3f7be21a0e301e6495d70","unresolved":false,"context_lines":[{"line_number":7,"context_line":"When a pip is needed, reuse the Neutron Port"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When a pip is needed by the driver, do not create"},{"line_number":10,"context_line":"a new Port every time a pip is needed. Reuse the"},{"line_number":11,"context_line":"an existing Port."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I769a9d85e217b30a1ea4d09449ff39bf1ab23c5a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"baada198_77c7c346","line":10,"in_reply_to":"baada198_3aaab971","updated":"2014-07-31 11:31:23.000000000","message":"Done","commit_id":"e3df41ada07846befe1c010f9f4deb693e39521e"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"248fda87fb26dfaad9fc3c40b06d5e7804e3661c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Avishay Balderman \u003cavishayb@radware.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-07-31 14:30:28 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"When a pip is needed, reuse the Neutron Port"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When a pip is needed by the driver, do not create"},{"line_number":10,"context_line":"a new Port every time a pip is needed. Reuse the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"baada198_a8e72045","line":7,"updated":"2014-08-01 03:41:30.000000000","message":"It is better to mention it is specific to radware in the summary, at least in the commit message. For example:\n\n  Radware: When a pip is needed, .....\n\nIt would help us to look git logs and gerrit review.","commit_id":"57d179c3fbbbfaf3647021e23755a339778ed793"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"c8e57d4168346717a6e1ce05bcf9af1789bac971","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Avishay Balderman \u003cavishayb@radware.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-07-31 14:30:28 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"When a pip is needed, reuse the Neutron Port"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When a pip is needed by the driver, do not create"},{"line_number":10,"context_line":"a new Port every time a pip is needed. Reuse the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"baada198_aca46207","line":7,"in_reply_to":"baada198_a8e72045","updated":"2014-08-02 21:17:32.000000000","message":"It might also be helpful to mention what \"pip\" stands for; would facilitate a more informed review.","commit_id":"57d179c3fbbbfaf3647021e23755a339778ed793"},{"author":{"_account_id":6447,"name":"Avishay Balderman","email":"avishayb@radware.com","username":"avishayb"},"change_message_id":"dfdb0593bda69b7413128c6b67b10b5d467b86c1","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Avishay Balderman \u003cavishayb@radware.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-07-31 14:30:28 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"When a pip is needed, reuse the Neutron Port"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When a pip is needed by the driver, do not create"},{"line_number":10,"context_line":"a new Port every time a pip is needed. Reuse the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"baada198_531fde08","line":7,"in_reply_to":"baada198_a8e72045","updated":"2014-08-03 10:46:41.000000000","message":"OK","commit_id":"57d179c3fbbbfaf3647021e23755a339778ed793"},{"author":{"_account_id":6447,"name":"Avishay Balderman","email":"avishayb@radware.com","username":"avishayb"},"change_message_id":"dfdb0593bda69b7413128c6b67b10b5d467b86c1","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Avishay Balderman \u003cavishayb@radware.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-07-31 14:30:28 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"When a pip is needed, reuse the Neutron Port"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When a pip is needed by the driver, do not create"},{"line_number":10,"context_line":"a new Port every time a pip is needed. Reuse the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"baada198_731a2219","line":7,"in_reply_to":"baada198_aca46207","updated":"2014-08-03 10:46:41.000000000","message":"OK","commit_id":"57d179c3fbbbfaf3647021e23755a339778ed793"}],"neutron/services/loadbalancer/drivers/radware/driver.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"4c5aed4db6c29440081b52d420df41b2d8419854","unresolved":false,"context_lines":[{"line_number":614,"context_line":"                raise r_exc.WorkflowMissing(workflow\u003dwf)"},{"line_number":615,"context_line":"        self.workflow_templates_exists \u003d True"},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"    def _create_or_get_port_for_pip(self, context, tenant_id, port_name,"},{"line_number":618,"context_line":"                                    network_id, subnet_id):"},{"line_number":619,"context_line":"        \"\"\"Creates or get port on network_id, returns that port\u0027s IP"},{"line_number":620,"context_line":"        on the subnet_id."}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_0d4f906b","line":617,"updated":"2014-07-30 07:47:20.000000000","message":"nit: consider _ensure_port_for_pip","commit_id":"5dff8c7b8898862ca313873bc3049131dbd3506c"},{"author":{"_account_id":6447,"name":"Avishay Balderman","email":"avishayb@radware.com","username":"avishayb"},"change_message_id":"07667fed277de1ad718de03ff2d6ca304204ae24","unresolved":false,"context_lines":[{"line_number":614,"context_line":"                raise r_exc.WorkflowMissing(workflow\u003dwf)"},{"line_number":615,"context_line":"        self.workflow_templates_exists \u003d True"},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"    def _create_or_get_port_for_pip(self, context, tenant_id, port_name,"},{"line_number":618,"context_line":"                                    network_id, subnet_id):"},{"line_number":619,"context_line":"        \"\"\"Creates or get port on network_id, returns that port\u0027s IP"},{"line_number":620,"context_line":"        on the subnet_id."}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_09d5b946","line":617,"in_reply_to":"baada198_0d4f906b","updated":"2014-07-30 13:19:57.000000000","message":"I think about a diffrent name \u0027_get_pip\u0027\nThis is a good description of this method because the only thing the caller care about is the IP address that the function return","commit_id":"5dff8c7b8898862ca313873bc3049131dbd3506c"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"4c5aed4db6c29440081b52d420df41b2d8419854","unresolved":false,"context_lines":[{"line_number":621,"context_line":"        \"\"\""},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"        port_filter \u003d {"},{"line_number":624,"context_line":"            \u0027name\u0027: [port_name],"},{"line_number":625,"context_line":"        }"},{"line_number":626,"context_line":"        ports \u003d self.plugin._core_plugin.get_ports(context,"},{"line_number":627,"context_line":"                                                   filters\u003dport_filter)"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_cd5bd820","line":624,"updated":"2014-07-30 07:47:20.000000000","message":"consider adding network_id to the filter as well","commit_id":"5dff8c7b8898862ca313873bc3049131dbd3506c"},{"author":{"_account_id":6447,"name":"Avishay Balderman","email":"avishayb@radware.com","username":"avishayb"},"change_message_id":"07667fed277de1ad718de03ff2d6ca304204ae24","unresolved":false,"context_lines":[{"line_number":621,"context_line":"        \"\"\""},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"        port_filter \u003d {"},{"line_number":624,"context_line":"            \u0027name\u0027: [port_name],"},{"line_number":625,"context_line":"        }"},{"line_number":626,"context_line":"        ports \u003d self.plugin._core_plugin.get_ports(context,"},{"line_number":627,"context_line":"                                                   filters\u003dport_filter)"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_49b6d126","line":624,"in_reply_to":"baada198_cd5bd820","updated":"2014-07-30 13:19:57.000000000","message":"The port_name is a unique identifier, so i dont think there is a need to add the network id","commit_id":"5dff8c7b8898862ca313873bc3049131dbd3506c"},{"author":{"_account_id":1923,"name":"Mohammad Banikazemi","email":"mbanikazemi@gmail.com","username":"mb-s"},"change_message_id":"bc6f1101fb1abab7b3a06f99dddd3d4046c9503c","unresolved":false,"context_lines":[{"line_number":199,"context_line":"            pip_address \u003d self._get_pip("},{"line_number":200,"context_line":"                context,"},{"line_number":201,"context_line":"                vip[\u0027tenant_id\u0027],"},{"line_number":202,"context_line":"                _make_pip_name_from_vip(vip),"},{"line_number":203,"context_line":"                pool_network_id,"},{"line_number":204,"context_line":"                ext_vip[\u0027pool\u0027][\u0027subnet_id\u0027])"},{"line_number":205,"context_line":"            ext_vip[\u0027pip_address\u0027] \u003d pip_address"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_5afbedbd","line":202,"updated":"2014-07-30 14:31:47.000000000","message":"It looks like if by chance a port was crated with a name like what the above produces, then there will a problem as the port will be assumed to be a pip port while it is not. Wouldn\u0027t you need to keep track of the pip ports you create in a more reliable way? Currently these names are what is being used to retrieve them not their uuids.","commit_id":"e3df41ada07846befe1c010f9f4deb693e39521e"},{"author":{"_account_id":6447,"name":"Avishay Balderman","email":"avishayb@radware.com","username":"avishayb"},"change_message_id":"7c45471a782600d6593765b7c3e6687e1b0570f2","unresolved":false,"context_lines":[{"line_number":199,"context_line":"            pip_address \u003d self._get_pip("},{"line_number":200,"context_line":"                context,"},{"line_number":201,"context_line":"                vip[\u0027tenant_id\u0027],"},{"line_number":202,"context_line":"                _make_pip_name_from_vip(vip),"},{"line_number":203,"context_line":"                pool_network_id,"},{"line_number":204,"context_line":"                ext_vip[\u0027pool\u0027][\u0027subnet_id\u0027])"},{"line_number":205,"context_line":"            ext_vip[\u0027pip_address\u0027] \u003d pip_address"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_37a38b01","line":202,"in_reply_to":"baada198_5afbedbd","updated":"2014-07-31 11:29:14.000000000","message":"There is no chance that this will happen bacuae the name contains the VIP uuid","commit_id":"e3df41ada07846befe1c010f9f4deb693e39521e"},{"author":{"_account_id":1923,"name":"Mohammad Banikazemi","email":"mbanikazemi@gmail.com","username":"mb-s"},"change_message_id":"bc6f1101fb1abab7b3a06f99dddd3d4046c9503c","unresolved":false,"context_lines":[{"line_number":617,"context_line":"    def _get_pip(self, context, tenant_id, port_name,"},{"line_number":618,"context_line":"                                    network_id, subnet_id):"},{"line_number":619,"context_line":"        \"\"\"Creates or get port on network_id, returns that port\u0027s IP"},{"line_number":620,"context_line":"        on the subnet_id."},{"line_number":621,"context_line":"        \"\"\""},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"        port_filter \u003d {"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_af792d84","line":620,"updated":"2014-07-30 14:31:47.000000000","message":"Please follow the guideline here: http://docs.openstack.org/developer/hacking/#docstrings","commit_id":"e3df41ada07846befe1c010f9f4deb693e39521e"},{"author":{"_account_id":6447,"name":"Avishay Balderman","email":"avishayb@radware.com","username":"avishayb"},"change_message_id":"7c45471a782600d6593765b7c3e6687e1b0570f2","unresolved":false,"context_lines":[{"line_number":617,"context_line":"    def _get_pip(self, context, tenant_id, port_name,"},{"line_number":618,"context_line":"                                    network_id, subnet_id):"},{"line_number":619,"context_line":"        \"\"\"Creates or get port on network_id, returns that port\u0027s IP"},{"line_number":620,"context_line":"        on the subnet_id."},{"line_number":621,"context_line":"        \"\"\""},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"        port_filter \u003d {"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_1738479e","line":620,"in_reply_to":"baada198_af792d84","updated":"2014-07-31 11:29:14.000000000","message":"Done","commit_id":"e3df41ada07846befe1c010f9f4deb693e39521e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"bfc77c368f913f66444959605c18886d914cd54a","unresolved":false,"context_lines":[{"line_number":648,"context_line":"        match_ports \u003d [ip for ip in port[\u0027fixed_ips\u0027]"},{"line_number":649,"context_line":"                       if ip[\u0027subnet_id\u0027] \u003d\u003d subnet_id]"},{"line_number":650,"context_line":"        if not match_ports:"},{"line_number":651,"context_line":"            raise Exception(_(\u0027Could not find or allocate\u0027"},{"line_number":652,"context_line":"                              \u0027IP address for subnet id %s\u0027),"},{"line_number":653,"context_line":"                            subnet_id)"},{"line_number":654,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_167f14e0","line":651,"updated":"2014-08-03 14:13:33.000000000","message":"minor not - please add in a space","commit_id":"f65fcb9d885fc23b1df3a882f73cdd6eb1f3609c"},{"author":{"_account_id":6447,"name":"Avishay Balderman","email":"avishayb@radware.com","username":"avishayb"},"change_message_id":"7f208e7110511d59f8e004e8538729eea2608790","unresolved":false,"context_lines":[{"line_number":648,"context_line":"        match_ports \u003d [ip for ip in port[\u0027fixed_ips\u0027]"},{"line_number":649,"context_line":"                       if ip[\u0027subnet_id\u0027] \u003d\u003d subnet_id]"},{"line_number":650,"context_line":"        if not match_ports:"},{"line_number":651,"context_line":"            raise Exception(_(\u0027Could not find or allocate\u0027"},{"line_number":652,"context_line":"                              \u0027IP address for subnet id %s\u0027),"},{"line_number":653,"context_line":"                            subnet_id)"},{"line_number":654,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_76d5b0b5","line":651,"in_reply_to":"baada198_167f14e0","updated":"2014-08-03 14:20:27.000000000","message":"OK","commit_id":"f65fcb9d885fc23b1df3a882f73cdd6eb1f3609c"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"bfc77c368f913f66444959605c18886d914cd54a","unresolved":false,"context_lines":[{"line_number":649,"context_line":"                       if ip[\u0027subnet_id\u0027] \u003d\u003d subnet_id]"},{"line_number":650,"context_line":"        if not match_ports:"},{"line_number":651,"context_line":"            raise Exception(_(\u0027Could not find or allocate\u0027"},{"line_number":652,"context_line":"                              \u0027IP address for subnet id %s\u0027),"},{"line_number":653,"context_line":"                            subnet_id)"},{"line_number":654,"context_line":"        else:"},{"line_number":655,"context_line":"            return match_ports[0][\u0027ip_address\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_368258c7","line":652,"updated":"2014-08-03 14:13:33.000000000","message":"any reason why we are not raising a neutron specific exception here","commit_id":"f65fcb9d885fc23b1df3a882f73cdd6eb1f3609c"},{"author":{"_account_id":6447,"name":"Avishay Balderman","email":"avishayb@radware.com","username":"avishayb"},"change_message_id":"7f208e7110511d59f8e004e8538729eea2608790","unresolved":false,"context_lines":[{"line_number":649,"context_line":"                       if ip[\u0027subnet_id\u0027] \u003d\u003d subnet_id]"},{"line_number":650,"context_line":"        if not match_ports:"},{"line_number":651,"context_line":"            raise Exception(_(\u0027Could not find or allocate\u0027"},{"line_number":652,"context_line":"                              \u0027IP address for subnet id %s\u0027),"},{"line_number":653,"context_line":"                            subnet_id)"},{"line_number":654,"context_line":"        else:"},{"line_number":655,"context_line":"            return match_ports[0][\u0027ip_address\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_56da6ce9","line":652,"in_reply_to":"baada198_368258c7","updated":"2014-08-03 14:20:27.000000000","message":"This is exception belongs to the \"should never happen\" exceptions family. There is nothing you can do to recover from it when it happens.","commit_id":"f65fcb9d885fc23b1df3a882f73cdd6eb1f3609c"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"842057b88c68c7b5bf0d2821c4127302015b47e9","unresolved":false,"context_lines":[{"line_number":639,"context_line":"                \u0027admin_state_up\u0027: False,"},{"line_number":640,"context_line":"                \u0027device_id\u0027: \u0027\u0027,"},{"line_number":641,"context_line":"                \u0027device_owner\u0027: \u0027neutron:\u0027 + constants.LOADBALANCER,"},{"line_number":642,"context_line":"                \u0027fixed_ips\u0027: attributes.ATTR_NOT_SPECIFIED"},{"line_number":643,"context_line":"            }"},{"line_number":644,"context_line":"            port \u003d self.plugin._core_plugin.create_port(context,"},{"line_number":645,"context_line":"                                                        {\u0027port\u0027: port_data})"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_4cdacae9","line":642,"updated":"2014-08-04 12:32:32.000000000","message":"do you need to allocate an IP on each subnet of the network? Otherwise you can specify \u0027fixed_ips\u0027: {\u0027subnet_id\u0027: subnet_id} here","commit_id":"6238d5dfc31d5e5a860b91073d3dd841838b4697"},{"author":{"_account_id":6447,"name":"Avishay Balderman","email":"avishayb@radware.com","username":"avishayb"},"change_message_id":"88f38a8bb90a388b2e491ca417177eb7cc6c58ed","unresolved":false,"context_lines":[{"line_number":639,"context_line":"                \u0027admin_state_up\u0027: False,"},{"line_number":640,"context_line":"                \u0027device_id\u0027: \u0027\u0027,"},{"line_number":641,"context_line":"                \u0027device_owner\u0027: \u0027neutron:\u0027 + constants.LOADBALANCER,"},{"line_number":642,"context_line":"                \u0027fixed_ips\u0027: attributes.ATTR_NOT_SPECIFIED"},{"line_number":643,"context_line":"            }"},{"line_number":644,"context_line":"            port \u003d self.plugin._core_plugin.create_port(context,"},{"line_number":645,"context_line":"                                                        {\u0027port\u0027: port_data})"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_4f2555bd","line":642,"in_reply_to":"baada198_4cdacae9","updated":"2014-08-04 15:30:45.000000000","message":"Will be addressed later.","commit_id":"6238d5dfc31d5e5a860b91073d3dd841838b4697"},{"author":{"_account_id":6447,"name":"Avishay Balderman","email":"avishayb@radware.com","username":"avishayb"},"change_message_id":"fc6b9e64e92a417035a1710ba8180b8c0c490d87","unresolved":false,"context_lines":[{"line_number":639,"context_line":"                \u0027admin_state_up\u0027: False,"},{"line_number":640,"context_line":"                \u0027device_id\u0027: \u0027\u0027,"},{"line_number":641,"context_line":"                \u0027device_owner\u0027: \u0027neutron:\u0027 + constants.LOADBALANCER,"},{"line_number":642,"context_line":"                \u0027fixed_ips\u0027: attributes.ATTR_NOT_SPECIFIED"},{"line_number":643,"context_line":"            }"},{"line_number":644,"context_line":"            port \u003d self.plugin._core_plugin.create_port(context,"},{"line_number":645,"context_line":"                                                        {\u0027port\u0027: port_data})"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_4c8fff22","line":642,"in_reply_to":"baada198_4f2555bd","updated":"2014-08-05 10:57:13.000000000","message":"Done","commit_id":"6238d5dfc31d5e5a860b91073d3dd841838b4697"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"842057b88c68c7b5bf0d2821c4127302015b47e9","unresolved":false,"context_lines":[{"line_number":645,"context_line":"                                                        {\u0027port\u0027: port_data})"},{"line_number":646,"context_line":"        else:"},{"line_number":647,"context_line":"            port \u003d ports[0]"},{"line_number":648,"context_line":"        match_ports \u003d [ip for ip in port[\u0027fixed_ips\u0027]"},{"line_number":649,"context_line":"                       if ip[\u0027subnet_id\u0027] \u003d\u003d subnet_id]"},{"line_number":650,"context_line":"        if not match_ports:"},{"line_number":651,"context_line":"            raise Exception(_(\u0027Could not find or allocate \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_ec655e1d","line":648,"updated":"2014-08-04 12:32:32.000000000","message":"nit: \u0027match_ports\u0027 is a bit misleading, consider \u0027ips_on_subnet\u0027","commit_id":"6238d5dfc31d5e5a860b91073d3dd841838b4697"},{"author":{"_account_id":6447,"name":"Avishay Balderman","email":"avishayb@radware.com","username":"avishayb"},"change_message_id":"88f38a8bb90a388b2e491ca417177eb7cc6c58ed","unresolved":false,"context_lines":[{"line_number":645,"context_line":"                                                        {\u0027port\u0027: port_data})"},{"line_number":646,"context_line":"        else:"},{"line_number":647,"context_line":"            port \u003d ports[0]"},{"line_number":648,"context_line":"        match_ports \u003d [ip for ip in port[\u0027fixed_ips\u0027]"},{"line_number":649,"context_line":"                       if ip[\u0027subnet_id\u0027] \u003d\u003d subnet_id]"},{"line_number":650,"context_line":"        if not match_ports:"},{"line_number":651,"context_line":"            raise Exception(_(\u0027Could not find or allocate \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_ef5c694e","line":648,"in_reply_to":"baada198_ec655e1d","updated":"2014-08-04 15:30:45.000000000","message":"Done","commit_id":"6238d5dfc31d5e5a860b91073d3dd841838b4697"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"b01fa8f8632b5b6f45649374de788db66a95fe52","unresolved":false,"context_lines":[{"line_number":556,"context_line":"        return service_name"},{"line_number":557,"context_line":""},{"line_number":558,"context_line":"    def _get_available_service(self, service_name):"},{"line_number":559,"context_line":"        \"\"\"Check if service exsists and return its name if it does.\"\"\""},{"line_number":560,"context_line":"        resource \u003d \u0027/api/service/\u0027 + service_name"},{"line_number":561,"context_line":"        try:"},{"line_number":562,"context_line":"            _rest_wrapper(self.rest_client.call(\u0027GET\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_2183d0a9","line":559,"updated":"2014-08-04 18:06:07.000000000","message":"Oops.  Please revert this.","commit_id":"2680e0c1aa0fb945fc042117d5d684bfc2e49e51"},{"author":{"_account_id":6447,"name":"Avishay Balderman","email":"avishayb@radware.com","username":"avishayb"},"change_message_id":"98c09cea7e12a0b81a0a64f658f5ee558fff117b","unresolved":false,"context_lines":[{"line_number":556,"context_line":"        return service_name"},{"line_number":557,"context_line":""},{"line_number":558,"context_line":"    def _get_available_service(self, service_name):"},{"line_number":559,"context_line":"        \"\"\"Check if service exsists and return its name if it does.\"\"\""},{"line_number":560,"context_line":"        resource \u003d \u0027/api/service/\u0027 + service_name"},{"line_number":561,"context_line":"        try:"},{"line_number":562,"context_line":"            _rest_wrapper(self.rest_client.call(\u0027GET\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_a1aa6419","line":559,"in_reply_to":"baada198_2183d0a9","updated":"2014-08-05 10:57:44.000000000","message":"Done","commit_id":"2680e0c1aa0fb945fc042117d5d684bfc2e49e51"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"b01fa8f8632b5b6f45649374de788db66a95fe52","unresolved":false,"context_lines":[{"line_number":614,"context_line":"                raise r_exc.WorkflowMissing(workflow\u003dwf)"},{"line_number":615,"context_line":"        self.workflow_templates_exists \u003d True"},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"    def _get_pip(self, context, tenant_id, port_name,"},{"line_number":618,"context_line":"                 network_id, subnet_id):"},{"line_number":619,"context_line":"        \"\"\"Get proxy IP"},{"line_number":620,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_61a06836","line":617,"updated":"2014-08-04 18:06:07.000000000","message":"nit:  Consider naming _get_or_create or _get_or_create_port_for_pip.","commit_id":"2680e0c1aa0fb945fc042117d5d684bfc2e49e51"},{"author":{"_account_id":6447,"name":"Avishay Balderman","email":"avishayb@radware.com","username":"avishayb"},"change_message_id":"98c09cea7e12a0b81a0a64f658f5ee558fff117b","unresolved":false,"context_lines":[{"line_number":614,"context_line":"                raise r_exc.WorkflowMissing(workflow\u003dwf)"},{"line_number":615,"context_line":"        self.workflow_templates_exists \u003d True"},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"    def _get_pip(self, context, tenant_id, port_name,"},{"line_number":618,"context_line":"                 network_id, subnet_id):"},{"line_number":619,"context_line":"        \"\"\"Get proxy IP"},{"line_number":620,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_4160a834","line":617,"in_reply_to":"baada198_61a06836","updated":"2014-08-05 10:57:44.000000000","message":"I think _get_pip is a good name - thanks.","commit_id":"2680e0c1aa0fb945fc042117d5d684bfc2e49e51"}],"neutron/tests/unit/services/loadbalancer/drivers/radware/test_plugin_driver.py":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"b01fa8f8632b5b6f45649374de788db66a95fe52","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            return_value\u003dNone)"},{"line_number":134,"context_line":"        self.recover_mock \u003d mock.Mock("},{"line_number":135,"context_line":"            side_effect\u003d_recover_function_mock)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        radware_driver \u003d self.plugin_instance.drivers[\u0027radware\u0027]"},{"line_number":138,"context_line":"        radware_driver.completion_handler.start \u003d ("},{"line_number":139,"context_line":"            self.operation_completer_start_mock)"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_a1336011","side":"PARENT","line":136,"updated":"2014-08-04 18:06:07.000000000","message":"Please revert this unrelated change.","commit_id":"8307be7a9ef83c66eee8f2e6816aed8774df74d1"},{"author":{"_account_id":6447,"name":"Avishay Balderman","email":"avishayb@radware.com","username":"avishayb"},"change_message_id":"98c09cea7e12a0b81a0a64f658f5ee558fff117b","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            return_value\u003dNone)"},{"line_number":134,"context_line":"        self.recover_mock \u003d mock.Mock("},{"line_number":135,"context_line":"            side_effect\u003d_recover_function_mock)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        radware_driver \u003d self.plugin_instance.drivers[\u0027radware\u0027]"},{"line_number":138,"context_line":"        radware_driver.completion_handler.start \u003d ("},{"line_number":139,"context_line":"            self.operation_completer_start_mock)"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_417988fa","side":"PARENT","line":136,"in_reply_to":"baada198_a1336011","updated":"2014-08-05 10:57:44.000000000","message":"Done","commit_id":"8307be7a9ef83c66eee8f2e6816aed8774df74d1"}]}
