)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"81591c8f9f93c3294ec5c97e6fd8a2c8c5adf39d","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2014-03-03 22:44:36 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"One Convergence Neutron Plugin l3 ext support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I7007dba1cc8f73496a2a40099581d07ae697520a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAVn%2F%2FwMM%3D","line":8,"updated":"2014-03-04 09:40:39.000000000","message":"Please add blueprint or bug number in the commit message","commit_id":"c21a97db55f0da914584224f1d78f765df63dba9"}],"neutron/plugins/oneconvergence/agent/nvsd_neutron_agent.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"d05ddf93411b34399e7f619251ff89374d12b944","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from neutron.agent.linux import ovs_lib"},{"line_number":25,"context_line":"from neutron.agent import rpc as agent_rpc"},{"line_number":26,"context_line":"from neutron.agent import securitygroups_rpc as sg_rpc"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from neutron.common import config as logging_config"},{"line_number":29,"context_line":"from neutron.common import topics"},{"line_number":30,"context_line":"from neutron import context as n_context"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FkP8%3D","line":27,"updated":"2014-03-05 11:07:28.000000000","message":"no blank line here","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"},{"author":{"_account_id":9722,"name":"Hemanth Ravi","email":"hemanth.ravi@oneconvergence.com","username":"hemanthravi"},"change_message_id":"41d90394802f4ad0a076937f5f78c093270a7576","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from neutron.agent.linux import ovs_lib"},{"line_number":25,"context_line":"from neutron.agent import rpc as agent_rpc"},{"line_number":26,"context_line":"from neutron.agent import securitygroups_rpc as sg_rpc"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from neutron.common import config as logging_config"},{"line_number":29,"context_line":"from neutron.common import topics"},{"line_number":30,"context_line":"from neutron import context as n_context"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2Fegc%3D","line":27,"in_reply_to":"AAAAVn%2F%2FkP8%3D","updated":"2014-03-05 21:26:05.000000000","message":"Done","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"d05ddf93411b34399e7f619251ff89374d12b944","unresolved":false,"context_lines":[{"line_number":149,"context_line":"            try:"},{"line_number":150,"context_line":"                port_info \u003d self._update_ports(ports)"},{"line_number":151,"context_line":"                if port_info:"},{"line_number":152,"context_line":"                    LOG.debug(_(\"Agent loop has new device\"))"},{"line_number":153,"context_line":"                    self._process_devices_filter(port_info)"},{"line_number":154,"context_line":"                    ports \u003d port_info[\u0027current\u0027]"},{"line_number":155,"context_line":"                    self.ports \u003d ports"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FkO0%3D","line":152,"updated":"2014-03-05 11:07:28.000000000","message":"The log message looks incorrect. It is logged even when ports are removed.","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"},{"author":{"_account_id":9722,"name":"Hemanth Ravi","email":"hemanth.ravi@oneconvergence.com","username":"hemanthravi"},"change_message_id":"41d90394802f4ad0a076937f5f78c093270a7576","unresolved":false,"context_lines":[{"line_number":149,"context_line":"            try:"},{"line_number":150,"context_line":"                port_info \u003d self._update_ports(ports)"},{"line_number":151,"context_line":"                if port_info:"},{"line_number":152,"context_line":"                    LOG.debug(_(\"Agent loop has new device\"))"},{"line_number":153,"context_line":"                    self._process_devices_filter(port_info)"},{"line_number":154,"context_line":"                    ports \u003d port_info[\u0027current\u0027]"},{"line_number":155,"context_line":"                    self.ports \u003d ports"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FegQ%3D","line":152,"in_reply_to":"AAAAVn%2F%2FkO0%3D","updated":"2014-03-05 21:26:05.000000000","message":"Done","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"d05ddf93411b34399e7f619251ff89374d12b944","unresolved":false,"context_lines":[{"line_number":176,"context_line":""},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"if __name__ \u003d\u003d \"__main__\":"},{"line_number":179,"context_line":"    main()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FkOM%3D","line":179,"updated":"2014-03-05 11:07:28.000000000","message":"L.178-179 is unnecessary. It is for consistency. a console script should be setup by pip.","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"},{"author":{"_account_id":9722,"name":"Hemanth Ravi","email":"hemanth.ravi@oneconvergence.com","username":"hemanthravi"},"change_message_id":"41d90394802f4ad0a076937f5f78c093270a7576","unresolved":false,"context_lines":[{"line_number":176,"context_line":""},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"if __name__ \u003d\u003d \"__main__\":"},{"line_number":179,"context_line":"    main()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FegM%3D","line":179,"in_reply_to":"AAAAVn%2F%2FkOM%3D","updated":"2014-03-05 21:26:05.000000000","message":"Done","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"}],"neutron/plugins/oneconvergence/plugin.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"d05ddf93411b34399e7f619251ff89374d12b944","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                                   \u0027extraroute\u0027,"},{"line_number":88,"context_line":"                                   \u0027l3_agent_scheduler\u0027,"},{"line_number":89,"context_line":"                                   \u0027quotas\u0027,"},{"line_number":90,"context_line":"                                   \u0027router\u0027,"},{"line_number":91,"context_line":"                                   ]"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def __init__(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FkTM%3D","side":"PARENT","line":90,"updated":"2014-03-05 11:07:28.000000000","message":"router, external-net, ext-gw-mode, l3-agent-scheduler, extraroute should be added in this patch.","commit_id":"1980a92a238f843d35dcfaf9921e2b8134b1ae66"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"738f3c22e948a61880dfaea3bd1b3cb8128a1aa9","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                                   \u0027extraroute\u0027,"},{"line_number":88,"context_line":"                                   \u0027l3_agent_scheduler\u0027,"},{"line_number":89,"context_line":"                                   \u0027quotas\u0027,"},{"line_number":90,"context_line":"                                   \u0027router\u0027,"},{"line_number":91,"context_line":"                                   ]"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def __init__(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FYts%3D","side":"PARENT","line":90,"in_reply_to":"AAAAVn%2F%2Fee4%3D","updated":"2014-03-06 13:11:23.000000000","message":"Hmm... but let\u0027s keep as-is.","commit_id":"1980a92a238f843d35dcfaf9921e2b8134b1ae66"},{"author":{"_account_id":9722,"name":"Hemanth Ravi","email":"hemanth.ravi@oneconvergence.com","username":"hemanthravi"},"change_message_id":"41d90394802f4ad0a076937f5f78c093270a7576","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                                   \u0027extraroute\u0027,"},{"line_number":88,"context_line":"                                   \u0027l3_agent_scheduler\u0027,"},{"line_number":89,"context_line":"                                   \u0027quotas\u0027,"},{"line_number":90,"context_line":"                                   \u0027router\u0027,"},{"line_number":91,"context_line":"                                   ]"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def __init__(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2Fee4%3D","side":"PARENT","line":90,"in_reply_to":"AAAAVn%2F%2FkTM%3D","updated":"2014-03-05 21:26:05.000000000","message":"The core plugin uses the default implementation and doesn\u0027t forward these to the NVSD controller. We had to leave them here due to test failures.","commit_id":"1980a92a238f843d35dcfaf9921e2b8134b1ae66"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"d05ddf93411b34399e7f619251ff89374d12b944","unresolved":false,"context_lines":[{"line_number":306,"context_line":"                super(OneConvergencePluginV2, self).delete_port(context,"},{"line_number":307,"context_line":"                                                                port_id)"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"        self._process_port_create_security_group(context, neutron_port, sgids)"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"        self.notify_security_groups_member_updated(context, neutron_port)"},{"line_number":312,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FkSk%3D","line":309,"updated":"2014-03-05 11:07:28.000000000","message":"I think it should be a part of transaction.","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"},{"author":{"_account_id":9722,"name":"Hemanth Ravi","email":"hemanth.ravi@oneconvergence.com","username":"hemanthravi"},"change_message_id":"41d90394802f4ad0a076937f5f78c093270a7576","unresolved":false,"context_lines":[{"line_number":306,"context_line":"                super(OneConvergencePluginV2, self).delete_port(context,"},{"line_number":307,"context_line":"                                                                port_id)"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"        self._process_port_create_security_group(context, neutron_port, sgids)"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"        self.notify_security_groups_member_updated(context, neutron_port)"},{"line_number":312,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2Fee0%3D","line":309,"in_reply_to":"AAAAVn%2F%2FkSk%3D","updated":"2014-03-05 21:26:05.000000000","message":"Done","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"d05ddf93411b34399e7f619251ff89374d12b944","unresolved":false,"context_lines":[{"line_number":336,"context_line":"            self._process_portbindings_create_and_update(context,"},{"line_number":337,"context_line":"                                                         port[\u0027port\u0027],"},{"line_number":338,"context_line":"                                                         neutron_port)"},{"line_number":339,"context_line":"            need_port_update_notify |\u003d self.update_security_group_on_port("},{"line_number":340,"context_line":"                context, port_id, port, old_port, neutron_port)"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        if need_port_update_notify:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FkSU%3D","line":339,"updated":"2014-03-05 11:07:28.000000000","message":"need_port_update_notify is only modified here.\nConsider\u0027\n\n  need_port_update_notify \u003d self._update_security_group_on_port\n\nand remove L.317.","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"},{"author":{"_account_id":9722,"name":"Hemanth Ravi","email":"hemanth.ravi@oneconvergence.com","username":"hemanthravi"},"change_message_id":"41d90394802f4ad0a076937f5f78c093270a7576","unresolved":false,"context_lines":[{"line_number":336,"context_line":"            self._process_portbindings_create_and_update(context,"},{"line_number":337,"context_line":"                                                         port[\u0027port\u0027],"},{"line_number":338,"context_line":"                                                         neutron_port)"},{"line_number":339,"context_line":"            need_port_update_notify |\u003d self.update_security_group_on_port("},{"line_number":340,"context_line":"                context, port_id, port, old_port, neutron_port)"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        if need_port_update_notify:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2Fees%3D","line":339,"in_reply_to":"AAAAVn%2F%2FkSU%3D","updated":"2014-03-05 21:26:05.000000000","message":"Done","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"d05ddf93411b34399e7f619251ff89374d12b944","unresolved":false,"context_lines":[{"line_number":373,"context_line":"                                                           floatingip)"},{"line_number":374,"context_line":"        try:"},{"line_number":375,"context_line":"            self.nvsdlib.create_floatingip(neutron_floatingip)"},{"line_number":376,"context_line":"        except nexception.NeutronException:"},{"line_number":377,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":378,"context_line":"                LOG.error(_(\"Failed to create floatingip\"))"},{"line_number":379,"context_line":"                super(OneConvergencePluginV2,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FkR8%3D","line":376,"updated":"2014-03-05 11:07:28.000000000","message":"should be NVSDApiException instead.","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"},{"author":{"_account_id":9722,"name":"Hemanth Ravi","email":"hemanth.ravi@oneconvergence.com","username":"hemanthravi"},"change_message_id":"41d90394802f4ad0a076937f5f78c093270a7576","unresolved":false,"context_lines":[{"line_number":373,"context_line":"                                                           floatingip)"},{"line_number":374,"context_line":"        try:"},{"line_number":375,"context_line":"            self.nvsdlib.create_floatingip(neutron_floatingip)"},{"line_number":376,"context_line":"        except nexception.NeutronException:"},{"line_number":377,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":378,"context_line":"                LOG.error(_(\"Failed to create floatingip\"))"},{"line_number":379,"context_line":"                super(OneConvergencePluginV2,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2Feeg%3D","line":376,"in_reply_to":"AAAAVn%2F%2FkR8%3D","updated":"2014-03-05 21:26:05.000000000","message":"Done","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"d05ddf93411b34399e7f619251ff89374d12b944","unresolved":false,"context_lines":[{"line_number":391,"context_line":"                                                               fip_id,"},{"line_number":392,"context_line":"                                                               floatingip)"},{"line_number":393,"context_line":""},{"line_number":394,"context_line":"            self.nvsdlib.update_floatingip(neutron_floatingip, floatingip)"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"        return neutron_floatingip"},{"line_number":397,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FkRA%3D","line":394,"updated":"2014-03-05 11:07:28.000000000","message":"Why is it done in a transaction? It leads to longer transaction and it should be avoided in general.","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"738f3c22e948a61880dfaea3bd1b3cb8128a1aa9","unresolved":false,"context_lines":[{"line_number":391,"context_line":"                                                               fip_id,"},{"line_number":392,"context_line":"                                                               floatingip)"},{"line_number":393,"context_line":""},{"line_number":394,"context_line":"            self.nvsdlib.update_floatingip(neutron_floatingip, floatingip)"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"        return neutron_floatingip"},{"line_number":397,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FYtw%3D","line":394,"in_reply_to":"AAAAVn%2F%2FeeI%3D","updated":"2014-03-06 13:11:23.000000000","message":"Ok. I sometimes experience db transaction timeout due to longer transaction but it is just a suggestion.","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"},{"author":{"_account_id":9722,"name":"Hemanth Ravi","email":"hemanth.ravi@oneconvergence.com","username":"hemanthravi"},"change_message_id":"41d90394802f4ad0a076937f5f78c093270a7576","unresolved":false,"context_lines":[{"line_number":391,"context_line":"                                                               fip_id,"},{"line_number":392,"context_line":"                                                               floatingip)"},{"line_number":393,"context_line":""},{"line_number":394,"context_line":"            self.nvsdlib.update_floatingip(neutron_floatingip, floatingip)"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"        return neutron_floatingip"},{"line_number":397,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FeeI%3D","line":394,"in_reply_to":"AAAAVn%2F%2FkRA%3D","updated":"2014-03-05 21:26:05.000000000","message":"We wanted to make sure that the DB is not updated in case of a failure in the nvsdlib api.","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"d05ddf93411b34399e7f619251ff89374d12b944","unresolved":false,"context_lines":[{"line_number":404,"context_line":"            super(OneConvergencePluginV2,"},{"line_number":405,"context_line":"                  self).delete_floatingip(context, floating_ip_id)"},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"            self.nvsdlib.delete_floatingip(floating_ip)"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"    def create_router(self, context, router):"},{"line_number":410,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FkQ4%3D","line":407,"updated":"2014-03-05 11:07:28.000000000","message":"same as the above","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"},{"author":{"_account_id":9722,"name":"Hemanth Ravi","email":"hemanth.ravi@oneconvergence.com","username":"hemanthravi"},"change_message_id":"41d90394802f4ad0a076937f5f78c093270a7576","unresolved":false,"context_lines":[{"line_number":404,"context_line":"            super(OneConvergencePluginV2,"},{"line_number":405,"context_line":"                  self).delete_floatingip(context, floating_ip_id)"},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"            self.nvsdlib.delete_floatingip(floating_ip)"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"    def create_router(self, context, router):"},{"line_number":410,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FeeE%3D","line":407,"in_reply_to":"AAAAVn%2F%2FkQ4%3D","updated":"2014-03-05 21:26:05.000000000","message":"We wanted to make sure that the DB is not updated in case of a failure in the nvsdlib api.","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"d05ddf93411b34399e7f619251ff89374d12b944","unresolved":false,"context_lines":[{"line_number":412,"context_line":"                               self).create_router(context, router)"},{"line_number":413,"context_line":"        try:"},{"line_number":414,"context_line":"            self.nvsdlib.create_router(neutron_router)"},{"line_number":415,"context_line":"        except nexception.NeutronException:"},{"line_number":416,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":417,"context_line":"                LOG.error(_(\"Failed to create router\"))"},{"line_number":418,"context_line":"                super(OneConvergencePluginV2,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FkQ0%3D","line":415,"updated":"2014-03-05 11:07:28.000000000","message":"Same comment on exception above.","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"},{"author":{"_account_id":9722,"name":"Hemanth Ravi","email":"hemanth.ravi@oneconvergence.com","username":"hemanthravi"},"change_message_id":"41d90394802f4ad0a076937f5f78c093270a7576","unresolved":false,"context_lines":[{"line_number":412,"context_line":"                               self).create_router(context, router)"},{"line_number":413,"context_line":"        try:"},{"line_number":414,"context_line":"            self.nvsdlib.create_router(neutron_router)"},{"line_number":415,"context_line":"        except nexception.NeutronException:"},{"line_number":416,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":417,"context_line":"                LOG.error(_(\"Failed to create router\"))"},{"line_number":418,"context_line":"                super(OneConvergencePluginV2,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FeeA%3D","line":415,"in_reply_to":"AAAAVn%2F%2FkQ0%3D","updated":"2014-03-05 21:26:05.000000000","message":"Done","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"d05ddf93411b34399e7f619251ff89374d12b944","unresolved":false,"context_lines":[{"line_number":428,"context_line":"                                   self).update_router(context, router_id,"},{"line_number":429,"context_line":"                                                       router)"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"            self.nvsdlib.update_router(neutron_router)"},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"        return neutron_router"},{"line_number":434,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FkQs%3D","line":431,"updated":"2014-03-05 11:07:28.000000000","message":"same comment on update_floatingip","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"},{"author":{"_account_id":9722,"name":"Hemanth Ravi","email":"hemanth.ravi@oneconvergence.com","username":"hemanthravi"},"change_message_id":"41d90394802f4ad0a076937f5f78c093270a7576","unresolved":false,"context_lines":[{"line_number":428,"context_line":"                                   self).update_router(context, router_id,"},{"line_number":429,"context_line":"                                                       router)"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"            self.nvsdlib.update_router(neutron_router)"},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"        return neutron_router"},{"line_number":434,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2Fed0%3D","line":431,"in_reply_to":"AAAAVn%2F%2FkQs%3D","updated":"2014-03-05 21:26:05.000000000","message":"We wanted to make sure that the DB is not updated in case of a failure in the nvsdlib api.","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"d05ddf93411b34399e7f619251ff89374d12b944","unresolved":false,"context_lines":[{"line_number":441,"context_line":"            super(OneConvergencePluginV2, self).delete_router(context,"},{"line_number":442,"context_line":"                                                              router_id)"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"            self.nvsdlib.delete_router(tenant_id, router_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FkQY%3D","line":444,"updated":"2014-03-05 11:07:28.000000000","message":"same as the above.","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"},{"author":{"_account_id":9722,"name":"Hemanth Ravi","email":"hemanth.ravi@oneconvergence.com","username":"hemanthravi"},"change_message_id":"41d90394802f4ad0a076937f5f78c093270a7576","unresolved":false,"context_lines":[{"line_number":441,"context_line":"            super(OneConvergencePluginV2, self).delete_router(context,"},{"line_number":442,"context_line":"                                                              router_id)"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"            self.nvsdlib.delete_router(tenant_id, router_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2Feds%3D","line":444,"in_reply_to":"AAAAVn%2F%2FkQY%3D","updated":"2014-03-05 21:26:05.000000000","message":"We wanted to make sure that the DB is not updated in case of a failure in the nvsdlib api.","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"}],"neutron/tests/unit/oneconvergence/test_nvsdlib.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"d05ddf93411b34399e7f619251ff89374d12b944","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        floatingip \u003d {\u0027id\u0027: \u0027dummy-floatingip\u0027,"},{"line_number":111,"context_line":"                      \u0027tenant_id\u0027: \u0027dummy-tenant\u0027}"},{"line_number":112,"context_line":"        with mock.patch.object(self.nvsdlib, \u0027send_request\u0027):"},{"line_number":113,"context_line":"            self.nvsdlib.create_floatingip(floatingip)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def test_update_floatingip(self):"},{"line_number":116,"context_line":"        floatingip \u003d {\u0027id\u0027: \u0027dummy-floatingip\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FkKw%3D","line":113,"updated":"2014-03-05 11:07:28.000000000","message":"Please see my comments in the base plugin patch. We need assert sentences to check expected behaviro *assert_called_once_with, assertEqual, ...)","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"},{"author":{"_account_id":9722,"name":"Hemanth Ravi","email":"hemanth.ravi@oneconvergence.com","username":"hemanthravi"},"change_message_id":"41d90394802f4ad0a076937f5f78c093270a7576","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        floatingip \u003d {\u0027id\u0027: \u0027dummy-floatingip\u0027,"},{"line_number":111,"context_line":"                      \u0027tenant_id\u0027: \u0027dummy-tenant\u0027}"},{"line_number":112,"context_line":"        with mock.patch.object(self.nvsdlib, \u0027send_request\u0027):"},{"line_number":113,"context_line":"            self.nvsdlib.create_floatingip(floatingip)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def test_update_floatingip(self):"},{"line_number":116,"context_line":"        floatingip \u003d {\u0027id\u0027: \u0027dummy-floatingip\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FedM%3D","line":113,"in_reply_to":"AAAAVn%2F%2FkKw%3D","updated":"2014-03-05 21:26:05.000000000","message":"Done","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"}],"neutron/tests/unit/oneconvergence/test_security_group.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"d05ddf93411b34399e7f619251ff89374d12b944","unresolved":false,"context_lines":[{"line_number":15,"context_line":"# @author: Kedar Kulkarni, One Convergence, Inc."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import mock"},{"line_number":18,"context_line":"import uuid"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron.api.v2 import attributes"},{"line_number":21,"context_line":"from neutron.extensions import securitygroup as ext_sg"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FkKM%3D","line":18,"updated":"2014-03-05 11:07:28.000000000","message":"uuid is a standard, mock is third part.","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"},{"author":{"_account_id":9722,"name":"Hemanth Ravi","email":"hemanth.ravi@oneconvergence.com","username":"hemanthravi"},"change_message_id":"41d90394802f4ad0a076937f5f78c093270a7576","unresolved":false,"context_lines":[{"line_number":15,"context_line":"# @author: Kedar Kulkarni, One Convergence, Inc."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import mock"},{"line_number":18,"context_line":"import uuid"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron.api.v2 import attributes"},{"line_number":21,"context_line":"from neutron.extensions import securitygroup as ext_sg"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FedA%3D","line":18,"in_reply_to":"AAAAVn%2F%2FkKM%3D","updated":"2014-03-05 21:26:05.000000000","message":"Done","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"d05ddf93411b34399e7f619251ff89374d12b944","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def tearDown(self):"},{"line_number":61,"context_line":"        super(OneConvergenceSecurityGroupsTestCase, self).tearDown()"},{"line_number":62,"context_line":"        attributes.RESOURCE_ATTRIBUTE_MAP \u003d self._attribute_map_bk_"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"class TestOneConvergenceSGServerRpcCallBack("}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FkKA%3D","line":62,"updated":"2014-03-05 11:07:28.000000000","message":"Please use addCleanup.","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"},{"author":{"_account_id":9722,"name":"Hemanth Ravi","email":"hemanth.ravi@oneconvergence.com","username":"hemanthravi"},"change_message_id":"41d90394802f4ad0a076937f5f78c093270a7576","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def tearDown(self):"},{"line_number":61,"context_line":"        super(OneConvergenceSecurityGroupsTestCase, self).tearDown()"},{"line_number":62,"context_line":"        attributes.RESOURCE_ATTRIBUTE_MAP \u003d self._attribute_map_bk_"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"class TestOneConvergenceSGServerRpcCallBack("}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2Fec0%3D","line":62,"in_reply_to":"AAAAVn%2F%2FkKA%3D","updated":"2014-03-05 21:26:05.000000000","message":"Done","commit_id":"595331f6dacd32ac9c73685da11bfa60fe063631"}]}
