)]}'
{"neutron_lbaas/services/loadbalancer/drivers/vmware/edge_driver.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"2e326469b12f72337f418da5d768f41728e36a20","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron import context as neutron_context"},{"line_number":21,"context_line":"from neutron.i18n import _, _LE"},{"line_number":22,"context_line":"from neutron.openstack.common import log as logging"},{"line_number":23,"context_line":"from neutron.plugins.common import constants"},{"line_number":24,"context_line":"from oslo_config import cfg"},{"line_number":25,"context_line":"from oslo_utils import excutils"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_37a4294a","line":22,"updated":"2015-03-03 20:51:04.000000000","message":"replace with oslo_log","commit_id":"da9f2058a2d06a14ea88e2d8ed3303f17a49a682"},{"author":{"_account_id":13438,"name":"Kobi Samoray","email":"ksamoray@vmware.com","username":"ksamoray"},"change_message_id":"d435e32c587aad6e565e0488c5fc2600bf303a88","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron import context as neutron_context"},{"line_number":21,"context_line":"from neutron.i18n import _, _LE"},{"line_number":22,"context_line":"from neutron.openstack.common import log as logging"},{"line_number":23,"context_line":"from neutron.plugins.common import constants"},{"line_number":24,"context_line":"from oslo_config import cfg"},{"line_number":25,"context_line":"from oslo_utils import excutils"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_d36477e7","line":22,"in_reply_to":"ba7be1f8_37a4294a","updated":"2015-03-05 21:11:07.000000000","message":"Done","commit_id":"da9f2058a2d06a14ea88e2d8ed3303f17a49a682"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"75de581f84597f4804f40a5d5674534d88434798","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    edge_pool \u003d {"},{"line_number":73,"context_line":"        \u0027name\u0027: \u0027pool_\u0027 + lbaas_pool[\u0027id\u0027],"},{"line_number":74,"context_line":"        \u0027description\u0027: lbaas_pool.get(\u0027description\u0027,"},{"line_number":75,"context_line":"                                      lbaas_pool.get(\u0027name\u0027)),"},{"line_number":76,"context_line":"        \u0027algorithm\u0027: BALANCE_MAP.get("},{"line_number":77,"context_line":"            lbaas_pool.get(\u0027lb_method\u0027), \u0027round-robin\u0027),"},{"line_number":78,"context_line":"        \u0027transparent\u0027: False"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_2f33b614","line":75,"updated":"2015-03-16 21:00:08.000000000","message":"This line confuses me.  You use the lbaas_pool.get method twice, but once inside of the other.  Is this a typo or is the second ignoring some optional argument?  Should this be a map like the algorithm below?","commit_id":"e397b90bbc9ea6ec342f4e5b5500d17f2f39136a"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"0dd21a31cce45045fe2f0b423b36c6f79b11bc32","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    edge_pool \u003d {"},{"line_number":73,"context_line":"        \u0027name\u0027: \u0027pool_\u0027 + lbaas_pool[\u0027id\u0027],"},{"line_number":74,"context_line":"        \u0027description\u0027: lbaas_pool.get(\u0027description\u0027,"},{"line_number":75,"context_line":"                                      lbaas_pool.get(\u0027name\u0027)),"},{"line_number":76,"context_line":"        \u0027algorithm\u0027: BALANCE_MAP.get("},{"line_number":77,"context_line":"            lbaas_pool.get(\u0027lb_method\u0027), \u0027round-robin\u0027),"},{"line_number":78,"context_line":"        \u0027transparent\u0027: False"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_6a0b857d","line":75,"in_reply_to":"9a80dd14_2f33b614","updated":"2015-03-18 03:13:48.000000000","message":"looks like he is defaulting the description to the name of the pool if the pool does not have a description.  perfectly fine.","commit_id":"e397b90bbc9ea6ec342f4e5b5500d17f2f39136a"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"75de581f84597f4804f40a5d5674534d88434798","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    \"\"\""},{"line_number":85,"context_line":"    Create app profile dict for lbaas VIP."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    Neutron-lbaas VIP objects breaks into an application profile object, and"},{"line_number":88,"context_line":"    a virtual server object in NSXv."},{"line_number":89,"context_line":"    \"\"\""},{"line_number":90,"context_line":"    vcns_app_profile \u003d {"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_aa14f443","line":87,"updated":"2015-03-16 21:00:08.000000000","message":"nit: remove the s on \"objects\" (or on \"breaks\")","commit_id":"e397b90bbc9ea6ec342f4e5b5500d17f2f39136a"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"75de581f84597f4804f40a5d5674534d88434798","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    pool_id \u003d vip[\u0027pool_id\u0027]"},{"line_number":130,"context_line":"    pool_mapping \u003d db.get_nsxv_edge_pool_mapping(context, pool_id)"},{"line_number":131,"context_line":"    pool_vse_id \u003d pool_mapping[\u0027edge_pool_id\u0027]"},{"line_number":132,"context_line":"    return {"},{"line_number":133,"context_line":"        \u0027name\u0027: \u0027vip_\u0027 + vip[\u0027id\u0027],"},{"line_number":134,"context_line":"        \u0027description\u0027: vip[\u0027description\u0027],"},{"line_number":135,"context_line":"        \u0027ipAddress\u0027: vip[\u0027address\u0027],"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_a05fb53f","line":132,"updated":"2015-03-16 21:00:08.000000000","message":"For any of the given conversion fields, should you not use:  \"object.get(\u0027field\u0027)\" to avoid exceptions?  Same for each of the following methods.","commit_id":"e397b90bbc9ea6ec342f4e5b5500d17f2f39136a"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"0dd21a31cce45045fe2f0b423b36c6f79b11bc32","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    pool_id \u003d vip[\u0027pool_id\u0027]"},{"line_number":130,"context_line":"    pool_mapping \u003d db.get_nsxv_edge_pool_mapping(context, pool_id)"},{"line_number":131,"context_line":"    pool_vse_id \u003d pool_mapping[\u0027edge_pool_id\u0027]"},{"line_number":132,"context_line":"    return {"},{"line_number":133,"context_line":"        \u0027name\u0027: \u0027vip_\u0027 + vip[\u0027id\u0027],"},{"line_number":134,"context_line":"        \u0027description\u0027: vip[\u0027description\u0027],"},{"line_number":135,"context_line":"        \u0027ipAddress\u0027: vip[\u0027address\u0027],"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_6a82a5c9","line":132,"in_reply_to":"9a80dd14_a05fb53f","updated":"2015-03-18 03:13:48.000000000","message":"i would say that in this case, this is being passed a vip dictionary that came from the plugin, which is guaranteed to have these fields populated.","commit_id":"e397b90bbc9ea6ec342f4e5b5500d17f2f39136a"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"75de581f84597f4804f40a5d5674534d88434798","unresolved":false,"context_lines":[{"line_number":297,"context_line":""},{"line_number":298,"context_line":"                        self.nsxv_api.update_interface(edge_id, vnic)"},{"line_number":299,"context_line":"                        return"},{"line_number":300,"context_line":"        # TODO(kobis): Use correct exception here"},{"line_number":301,"context_line":"        raise nsxv_exc.NsxvApiException"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    def _del_vip_as_secondary_ip(self, edge_id, vip):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_5392474c","line":300,"updated":"2015-03-16 21:00:08.000000000","message":"Has this happened yet?","commit_id":"e397b90bbc9ea6ec342f4e5b5500d17f2f39136a"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"75de581f84597f4804f40a5d5674534d88434798","unresolved":false,"context_lines":[{"line_number":324,"context_line":""},{"line_number":325,"context_line":"                        self.nsxv_api.update_interface(edge_id, vnic)"},{"line_number":326,"context_line":"                        return"},{"line_number":327,"context_line":"        # TODO(kobis): Use correct exception here"},{"line_number":328,"context_line":"        raise nsxv_exc.NsxvApiException"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"    def _get_edge_ips(self, edge_id):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_f3c17b30","line":327,"updated":"2015-03-16 21:00:08.000000000","message":"Has this happened yet?","commit_id":"e397b90bbc9ea6ec342f4e5b5500d17f2f39136a"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"75de581f84597f4804f40a5d5674534d88434798","unresolved":false,"context_lines":[{"line_number":888,"context_line":"        super(EdgeLoadbalancerDriver, self).stats("},{"line_number":889,"context_line":"            context, pool_id)"},{"line_number":890,"context_line":"        LOG.debug(\u0027Retrieving stats for pool %s\u0027 % pool_id)"},{"line_number":891,"context_line":"        # TODO(kobis): implement"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_248bcb69","line":891,"updated":"2015-03-16 21:00:08.000000000","message":"Need a touch here I\u0027m guessing?!","commit_id":"e397b90bbc9ea6ec342f4e5b5500d17f2f39136a"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"402dd47cf13dc1715c9d4ca496cab78d94f7df67","unresolved":false,"context_lines":[{"line_number":25,"context_line":"class EdgeLoadbalancerDriver(abstract_driver.LoadBalancerAbstractDriver):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def __init__(self, plugin):"},{"line_number":28,"context_line":"        self.plugin \u003d plugin"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def _get_nsxv_driver(self):"},{"line_number":31,"context_line":"        return self.plugin._core_plugin.nsx_v"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_1e4b6f5a","line":28,"updated":"2015-03-23 08:56:28.000000000","message":"plugin is a local variable so maybe consider using _plugin","commit_id":"8d2df9c13122dd09d62d7d75ae89880aec7a15f2"},{"author":{"_account_id":13438,"name":"Kobi Samoray","email":"ksamoray@vmware.com","username":"ksamoray"},"change_message_id":"b0cd40f53755b5a87573dcadde28640eef268a3e","unresolved":false,"context_lines":[{"line_number":25,"context_line":"class EdgeLoadbalancerDriver(abstract_driver.LoadBalancerAbstractDriver):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def __init__(self, plugin):"},{"line_number":28,"context_line":"        self.plugin \u003d plugin"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def _get_nsxv_driver(self):"},{"line_number":31,"context_line":"        return self.plugin._core_plugin.nsx_v"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_04ade288","line":28,"in_reply_to":"1a6ced46_1e4b6f5a","updated":"2015-03-23 16:32:26.000000000","message":"Done","commit_id":"8d2df9c13122dd09d62d7d75ae89880aec7a15f2"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"402dd47cf13dc1715c9d4ca496cab78d94f7df67","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    def __init__(self, plugin):"},{"line_number":28,"context_line":"        self.plugin \u003d plugin"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def _get_nsxv_driver(self):"},{"line_number":31,"context_line":"        return self.plugin._core_plugin.nsx_v"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def create_pool_successful(self, context, pool, edge_id, edge_pool_id):"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_9edd9f45","line":30,"updated":"2015-03-23 08:56:28.000000000","message":"Can this have a decorator @property?\n\nthen you can do:\nself._nsxv_driver.whatever","commit_id":"8d2df9c13122dd09d62d7d75ae89880aec7a15f2"},{"author":{"_account_id":13438,"name":"Kobi Samoray","email":"ksamoray@vmware.com","username":"ksamoray"},"change_message_id":"b0cd40f53755b5a87573dcadde28640eef268a3e","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    def __init__(self, plugin):"},{"line_number":28,"context_line":"        self.plugin \u003d plugin"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def _get_nsxv_driver(self):"},{"line_number":31,"context_line":"        return self.plugin._core_plugin.nsx_v"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def create_pool_successful(self, context, pool, edge_id, edge_pool_id):"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_04db221c","line":30,"in_reply_to":"1a6ced46_9edd9f45","updated":"2015-03-23 16:32:26.000000000","message":"Done","commit_id":"8d2df9c13122dd09d62d7d75ae89880aec7a15f2"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"402dd47cf13dc1715c9d4ca496cab78d94f7df67","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def create_pool(self, context, pool):"},{"line_number":52,"context_line":"        super(EdgeLoadbalancerDriver, self).create_pool(context, pool)"},{"line_number":53,"context_line":"        self._get_nsxv_driver().create_pool(context, pool)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def update_pool(self, context, old_pool, pool):"},{"line_number":56,"context_line":"        super(EdgeLoadbalancerDriver, self).update_pool("}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_5eba47e2","line":53,"updated":"2015-03-23 08:56:28.000000000","message":"if the backend create pool fails do we want to revert the super create pool?","commit_id":"8d2df9c13122dd09d62d7d75ae89880aec7a15f2"},{"author":{"_account_id":13438,"name":"Kobi Samoray","email":"ksamoray@vmware.com","username":"ksamoray"},"change_message_id":"b0cd40f53755b5a87573dcadde28640eef268a3e","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def create_pool(self, context, pool):"},{"line_number":52,"context_line":"        super(EdgeLoadbalancerDriver, self).create_pool(context, pool)"},{"line_number":53,"context_line":"        self._get_nsxv_driver().create_pool(context, pool)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def update_pool(self, context, old_pool, pool):"},{"line_number":56,"context_line":"        super(EdgeLoadbalancerDriver, self).update_pool("}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_044962d0","line":53,"in_reply_to":"1a6ced46_5eba47e2","updated":"2015-03-23 16:32:26.000000000","message":"We want to indicate failure.\nThis is done via pool_failed above.","commit_id":"8d2df9c13122dd09d62d7d75ae89880aec7a15f2"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"402dd47cf13dc1715c9d4ca496cab78d94f7df67","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        super(EdgeLoadbalancerDriver, self).update_pool("},{"line_number":57,"context_line":"            context, old_pool, pool)"},{"line_number":58,"context_line":"        pool_mapping \u003d db.get_nsxv_edge_pool_mapping(context, old_pool[\u0027id\u0027])"},{"line_number":59,"context_line":"        self._get_nsxv_driver().update_pool("},{"line_number":60,"context_line":"            context, old_pool, pool, pool_mapping)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    def delete_pool(self, context, pool):"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_beb97beb","line":59,"updated":"2015-03-23 08:56:28.000000000","message":"ditto","commit_id":"8d2df9c13122dd09d62d7d75ae89880aec7a15f2"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"402dd47cf13dc1715c9d4ca496cab78d94f7df67","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    def delete_pool(self, context, pool):"},{"line_number":63,"context_line":"        super(EdgeLoadbalancerDriver, self).delete_pool(context, pool)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        vip_id \u003d self.plugin.get_pool(context, pool[\u0027id\u0027]).get(\u0027vip_id\u0027, None)"},{"line_number":66,"context_line":"        if vip_id:"},{"line_number":67,"context_line":"            raise lb_ext.PoolInUse(pool_id\u003dpool[\u0027id\u0027])"},{"line_number":68,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_fe913353","line":65,"updated":"2015-03-23 08:56:28.000000000","message":"should we not do this before line 63?","commit_id":"8d2df9c13122dd09d62d7d75ae89880aec7a15f2"},{"author":{"_account_id":13438,"name":"Kobi Samoray","email":"ksamoray@vmware.com","username":"ksamoray"},"change_message_id":"b0cd40f53755b5a87573dcadde28640eef268a3e","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    def delete_pool(self, context, pool):"},{"line_number":63,"context_line":"        super(EdgeLoadbalancerDriver, self).delete_pool(context, pool)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        vip_id \u003d self.plugin.get_pool(context, pool[\u0027id\u0027]).get(\u0027vip_id\u0027, None)"},{"line_number":66,"context_line":"        if vip_id:"},{"line_number":67,"context_line":"            raise lb_ext.PoolInUse(pool_id\u003dpool[\u0027id\u0027])"},{"line_number":68,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_24749efc","line":65,"in_reply_to":"1a6ced46_fe913353","updated":"2015-03-23 16:32:26.000000000","message":"Done","commit_id":"8d2df9c13122dd09d62d7d75ae89880aec7a15f2"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"402dd47cf13dc1715c9d4ca496cab78d94f7df67","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        self._get_nsxv_driver().create_vip(context, vip, pool_mapping)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def update_vip(self, context, old_vip, vip):"},{"line_number":98,"context_line":"        super(EdgeLoadbalancerDriver, self).update_vip(context, old_vip, vip)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        vip_mapping \u003d db.get_nsxv_edge_vip_mapping(context, vip[\u0027pool_id\u0027])"},{"line_number":101,"context_line":"        self._get_nsxv_driver().update_vip(context, old_vip, vip, vip_mapping)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_3e1d8bbe","line":98,"updated":"2015-03-23 08:56:28.000000000","message":"consider the base update after the backend update","commit_id":"8d2df9c13122dd09d62d7d75ae89880aec7a15f2"},{"author":{"_account_id":13438,"name":"Kobi Samoray","email":"ksamoray@vmware.com","username":"ksamoray"},"change_message_id":"b0cd40f53755b5a87573dcadde28640eef268a3e","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        self._get_nsxv_driver().create_vip(context, vip, pool_mapping)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def update_vip(self, context, old_vip, vip):"},{"line_number":98,"context_line":"        super(EdgeLoadbalancerDriver, self).update_vip(context, old_vip, vip)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        vip_mapping \u003d db.get_nsxv_edge_vip_mapping(context, vip[\u0027pool_id\u0027])"},{"line_number":101,"context_line":"        self._get_nsxv_driver().update_vip(context, old_vip, vip, vip_mapping)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_af49478d","line":98,"in_reply_to":"1a6ced46_3e1d8bbe","updated":"2015-03-23 16:32:26.000000000","message":"see above","commit_id":"8d2df9c13122dd09d62d7d75ae89880aec7a15f2"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"402dd47cf13dc1715c9d4ca496cab78d94f7df67","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        super(EdgeLoadbalancerDriver, self).create_member(context, member)"},{"line_number":118,"context_line":"        pool_mapping \u003d db.get_nsxv_edge_pool_mapping("},{"line_number":119,"context_line":"            context, member[\u0027pool_id\u0027])"},{"line_number":120,"context_line":"        self._get_nsxv_driver().create_member("},{"line_number":121,"context_line":"            context, member, pool_mapping)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    def update_member(self, context, old_member, member):"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_be117bae","line":120,"updated":"2015-03-23 08:56:28.000000000","message":"consider deleting member if the backend operation fails","commit_id":"8d2df9c13122dd09d62d7d75ae89880aec7a15f2"},{"author":{"_account_id":13438,"name":"Kobi Samoray","email":"ksamoray@vmware.com","username":"ksamoray"},"change_message_id":"b0cd40f53755b5a87573dcadde28640eef268a3e","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        super(EdgeLoadbalancerDriver, self).create_member(context, member)"},{"line_number":118,"context_line":"        pool_mapping \u003d db.get_nsxv_edge_pool_mapping("},{"line_number":119,"context_line":"            context, member[\u0027pool_id\u0027])"},{"line_number":120,"context_line":"        self._get_nsxv_driver().create_member("},{"line_number":121,"context_line":"            context, member, pool_mapping)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    def update_member(self, context, old_member, member):"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_cf7683d8","line":120,"in_reply_to":"1a6ced46_be117bae","updated":"2015-03-23 16:32:26.000000000","message":"see above","commit_id":"8d2df9c13122dd09d62d7d75ae89880aec7a15f2"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"402dd47cf13dc1715c9d4ca496cab78d94f7df67","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        pool_mapping \u003d db.get_nsxv_edge_pool_mapping("},{"line_number":127,"context_line":"            context, member[\u0027pool_id\u0027])"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        self._get_nsxv_driver().update_member("},{"line_number":130,"context_line":"            context, old_member, member, pool_mapping)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def delete_member(self, context, member):"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_3e466bc0","line":129,"updated":"2015-03-23 08:56:28.000000000","message":"consider updating base class after the backend update","commit_id":"8d2df9c13122dd09d62d7d75ae89880aec7a15f2"},{"author":{"_account_id":13438,"name":"Kobi Samoray","email":"ksamoray@vmware.com","username":"ksamoray"},"change_message_id":"b0cd40f53755b5a87573dcadde28640eef268a3e","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        pool_mapping \u003d db.get_nsxv_edge_pool_mapping("},{"line_number":127,"context_line":"            context, member[\u0027pool_id\u0027])"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        self._get_nsxv_driver().update_member("},{"line_number":130,"context_line":"            context, old_member, member, pool_mapping)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def delete_member(self, context, member):"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_4f4a9384","line":129,"in_reply_to":"1a6ced46_3e466bc0","updated":"2015-03-23 16:32:26.000000000","message":"^","commit_id":"8d2df9c13122dd09d62d7d75ae89880aec7a15f2"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"402dd47cf13dc1715c9d4ca496cab78d94f7df67","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            context, old_member, member, pool_mapping)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def delete_member(self, context, member):"},{"line_number":133,"context_line":"        super(EdgeLoadbalancerDriver, self).delete_member(context, member)"},{"line_number":134,"context_line":"        pool_mapping \u003d db.get_nsxv_edge_pool_mapping("},{"line_number":135,"context_line":"            context, member[\u0027pool_id\u0027])"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_9efe7f6a","line":133,"updated":"2015-03-23 08:56:28.000000000","message":"consider deleting after the backend deletion","commit_id":"8d2df9c13122dd09d62d7d75ae89880aec7a15f2"},{"author":{"_account_id":13438,"name":"Kobi Samoray","email":"ksamoray@vmware.com","username":"ksamoray"},"change_message_id":"b0cd40f53755b5a87573dcadde28640eef268a3e","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            context, old_member, member, pool_mapping)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def delete_member(self, context, member):"},{"line_number":133,"context_line":"        super(EdgeLoadbalancerDriver, self).delete_member(context, member)"},{"line_number":134,"context_line":"        pool_mapping \u003d db.get_nsxv_edge_pool_mapping("},{"line_number":135,"context_line":"            context, member[\u0027pool_id\u0027])"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_6f4f4f93","line":133,"in_reply_to":"1a6ced46_9efe7f6a","updated":"2015-03-23 16:32:26.000000000","message":"^","commit_id":"8d2df9c13122dd09d62d7d75ae89880aec7a15f2"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"402dd47cf13dc1715c9d4ca496cab78d94f7df67","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        mon_mapping \u003d db.get_nsxv_edge_monitor_mapping("},{"line_number":166,"context_line":"            context, health_monitor[\u0027id\u0027], pool_mapping[\u0027edge_id\u0027])"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        self._get_nsxv_driver().create_pool_health_monitor("},{"line_number":169,"context_line":"            context, health_monitor, pool_id, pool_mapping, mon_mapping)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def update_pool_health_monitor(self, context, old_health_monitor,"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_beb5fbce","line":168,"updated":"2015-03-23 08:56:28.000000000","message":"consider reverting the pool creation of the backend faild","commit_id":"8d2df9c13122dd09d62d7d75ae89880aec7a15f2"},{"author":{"_account_id":13438,"name":"Kobi Samoray","email":"ksamoray@vmware.com","username":"ksamoray"},"change_message_id":"b0cd40f53755b5a87573dcadde28640eef268a3e","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        mon_mapping \u003d db.get_nsxv_edge_monitor_mapping("},{"line_number":166,"context_line":"            context, health_monitor[\u0027id\u0027], pool_mapping[\u0027edge_id\u0027])"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        self._get_nsxv_driver().create_pool_health_monitor("},{"line_number":169,"context_line":"            context, health_monitor, pool_id, pool_mapping, mon_mapping)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def update_pool_health_monitor(self, context, old_health_monitor,"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_4f31b30a","line":168,"in_reply_to":"1a6ced46_beb5fbce","updated":"2015-03-23 16:32:26.000000000","message":"^","commit_id":"8d2df9c13122dd09d62d7d75ae89880aec7a15f2"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"402dd47cf13dc1715c9d4ca496cab78d94f7df67","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def update_pool_health_monitor(self, context, old_health_monitor,"},{"line_number":172,"context_line":"                                   health_monitor, pool_id):"},{"line_number":173,"context_line":"        super(EdgeLoadbalancerDriver, self).update_pool_health_monitor("},{"line_number":174,"context_line":"            context, old_health_monitor, health_monitor, pool_id)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        pool_mapping \u003d db.get_nsxv_edge_pool_mapping(context, pool_id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_1ead2f89","line":173,"updated":"2015-03-23 08:56:28.000000000","message":"consider doing after the backend update","commit_id":"8d2df9c13122dd09d62d7d75ae89880aec7a15f2"},{"author":{"_account_id":13438,"name":"Kobi Samoray","email":"ksamoray@vmware.com","username":"ksamoray"},"change_message_id":"b0cd40f53755b5a87573dcadde28640eef268a3e","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def update_pool_health_monitor(self, context, old_health_monitor,"},{"line_number":172,"context_line":"                                   health_monitor, pool_id):"},{"line_number":173,"context_line":"        super(EdgeLoadbalancerDriver, self).update_pool_health_monitor("},{"line_number":174,"context_line":"            context, old_health_monitor, health_monitor, pool_id)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        pool_mapping \u003d db.get_nsxv_edge_pool_mapping(context, pool_id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_8f3babea","line":173,"in_reply_to":"1a6ced46_1ead2f89","updated":"2015-03-23 16:32:26.000000000","message":"^","commit_id":"8d2df9c13122dd09d62d7d75ae89880aec7a15f2"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"402dd47cf13dc1715c9d4ca496cab78d94f7df67","unresolved":false,"context_lines":[{"line_number":181,"context_line":"            context, old_health_monitor, health_monitor, pool_id, mon_mapping)"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    def delete_pool_health_monitor(self, context, health_monitor, pool_id):"},{"line_number":184,"context_line":"        super(EdgeLoadbalancerDriver, self).delete_pool_health_monitor("},{"line_number":185,"context_line":"            context, health_monitor, pool_id)"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        pool_mapping \u003d db.get_nsxv_edge_pool_mapping(context, pool_id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_be9edb54","line":184,"updated":"2015-03-23 08:56:28.000000000","message":"consider doing this after the backend update","commit_id":"8d2df9c13122dd09d62d7d75ae89880aec7a15f2"},{"author":{"_account_id":13438,"name":"Kobi Samoray","email":"ksamoray@vmware.com","username":"ksamoray"},"change_message_id":"b0cd40f53755b5a87573dcadde28640eef268a3e","unresolved":false,"context_lines":[{"line_number":181,"context_line":"            context, old_health_monitor, health_monitor, pool_id, mon_mapping)"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    def delete_pool_health_monitor(self, context, health_monitor, pool_id):"},{"line_number":184,"context_line":"        super(EdgeLoadbalancerDriver, self).delete_pool_health_monitor("},{"line_number":185,"context_line":"            context, health_monitor, pool_id)"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        pool_mapping \u003d db.get_nsxv_edge_pool_mapping(context, pool_id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_af406757","line":184,"in_reply_to":"1a6ced46_be9edb54","updated":"2015-03-23 16:32:26.000000000","message":"^","commit_id":"8d2df9c13122dd09d62d7d75ae89880aec7a15f2"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"402dd47cf13dc1715c9d4ca496cab78d94f7df67","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def stats(self, context, pool_id):"},{"line_number":195,"context_line":"        super(EdgeLoadbalancerDriver, self).stats(context, pool_id)"},{"line_number":196,"context_line":"        return self._get_nsxv_driver().stats(context, pool_id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_fe78532d","line":196,"updated":"2015-03-23 08:56:28.000000000","message":"if the nsxv has an error do we want to return empty stats?","commit_id":"8d2df9c13122dd09d62d7d75ae89880aec7a15f2"},{"author":{"_account_id":13438,"name":"Kobi Samoray","email":"ksamoray@vmware.com","username":"ksamoray"},"change_message_id":"b0cd40f53755b5a87573dcadde28640eef268a3e","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def stats(self, context, pool_id):"},{"line_number":195,"context_line":"        super(EdgeLoadbalancerDriver, self).stats(context, pool_id)"},{"line_number":196,"context_line":"        return self._get_nsxv_driver().stats(context, pool_id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6ced46_8f12cb60","line":196,"in_reply_to":"1a6ced46_fe78532d","updated":"2015-03-23 16:32:26.000000000","message":"nsxv should return empty stats obj upon failure","commit_id":"8d2df9c13122dd09d62d7d75ae89880aec7a15f2"}],"neutron_lbaas/tests/unit/services/loadbalancer/drivers/vmware/test_edge_driver.py":[{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"75de581f84597f4804f40a5d5674534d88434798","unresolved":false,"context_lines":[{"line_number":693,"context_line":"            mock_del_mapping.assert_called_with(self.context, HEALTHMON_ID,"},{"line_number":694,"context_line":"                                                \u0027edge-x\u0027)"},{"line_number":695,"context_line":""},{"line_number":696,"context_line":"    def test__add_vip_fw_rule(self):"},{"line_number":697,"context_line":"        pass"},{"line_number":698,"context_line":""},{"line_number":699,"context_line":"    def test__del_vip_fw_rule(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_24e2eb2f","line":696,"updated":"2015-03-16 21:00:08.000000000","message":"These I\u0027m guessing are from the section in the previous file marked with a TODO and \"implement this\" right?  ha ha","commit_id":"e397b90bbc9ea6ec342f4e5b5500d17f2f39136a"}]}
