)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"eae9c0cc98113d289651393a64d6135095f9b3f6","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix duplicate name of NVP LBaaS objs not allowed on vShield Edge"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    Duplicate name of LBaaS objs such as pool/vip/app_profile is not"},{"line_number":10,"context_line":"allowed on vShield Edge, so here need a name convention to ensure"},{"line_number":11,"context_line":"name uniqueness on the edge side."},{"line_number":12,"context_line":"Closes-Bug: #1257225"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAAWH%2F%2FX2o%3D","line":9,"updated":"2014-03-18 10:46:23.000000000","message":"You might want to remove the white spaces at the beginning of the line","commit_id":"04972e694a280abd78e3662bf1832acb4fd3fb3b"},{"author":{"_account_id":7317,"name":"Bo Lin","email":"linb@vmware.com","username":"berlin"},"change_message_id":"da99617747640633a9d7e15b183940033ceb2ad2","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix duplicate name of NVP LBaaS objs not allowed on vShield Edge"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    Duplicate name of LBaaS objs such as pool/vip/app_profile is not"},{"line_number":10,"context_line":"allowed on vShield Edge, so here need a name convention to ensure"},{"line_number":11,"context_line":"name uniqueness on the edge side."},{"line_number":12,"context_line":"Closes-Bug: #1257225"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAAWH%2F%2FQ7o%3D","line":9,"in_reply_to":"AAAAWH%2F%2FX2o%3D","updated":"2014-03-20 06:50:01.000000000","message":"Done","commit_id":"04972e694a280abd78e3662bf1832acb4fd3fb3b"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"eae9c0cc98113d289651393a64d6135095f9b3f6","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix duplicate name of NVP LBaaS objs not allowed on vShield Edge"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    Duplicate name of LBaaS objs such as pool/vip/app_profile is not"},{"line_number":10,"context_line":"allowed on vShield Edge, so here need a name convention to ensure"},{"line_number":11,"context_line":"name uniqueness on the edge side."},{"line_number":12,"context_line":"Closes-Bug: #1257225"},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAAWH%2F%2FXzA%3D","line":10,"updated":"2014-03-18 10:46:23.000000000","message":"I am not a native speaker but I think \"so here a name convention is needed\" sounds better :)","commit_id":"04972e694a280abd78e3662bf1832acb4fd3fb3b"},{"author":{"_account_id":7317,"name":"Bo Lin","email":"linb@vmware.com","username":"berlin"},"change_message_id":"da99617747640633a9d7e15b183940033ceb2ad2","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix duplicate name of NVP LBaaS objs not allowed on vShield Edge"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    Duplicate name of LBaaS objs such as pool/vip/app_profile is not"},{"line_number":10,"context_line":"allowed on vShield Edge, so here need a name convention to ensure"},{"line_number":11,"context_line":"name uniqueness on the edge side."},{"line_number":12,"context_line":"Closes-Bug: #1257225"},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAAWH%2F%2FQ7k%3D","line":10,"in_reply_to":"AAAAWH%2F%2FXzA%3D","updated":"2014-03-20 06:50:01.000000000","message":"Done","commit_id":"04972e694a280abd78e3662bf1832acb4fd3fb3b"}],"neutron/plugins/nicira/vshield/common/constants.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"32122796b1fd689653f63b1d39e8a09c7117ab0b","unresolved":false,"context_lines":[{"line_number":35,"context_line":"# error code"},{"line_number":36,"context_line":"VCNS_ERROR_CODE_EDGE_NOT_RUNNING \u003d 10013"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"SUFFIX_LENGTH \u003d -8"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"# router status by number"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUX%2F%2FFCk%3D","line":38,"updated":"2014-02-17 09:17:20.000000000","message":"negative value is a bit confusing, isn\u0027t it better to use minus in place, like [:-vcns_const.SUFFIX_LENGTH]?","commit_id":"b0ee34cd2107155704c5050976679d86c7e7c2f1"},{"author":{"_account_id":7317,"name":"Bo Lin","email":"linb@vmware.com","username":"berlin"},"change_message_id":"b366fd569f5e8c8511a4e282c87d15040b98109f","unresolved":false,"context_lines":[{"line_number":35,"context_line":"# error code"},{"line_number":36,"context_line":"VCNS_ERROR_CODE_EDGE_NOT_RUNNING \u003d 10013"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"SUFFIX_LENGTH \u003d -8"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"# router status by number"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUX%2F%2FEyk%3D","line":38,"in_reply_to":"AAAAUX%2F%2FFCk%3D","updated":"2014-02-17 09:49:07.000000000","message":"Done","commit_id":"b0ee34cd2107155704c5050976679d86c7e7c2f1"}],"neutron/plugins/nicira/vshield/edge_loadbalancer_driver.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"6ff7f32fc5e7213f065f2e99337c7a232e1cfcb9","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            context.session, pool_id, edge_id)"},{"line_number":51,"context_line":"        pool_vseid \u003d poolid_map[\u0027pool_vseid\u0027]"},{"line_number":52,"context_line":"        return {"},{"line_number":53,"context_line":"            \u0027name\u0027: vip.get(\u0027name\u0027) + vip[\u0027id\u0027][-vcns_const.SUFFIX_LENGTH:],"},{"line_number":54,"context_line":"            \u0027ipAddress\u0027: vip.get(\u0027address\u0027),"},{"line_number":55,"context_line":"            \u0027protocol\u0027: vip.get(\u0027protocol\u0027),"},{"line_number":56,"context_line":"            \u0027port\u0027: vip.get(\u0027protocol_port\u0027),"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAVX%2F%2FpnQ%3D","line":53,"updated":"2014-03-01 23:47:21.000000000","message":"What happens when vip.get(\u0027name\u0027) is None?\n\nvip.get(\u0027name\u0027, \u0027\u0027)","commit_id":"edf9e63eec57a361de7e006b61d42fc1986ca6da"},{"author":{"_account_id":7317,"name":"Bo Lin","email":"linb@vmware.com","username":"berlin"},"change_message_id":"75cb1734dab180b6319dd59c2af98a3c8b43a9dd","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            context.session, pool_id, edge_id)"},{"line_number":51,"context_line":"        pool_vseid \u003d poolid_map[\u0027pool_vseid\u0027]"},{"line_number":52,"context_line":"        return {"},{"line_number":53,"context_line":"            \u0027name\u0027: vip.get(\u0027name\u0027) + vip[\u0027id\u0027][-vcns_const.SUFFIX_LENGTH:],"},{"line_number":54,"context_line":"            \u0027ipAddress\u0027: vip.get(\u0027address\u0027),"},{"line_number":55,"context_line":"            \u0027protocol\u0027: vip.get(\u0027protocol\u0027),"},{"line_number":56,"context_line":"            \u0027port\u0027: vip.get(\u0027protocol_port\u0027),"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAVn%2F%2F%2BQc%3D","line":53,"in_reply_to":"AAAAVX%2F%2FpnQ%3D","updated":"2014-03-03 03:28:26.000000000","message":"Nit: after recheck of the problem. I found it is unnecessary because the vip\u0027s name has default value \u0027\u0027 and would not be ever None. But it is fine the use vip.get(\u0027name\u0027, \u0027\u0027) for robustness.","commit_id":"edf9e63eec57a361de7e006b61d42fc1986ca6da"},{"author":{"_account_id":7317,"name":"Bo Lin","email":"linb@vmware.com","username":"berlin"},"change_message_id":"9b5df876d08ddd0b28984e36923a1098fe529cbb","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            context.session, pool_id, edge_id)"},{"line_number":51,"context_line":"        pool_vseid \u003d poolid_map[\u0027pool_vseid\u0027]"},{"line_number":52,"context_line":"        return {"},{"line_number":53,"context_line":"            \u0027name\u0027: vip.get(\u0027name\u0027) + vip[\u0027id\u0027][-vcns_const.SUFFIX_LENGTH:],"},{"line_number":54,"context_line":"            \u0027ipAddress\u0027: vip.get(\u0027address\u0027),"},{"line_number":55,"context_line":"            \u0027protocol\u0027: vip.get(\u0027protocol\u0027),"},{"line_number":56,"context_line":"            \u0027port\u0027: vip.get(\u0027protocol_port\u0027),"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAVn%2F%2F%2ByM%3D","line":53,"in_reply_to":"AAAAVX%2F%2FpnQ%3D","updated":"2014-03-03 01:00:12.000000000","message":"Right. Thanks for your remind.","commit_id":"edf9e63eec57a361de7e006b61d42fc1986ca6da"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"6ff7f32fc5e7213f065f2e99337c7a232e1cfcb9","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def _convert_lb_pool(self, context, edge_id, pool, members):"},{"line_number":76,"context_line":"        vsepool \u003d {"},{"line_number":77,"context_line":"            \u0027name\u0027: pool.get(\u0027name\u0027) + pool[\u0027id\u0027][-vcns_const.SUFFIX_LENGTH:],"},{"line_number":78,"context_line":"            \u0027algorithm\u0027: BALANCE_MAP.get("},{"line_number":79,"context_line":"                pool.get(\u0027lb_method\u0027),"},{"line_number":80,"context_line":"                \u0027round-robin\u0027),"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAVX%2F%2FpnU%3D","line":77,"updated":"2014-03-01 23:47:21.000000000","message":"What happens when pool.get(\u0027name\u0027) is None?\n\npool.get(\u0027name\u0027, \u0027\u0027)","commit_id":"edf9e63eec57a361de7e006b61d42fc1986ca6da"},{"author":{"_account_id":7317,"name":"Bo Lin","email":"linb@vmware.com","username":"berlin"},"change_message_id":"9b5df876d08ddd0b28984e36923a1098fe529cbb","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def _convert_lb_pool(self, context, edge_id, pool, members):"},{"line_number":76,"context_line":"        vsepool \u003d {"},{"line_number":77,"context_line":"            \u0027name\u0027: pool.get(\u0027name\u0027) + pool[\u0027id\u0027][-vcns_const.SUFFIX_LENGTH:],"},{"line_number":78,"context_line":"            \u0027algorithm\u0027: BALANCE_MAP.get("},{"line_number":79,"context_line":"                pool.get(\u0027lb_method\u0027),"},{"line_number":80,"context_line":"                \u0027round-robin\u0027),"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAVn%2F%2F%2ByI%3D","line":77,"in_reply_to":"AAAAVX%2F%2FpnU%3D","updated":"2014-03-03 01:00:12.000000000","message":"Done","commit_id":"edf9e63eec57a361de7e006b61d42fc1986ca6da"}],"neutron/tests/unit/vmware/vshield/fake_vcns.py":[{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"eae9c0cc98113d289651393a64d6135095f9b3f6","unresolved":false,"context_lines":[{"line_number":380,"context_line":"            self._fake_virtualservers_dict[edge_id] \u003d {}"},{"line_number":381,"context_line":"        if not self.is_name_unique(self._fake_virtualservers_dict[edge_id],"},{"line_number":382,"context_line":"                                   vip_new[\u0027name\u0027]):"},{"line_number":383,"context_line":"            return self.return_helper(header, response)"},{"line_number":384,"context_line":"        vip_vseid \u003d uuidutils.generate_uuid()"},{"line_number":385,"context_line":"        self._fake_virtualservers_dict[edge_id][vip_vseid] \u003d vip_new"},{"line_number":386,"context_line":"        header \u003d {"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2FXdo%3D","line":383,"updated":"2014-03-18 10:46:23.000000000","message":"Do you test this case in test_lbaas_plugin.py ?","commit_id":"04972e694a280abd78e3662bf1832acb4fd3fb3b"},{"author":{"_account_id":7317,"name":"Bo Lin","email":"linb@vmware.com","username":"berlin"},"change_message_id":"da99617747640633a9d7e15b183940033ceb2ad2","unresolved":false,"context_lines":[{"line_number":380,"context_line":"            self._fake_virtualservers_dict[edge_id] \u003d {}"},{"line_number":381,"context_line":"        if not self.is_name_unique(self._fake_virtualservers_dict[edge_id],"},{"line_number":382,"context_line":"                                   vip_new[\u0027name\u0027]):"},{"line_number":383,"context_line":"            return self.return_helper(header, response)"},{"line_number":384,"context_line":"        vip_vseid \u003d uuidutils.generate_uuid()"},{"line_number":385,"context_line":"        self._fake_virtualservers_dict[edge_id][vip_vseid] \u003d vip_new"},{"line_number":386,"context_line":"        header \u003d {"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2FHOQ%3D","line":383,"in_reply_to":"AAAAWH%2F%2FXdo%3D","updated":"2014-03-20 06:50:01.000000000","message":"Done. Since duplicate name is allowed in Neutron DB but not allowed on Edge side, so i add the name suffix on object name. I have added test cases in test_loadbalancer_driver.py to include this case.","commit_id":"04972e694a280abd78e3662bf1832acb4fd3fb3b"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"eae9c0cc98113d289651393a64d6135095f9b3f6","unresolved":false,"context_lines":[{"line_number":427,"context_line":"            self._fake_pools_dict[edge_id] \u003d {}"},{"line_number":428,"context_line":"        if not self.is_name_unique(self._fake_pools_dict[edge_id],"},{"line_number":429,"context_line":"                                   pool_new[\u0027name\u0027]):"},{"line_number":430,"context_line":"            return self.return_helper(header, response)"},{"line_number":431,"context_line":"        pool_vseid \u003d uuidutils.generate_uuid()"},{"line_number":432,"context_line":"        self._fake_pools_dict[edge_id][pool_vseid] \u003d pool_new"},{"line_number":433,"context_line":"        header \u003d {"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2FXdk%3D","line":430,"updated":"2014-03-18 10:46:23.000000000","message":"Ditto","commit_id":"04972e694a280abd78e3662bf1832acb4fd3fb3b"}]}
