)]}'
{"bin/neutron-lb-member-status-update":[{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"f7624cb1c18a5fd3496fdaf9e57c84ec2e754001","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright (c) 2014 OpenStack Foundation"},{"line_number":4,"context_line":"# All Rights Reserved."}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAUH%2F%2FGLw%3D","line":1,"updated":"2014-01-17 14:06:37.000000000","message":"what is the purpose of this file?","commit_id":"a8d8cc75955160ce7264b227466bbb9b2bc6358d"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"0548bbbc0a7f8d3faae2c3efd0d2e25970c71ef8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright (c) 2014 OpenStack Foundation"},{"line_number":4,"context_line":"# All Rights Reserved."}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAUH%2F%2B%2BiM%3D","line":1,"in_reply_to":"AAAAUH%2F%2FGLw%3D","updated":"2014-01-20 08:03:12.000000000","message":"keepalived can be configured to run scripts on LB member status changes.\nThe lvs driver uses this script to get notifications of LB member status changes so that DB statuses reflect actual member statuses.","commit_id":"a8d8cc75955160ce7264b227466bbb9b2bc6358d"}],"neutron/extensions/loadbalancer.py":[{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"f7624cb1c18a5fd3496fdaf9e57c84ec2e754001","unresolved":false,"context_lines":[{"line_number":155,"context_line":"                      \u0027is_visible\u0027: True},"},{"line_number":156,"context_line":"        \u0027vip_id\u0027: {\u0027allow_post\u0027: False, \u0027allow_put\u0027: False,"},{"line_number":157,"context_line":"                   \u0027is_visible\u0027: True},"},{"line_number":158,"context_line":"        \u0027router_id\u0027:  {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":159,"context_line":"                       \u0027default\u0027: attr.ATTR_NOT_SPECIFIED,"},{"line_number":160,"context_line":"                       \u0027validate\u0027: {\u0027type:uuid_or_none\u0027: None},"},{"line_number":161,"context_line":"                       \u0027is_visible\u0027: True},"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUH%2F%2FGO4%3D","line":158,"updated":"2014-01-17 14:06:37.000000000","message":"I think additional attribute needs to be introduced with extension rather than with modification of core lbaas API.\nCheck routed insertion extension.","commit_id":"a8d8cc75955160ce7264b227466bbb9b2bc6358d"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"0548bbbc0a7f8d3faae2c3efd0d2e25970c71ef8","unresolved":false,"context_lines":[{"line_number":155,"context_line":"                      \u0027is_visible\u0027: True},"},{"line_number":156,"context_line":"        \u0027vip_id\u0027: {\u0027allow_post\u0027: False, \u0027allow_put\u0027: False,"},{"line_number":157,"context_line":"                   \u0027is_visible\u0027: True},"},{"line_number":158,"context_line":"        \u0027router_id\u0027:  {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":159,"context_line":"                       \u0027default\u0027: attr.ATTR_NOT_SPECIFIED,"},{"line_number":160,"context_line":"                       \u0027validate\u0027: {\u0027type:uuid_or_none\u0027: None},"},{"line_number":161,"context_line":"                       \u0027is_visible\u0027: True},"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUH%2F%2B%2BgI%3D","line":158,"in_reply_to":"AAAAUH%2F%2FGO4%3D","updated":"2014-01-20 08:03:12.000000000","message":"I found router_id is already in extensions.routedserviceinsertion.EXTENDED_ATTRIBUTES_2_0.\nI\u0027ll delete this.","commit_id":"a8d8cc75955160ce7264b227466bbb9b2bc6358d"}],"neutron/services/loadbalancer/drivers/haproxy/plugin_driver.py":[{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"f7624cb1c18a5fd3496fdaf9e57c84ec2e754001","unresolved":false,"context_lines":[{"line_number":23,"context_line":"class HaproxyOnHostPluginDriver(plugin_driver.AgentBasedPluginDriver):"},{"line_number":24,"context_line":"    device_driver \u003d namespace_driver.DRIVER_NAME"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def validate_router_id(self, context, router_id,"},{"line_number":27,"context_line":"                           pool\u003dNone, pool_id\u003dNone, vip\u003dNone):"},{"line_number":28,"context_line":"        pass"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUH%2F%2FGLI%3D","line":26,"updated":"2014-01-17 14:06:37.000000000","message":"that\u0027s the issue with common extension: some drivers don\u0027t support it, but you still has to add empty handling to them.","commit_id":"a8d8cc75955160ce7264b227466bbb9b2bc6358d"}],"neutron/services/loadbalancer/plugin.py":[{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"f7624cb1c18a5fd3496fdaf9e57c84ec2e754001","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class LoadBalancerPlugin(ldb.LoadBalancerPluginDb,"},{"line_number":36,"context_line":"                         agent_scheduler.LbaasAgentSchedulerDbMixin,"},{"line_number":37,"context_line":"                         rsi_db.RoutedServiceInsertionDbMixin):"},{"line_number":38,"context_line":"    \"\"\"Implementation of the Neutron Loadbalancer Service Plugin."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    This class manages the workflow of LBaaS request/response."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUH%2F%2FGN0%3D","line":37,"updated":"2014-01-17 14:06:37.000000000","message":"I\u0027d like to see it utilized in the driver rather than affecting the plugin.\n\nThat will be a subject for vendor extension framework that i\u0027m going to propose next week.","commit_id":"a8d8cc75955160ce7264b227466bbb9b2bc6358d"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"f7624cb1c18a5fd3496fdaf9e57c84ec2e754001","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        old_vip \u003d self.get_vip(context, id)"},{"line_number":120,"context_line":"        v \u003d super(LoadBalancerPlugin, self).update_vip(context, id, vip)"},{"line_number":121,"context_line":"        driver \u003d self._get_driver_for_pool(context, v[\u0027pool_id\u0027])"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        driver.update_vip(context, old_vip, v)"},{"line_number":124,"context_line":"        return v"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUH%2F%2FGOA%3D","line":122,"updated":"2014-01-17 14:06:37.000000000","message":"unrelated formatting","commit_id":"a8d8cc75955160ce7264b227466bbb9b2bc6358d"}]}
