)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"7c145fd04c89bcf34adb090fdc9048b3a257461f","unresolved":false,"context_lines":[{"line_number":22,"context_line":"[1]https://wiki.openstack.org/wiki/Neutron/LBaaS/API_2.0"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: Ibc49282fa39fed864ec9a54d1f7fb38d7034aa9d"},{"line_number":25,"context_line":"Implements-blueprint: lbaas-v2-enablement"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"dae33548_8e3e3ad8","line":25,"range":{"start_line":25,"start_character":11,"end_line":25,"end_character":20},"updated":"2016-02-17 09:43:55.000000000","message":"add DocImpact tag, a new option is introduced","commit_id":"11ef5942cb8ba7480e8d7bbadd61e971fc73378b"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"39c502d7ec8d11b2a84b9ca77f01db246fd39f7d","unresolved":false,"context_lines":[{"line_number":22,"context_line":"[1]https://wiki.openstack.org/wiki/Neutron/LBaaS/API_2.0"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: Ibc49282fa39fed864ec9a54d1f7fb38d7034aa9d"},{"line_number":25,"context_line":"Implements-blueprint: lbaas-v2-enablement"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"dae33548_289b9d73","line":25,"range":{"start_line":25,"start_character":11,"end_line":25,"end_character":20},"in_reply_to":"dae33548_8e3e3ad8","updated":"2016-02-17 10:38:10.000000000","message":"Done","commit_id":"11ef5942cb8ba7480e8d7bbadd61e971fc73378b"},{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"683587faf9970be4446be278ea97371416d3a884","unresolved":false,"context_lines":[{"line_number":14,"context_line":"Load Balancer v2 API."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"In the Load Balancer v2, the responses of the Pool and Member don\u0027t"},{"line_number":17,"context_line":"contian their status. And the status is included in the response of"},{"line_number":18,"context_line":"status_tree[1]."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"We need to query the status_tree to determine the status of them."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"dae33548_767b6cbe","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":7},"updated":"2016-02-18 18:30:13.000000000","message":"Nit: spelling","commit_id":"b45c776e886205e2cd33a92a199a8a24ed936985"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"7ca9078798070f066f7616a44b8be62bc23a65b8","unresolved":false,"context_lines":[{"line_number":14,"context_line":"Load Balancer v2 API."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"In the Load Balancer v2, the responses of the Pool and Member don\u0027t"},{"line_number":17,"context_line":"contian their status. And the status is included in the response of"},{"line_number":18,"context_line":"status_tree[1]."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"We need to query the status_tree to determine the status of them."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"dae33548_166daacc","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":7},"in_reply_to":"dae33548_767b6cbe","updated":"2016-02-19 03:03:20.000000000","message":"Hi German\n\nThanks for your review. I will modify it.","commit_id":"b45c776e886205e2cd33a92a199a8a24ed936985"}],"ceilometer/network/services/base.py":[{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"5f27a18b01be7b1a985977c9dbb3feb61b26b0e8","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        return STATUS.get(status, -1)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @staticmethod"},{"line_number":55,"context_line":"    def get_load_balancer_status_id(value):"},{"line_number":56,"context_line":"        status \u003d value.lower()"},{"line_number":57,"context_line":"        lb_version \u003d cfg.CONF.service_types.neutron_lbaas_version"},{"line_number":58,"context_line":"        if lb_version \u003d\u003d \u0027v1\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a5ae5dd_6f4a78c7","line":55,"range":{"start_line":55,"start_character":41,"end_line":55,"end_character":43},"updated":"2016-02-04 06:35:24.000000000","message":"you don\u0027t need to add new method here, you can just override the get_status_id() method class LBPoolPollster.","commit_id":"19aa7a4c7d4c4511654874b8e49bd5c2e4fa0009"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"4c7ed832325474ecf38dab97bc2fd12af2132d50","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        return STATUS.get(status, -1)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @staticmethod"},{"line_number":55,"context_line":"    def get_load_balancer_status_id(value):"},{"line_number":56,"context_line":"        status \u003d value.lower()"},{"line_number":57,"context_line":"        lb_version \u003d cfg.CONF.service_types.neutron_lbaas_version"},{"line_number":58,"context_line":"        if lb_version \u003d\u003d \u0027v1\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a5ae5dd_63ecfa8f","line":55,"range":{"start_line":55,"start_character":41,"end_line":55,"end_character":43},"in_reply_to":"5a5ae5dd_6f4a78c7","updated":"2016-02-09 13:17:43.000000000","message":"Hi Lian Hao\n\nThanks for your review. This method is used in many subclass. If I don\u0027t add the new method, I have to override it several times in the different class.\n\nThanks","commit_id":"19aa7a4c7d4c4511654874b8e49bd5c2e4fa0009"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"c7d74761ba3ae0fdacb0fa11b25dc08ab61e96d6","unresolved":false,"context_lines":[{"line_number":25,"context_line":"}"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"LOAD_BALANCER_STATUS_V2 \u003d {"},{"line_number":28,"context_line":"    \u0027no_monitor\u0027: 0,"},{"line_number":29,"context_line":"    \u0027error\u0027: 1,"},{"line_number":30,"context_line":"    \u0027degraded\u0027: 2,"},{"line_number":31,"context_line":"    \u0027offline\u0027: 3,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_c129fe38","line":28,"updated":"2016-02-10 23:15:00.000000000","message":"hmm.. do these mappings make sense outside of neutron or is it just for ceilometer?","commit_id":"c7514a179cc83dc8015843f050849094fa123b26"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"0acb453749cb7eb0626805e6c0275eddfcc04cdd","unresolved":false,"context_lines":[{"line_number":25,"context_line":"}"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"LOAD_BALANCER_STATUS_V2 \u003d {"},{"line_number":28,"context_line":"    \u0027no_monitor\u0027: 0,"},{"line_number":29,"context_line":"    \u0027error\u0027: 1,"},{"line_number":30,"context_line":"    \u0027degraded\u0027: 2,"},{"line_number":31,"context_line":"    \u0027offline\u0027: 3,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_78c66d9b","line":28,"in_reply_to":"3a57f1b5_c129fe38","updated":"2016-02-12 08:45:02.000000000","message":"Hi Gordon\n\nThese statuses are supported by LBaaS v2. And this mapping is just for ceilometer.\n\nThanks","commit_id":"c7514a179cc83dc8015843f050849094fa123b26"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"c7d74761ba3ae0fdacb0fa11b25dc08ab61e96d6","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        return STATUS.get(status, -1)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @staticmethod"},{"line_number":55,"context_line":"    def get_load_balancer_status_id(value):"},{"line_number":56,"context_line":"        status \u003d value.lower()"},{"line_number":57,"context_line":"        lb_version \u003d cfg.CONF.service_types.neutron_lbaas_version"},{"line_number":58,"context_line":"        if lb_version \u003d\u003d \u0027v1\u0027:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_419bce72","line":55,"updated":"2016-02-10 23:15:00.000000000","message":"this should probably be in lbaas file if it\u0027s lbaas specific","commit_id":"c7514a179cc83dc8015843f050849094fa123b26"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"0acb453749cb7eb0626805e6c0275eddfcc04cdd","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        return STATUS.get(status, -1)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @staticmethod"},{"line_number":55,"context_line":"    def get_load_balancer_status_id(value):"},{"line_number":56,"context_line":"        status \u003d value.lower()"},{"line_number":57,"context_line":"        lb_version \u003d cfg.CONF.service_types.neutron_lbaas_version"},{"line_number":58,"context_line":"        if lb_version \u003d\u003d \u0027v1\u0027:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_93300d03","line":55,"in_reply_to":"3a57f1b5_419bce72","updated":"2016-02-12 08:45:02.000000000","message":"Hi Gordon\n\nThanks for your review. I will do it.","commit_id":"c7514a179cc83dc8015843f050849094fa123b26"}],"ceilometer/network/services/lbaas.py":[{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"7c145fd04c89bcf34adb090fdc9048b3a257461f","unresolved":false,"context_lines":[{"line_number":36,"context_line":"LB_VERSION \u003d cfg.CONF.service_types.neutron_lbaas_version"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"LOAD_BALANCER_STATUS_V2 \u003d {"},{"line_number":39,"context_line":"    \u0027offline\u0027: 0,"},{"line_number":40,"context_line":"    \u0027online\u0027: 1,"},{"line_number":41,"context_line":"    \u0027no_monitor\u0027: 3,"},{"line_number":42,"context_line":"    \u0027error\u0027: 4,"}],"source_content_type":"text/x-python","patch_set":9,"id":"dae33548_24190f23","line":39,"range":{"start_line":39,"start_character":5,"end_line":39,"end_character":12},"updated":"2016-02-17 09:43:55.000000000","message":"I think maybe better if this mapping is described in (devs) document as well","commit_id":"11ef5942cb8ba7480e8d7bbadd61e971fc73378b"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"39c502d7ec8d11b2a84b9ca77f01db246fd39f7d","unresolved":false,"context_lines":[{"line_number":36,"context_line":"LB_VERSION \u003d cfg.CONF.service_types.neutron_lbaas_version"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"LOAD_BALANCER_STATUS_V2 \u003d {"},{"line_number":39,"context_line":"    \u0027offline\u0027: 0,"},{"line_number":40,"context_line":"    \u0027online\u0027: 1,"},{"line_number":41,"context_line":"    \u0027no_monitor\u0027: 3,"},{"line_number":42,"context_line":"    \u0027error\u0027: 4,"}],"source_content_type":"text/x-python","patch_set":9,"id":"dae33548_c8ae7180","line":39,"range":{"start_line":39,"start_character":5,"end_line":39,"end_character":12},"in_reply_to":"dae33548_24190f23","updated":"2016-02-17 10:38:10.000000000","message":"Hi Zhi Qiang\n\nThanks for your review.\n\nI will update it when all the change sets are merged, based on the final version code.","commit_id":"11ef5942cb8ba7480e8d7bbadd61e971fc73378b"},{"author":{"_account_id":6924,"name":"Pradeep Kilambi","email":"pkilambi@redhat.com","username":"pkilambi"},"change_message_id":"2cfe5bd99aecd11ddf5efcdacfe8e1979be26a9c","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        return \u0027lb_pools\u0027"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def get_load_balancer_status_id(self, value):"},{"line_number":67,"context_line":"        lb_version \u003d LB_VERSION"},{"line_number":68,"context_line":"        if lb_version \u003d\u003d \u0027v1\u0027:"},{"line_number":69,"context_line":"            resource_status \u003d self.get_status_id(value)"},{"line_number":70,"context_line":"        if lb_version \u003d\u003d \u0027v2\u0027:"}],"source_content_type":"text/x-python","patch_set":10,"id":"dae33548_4707cb17","line":67,"updated":"2016-02-17 21:13:12.000000000","message":"this seems unnecessary","commit_id":"e9fe84f834542f99806b08fc39ca52bd8c04d436"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"2e8e15b61deda7727aa79ea35521dbf56f040cb4","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        return \u0027lb_pools\u0027"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def get_load_balancer_status_id(self, value):"},{"line_number":67,"context_line":"        lb_version \u003d LB_VERSION"},{"line_number":68,"context_line":"        if lb_version \u003d\u003d \u0027v1\u0027:"},{"line_number":69,"context_line":"            resource_status \u003d self.get_status_id(value)"},{"line_number":70,"context_line":"        if lb_version \u003d\u003d \u0027v2\u0027:"}],"source_content_type":"text/x-python","patch_set":10,"id":"dae33548_4144c5b5","line":67,"in_reply_to":"dae33548_4707cb17","updated":"2016-02-18 07:49:33.000000000","message":"Hi Pradeep\n\nOkey, thanks for your review.","commit_id":"e9fe84f834542f99806b08fc39ca52bd8c04d436"},{"author":{"_account_id":6924,"name":"Pradeep Kilambi","email":"pkilambi@redhat.com","username":"pkilambi"},"change_message_id":"2cfe5bd99aecd11ddf5efcdacfe8e1979be26a9c","unresolved":false,"context_lines":[{"line_number":169,"context_line":"        if lb_version \u003d\u003d \u0027v2\u0027:"},{"line_number":170,"context_line":"            status \u003d value.lower()"},{"line_number":171,"context_line":"            resource_status \u003d LOAD_BALANCER_STATUS_V2.get(status, -1)"},{"line_number":172,"context_line":"        return resource_status"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":175,"context_line":"        resources \u003d resources or []"}],"source_content_type":"text/x-python","patch_set":10,"id":"dae33548_47550bf8","line":172,"updated":"2016-02-17 21:13:12.000000000","message":"this is duplicate code. Abstract it out, perhaps have a BaseLBaasPollster with common code?","commit_id":"e9fe84f834542f99806b08fc39ca52bd8c04d436"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"2e8e15b61deda7727aa79ea35521dbf56f040cb4","unresolved":false,"context_lines":[{"line_number":169,"context_line":"        if lb_version \u003d\u003d \u0027v2\u0027:"},{"line_number":170,"context_line":"            status \u003d value.lower()"},{"line_number":171,"context_line":"            resource_status \u003d LOAD_BALANCER_STATUS_V2.get(status, -1)"},{"line_number":172,"context_line":"        return resource_status"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    def get_samples(self, manager, cache, resources):"},{"line_number":175,"context_line":"        resources \u003d resources or []"}],"source_content_type":"text/x-python","patch_set":10,"id":"dae33548_6120e9f7","line":172,"in_reply_to":"dae33548_47550bf8","updated":"2016-02-18 07:49:33.000000000","message":"Hi Pradeep\n\nThanks for your review. I will do it.","commit_id":"e9fe84f834542f99806b08fc39ca52bd8c04d436"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"aa146212776251bb1dd38633cf31febe7696ca37","unresolved":false,"context_lines":[{"line_number":34,"context_line":")"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"LOAD_BALANCER_STATUS_V2 \u003d {"},{"line_number":37,"context_line":"    \u0027offline\u0027: 0,"},{"line_number":38,"context_line":"    \u0027online\u0027: 1,"},{"line_number":39,"context_line":"    \u0027no_monitor\u0027: 3,"},{"line_number":40,"context_line":"    \u0027error\u0027: 4,"}],"source_content_type":"text/x-python","patch_set":13,"id":"bae84128_f6dbc4eb","line":37,"updated":"2016-02-19 19:55:57.000000000","message":"just to clarify my earlier statement. 0, 1, 2, etc... those numbers actually mean something in neutron?","commit_id":"19ce2c1a47bb0d31199841ced0e43acfbffc4b9d"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"cff73b8aaf65eaec68a8a6e91c41f948839d91bd","unresolved":false,"context_lines":[{"line_number":34,"context_line":")"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"LOAD_BALANCER_STATUS_V2 \u003d {"},{"line_number":37,"context_line":"    \u0027offline\u0027: 0,"},{"line_number":38,"context_line":"    \u0027online\u0027: 1,"},{"line_number":39,"context_line":"    \u0027no_monitor\u0027: 3,"},{"line_number":40,"context_line":"    \u0027error\u0027: 4,"}],"source_content_type":"text/x-python","patch_set":13,"id":"bae84128_735b1f88","line":37,"in_reply_to":"bae84128_f6dbc4eb","updated":"2016-02-21 11:59:06.000000000","message":"Hi Gordon\n\nThanks for your review.\n\nPradeep has implement the LBaaS v1. Based on the discussion with him in IRC and the original design, we need to convert the metric status into the volume int.\n\nThe \u0027offline\u0027, \u0027online\u0027, \u0027no_monitor\u0027, \u0027error\u0027 and \u0027degraded\u0027 are the status of the lbaas resources ( \u0027loadbalancer\u0027, \u0027listener\u0027, \u0027member\u0027, \u0027pool\u0027 and so on) and supported by LbaaS v2.\n\nIn LBaaS v1:\n\nSTATUS \u003d {\n    \u0027inactive\u0027: 0,\n    \u0027active\u0027: 1,\n    \u0027pending_create\u0027: 2,\n}\n\nThe status \u0027inactive\u0027 maps 0, the status \u0027active\u0027 maps 1 and the status \u0027pending_create\u0027 maps 2.\n\nIn LBaaS v2:\n\nIt has no status \u0027inactive\u0027, \u0027active\u0027 and \u0027pending_create\u0027. It has the status \u0027offline\u0027, \u0027online\u0027, \u0027no_monitor\u0027, \u0027error\u0027 and \u0027degraded\u0027. But in order to follow the original design, we set offline as 0, online as 1, set new status \u0027no_monitor\u0027 as 3, set the new status \u0027error\u0027 as 4, set the new status \u0027degraded\u0027 as 5 and keep 2.\n\nI will update the doc to let the users and other devs to know the mapping relationship between the status of the Lbaas after all the changes are merged.","commit_id":"19ce2c1a47bb0d31199841ced0e43acfbffc4b9d"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"589e6c7406c2ccc139d2e92c33b21fee5e54d8ef","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    def get_load_balancer_status_id(self, value):"},{"line_number":53,"context_line":"        if self.lb_version \u003d\u003d \u0027v1\u0027:"},{"line_number":54,"context_line":"            resource_status \u003d self.get_status_id(value)"},{"line_number":55,"context_line":"        if self.lb_version \u003d\u003d \u0027v2\u0027:"},{"line_number":56,"context_line":"            status \u003d value.lower()"},{"line_number":57,"context_line":"            resource_status \u003d LOAD_BALANCER_STATUS_V2.get(status, -1)"},{"line_number":58,"context_line":"        return resource_status"}],"source_content_type":"text/x-python","patch_set":14,"id":"bae84128_1bf45af0","line":55,"range":{"start_line":55,"start_character":33,"end_line":55,"end_character":35},"updated":"2016-02-22 07:09:04.000000000","message":"elif","commit_id":"1fc71455e72f7cf1dcd19f12e960c1870a53e84e"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"604c5e9a53a7ae58e13d227db5aa0dcd4d3c1af3","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    def get_load_balancer_status_id(self, value):"},{"line_number":53,"context_line":"        if self.lb_version \u003d\u003d \u0027v1\u0027:"},{"line_number":54,"context_line":"            resource_status \u003d self.get_status_id(value)"},{"line_number":55,"context_line":"        if self.lb_version \u003d\u003d \u0027v2\u0027:"},{"line_number":56,"context_line":"            status \u003d value.lower()"},{"line_number":57,"context_line":"            resource_status \u003d LOAD_BALANCER_STATUS_V2.get(status, -1)"},{"line_number":58,"context_line":"        return resource_status"}],"source_content_type":"text/x-python","patch_set":14,"id":"bae84128_d46f60c3","line":55,"range":{"start_line":55,"start_character":33,"end_line":55,"end_character":35},"in_reply_to":"bae84128_1bf45af0","updated":"2016-02-22 07:54:59.000000000","message":"Hi Lian Hao\n\nI will fix it. Thanks for your review.","commit_id":"1fc71455e72f7cf1dcd19f12e960c1870a53e84e"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"589e6c7406c2ccc139d2e92c33b21fee5e54d8ef","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        for pool in resources:"},{"line_number":84,"context_line":"            LOG.debug(\"Load Balancer Pool : %s\" % pool)"},{"line_number":85,"context_line":"            status \u003d self.get_load_balancer_status_id(pool[\u0027status\u0027])"},{"line_number":86,"context_line":"            if status \u003d\u003d -1:"},{"line_number":87,"context_line":"                # unknown status, skip this sample"},{"line_number":88,"context_line":"                LOG.warning(_(\"Unknown status %(stat)s received on pool \""}],"source_content_type":"text/x-python","patch_set":14,"id":"bae84128_9b04eac0","line":85,"range":{"start_line":85,"start_character":66,"end_line":85,"end_character":69},"updated":"2016-02-22 07:09:04.000000000","message":"I don\u0027t think you need to redefine new method here, you may just overwrite the base get_status_id() method","commit_id":"1fc71455e72f7cf1dcd19f12e960c1870a53e84e"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"604c5e9a53a7ae58e13d227db5aa0dcd4d3c1af3","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        for pool in resources:"},{"line_number":84,"context_line":"            LOG.debug(\"Load Balancer Pool : %s\" % pool)"},{"line_number":85,"context_line":"            status \u003d self.get_load_balancer_status_id(pool[\u0027status\u0027])"},{"line_number":86,"context_line":"            if status \u003d\u003d -1:"},{"line_number":87,"context_line":"                # unknown status, skip this sample"},{"line_number":88,"context_line":"                LOG.warning(_(\"Unknown status %(stat)s received on pool \""}],"source_content_type":"text/x-python","patch_set":14,"id":"bae84128_14438843","line":85,"range":{"start_line":85,"start_character":66,"end_line":85,"end_character":69},"in_reply_to":"bae84128_9b04eac0","updated":"2016-02-22 07:54:59.000000000","message":"Hi Lian Hao\n\nThanks for your review.\n\nBecause the LBaaS v1 is deprecated in this release and will lost the support in further release. In this method, we need to call the parent class method to support the LBaaS v1. So we redefine the new method to make the logic clear now. And I will overwrite the method \u0027get_status_id\u0027 when removing the LBaaS v1 support.\n\nThanks","commit_id":"1fc71455e72f7cf1dcd19f12e960c1870a53e84e"}],"ceilometer/neutron_client.py":[{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"5f27a18b01be7b1a985977c9dbb3feb61b26b0e8","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        return resources"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    def list_members_v2(self):"},{"line_number":173,"context_line":"        \"\"\"Method is used to list the members info."},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"           This method is used to get the detailed list of the members"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a5ae5dd_4fc0dce0","line":172,"range":{"start_line":172,"start_character":28,"end_line":172,"end_character":30},"updated":"2016-02-04 06:35:24.000000000","message":"why this doesn\u0027t need logged decorator but list_pools_v2() needs that?","commit_id":"19aa7a4c7d4c4511654874b8e49bd5c2e4fa0009"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"4c7ed832325474ecf38dab97bc2fd12af2132d50","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        return resources"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    def list_members_v2(self):"},{"line_number":173,"context_line":"        \"\"\"Method is used to list the members info."},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"           This method is used to get the detailed list of the members"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a5ae5dd_63eb9ab1","line":172,"range":{"start_line":172,"start_character":28,"end_line":172,"end_character":30},"in_reply_to":"5a5ae5dd_4fc0dce0","updated":"2016-02-09 13:17:43.000000000","message":"Hi Lian Hao\n\nThanks for your review. It should be. I will fix it.\n\nThanks","commit_id":"19aa7a4c7d4c4511654874b8e49bd5c2e4fa0009"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"c7d74761ba3ae0fdacb0fa11b25dc08ab61e96d6","unresolved":false,"context_lines":[{"line_number":26,"context_line":"               default\u003d\u0027network\u0027,"},{"line_number":27,"context_line":"               help\u003d\u0027Neutron service type.\u0027),"},{"line_number":28,"context_line":"    cfg.StrOpt(\u0027neutron_lbaas_version\u0027,"},{"line_number":29,"context_line":"               default\u003d\u0027v1\u0027,"},{"line_number":30,"context_line":"               help\u003d\u0027Neutron load balancer version.\u0027)"},{"line_number":31,"context_line":"]"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_7ec6a74a","line":29,"updated":"2016-02-10 23:15:00.000000000","message":"can this be discovered?","commit_id":"c7514a179cc83dc8015843f050849094fa123b26"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"0acb453749cb7eb0626805e6c0275eddfcc04cdd","unresolved":false,"context_lines":[{"line_number":26,"context_line":"               default\u003d\u0027network\u0027,"},{"line_number":27,"context_line":"               help\u003d\u0027Neutron service type.\u0027),"},{"line_number":28,"context_line":"    cfg.StrOpt(\u0027neutron_lbaas_version\u0027,"},{"line_number":29,"context_line":"               default\u003d\u0027v1\u0027,"},{"line_number":30,"context_line":"               help\u003d\u0027Neutron load balancer version.\u0027)"},{"line_number":31,"context_line":"]"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_b7339513","line":29,"in_reply_to":"3a57f1b5_7ec6a74a","updated":"2016-02-12 08:45:02.000000000","message":"Hi Gordon\n\nI have checked both neutron apis and lbaas apis and not found it has api to response the version of the LBaaS.\n\nThanks","commit_id":"c7514a179cc83dc8015843f050849094fa123b26"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"c7d74761ba3ae0fdacb0fa11b25dc08ab61e96d6","unresolved":false,"context_lines":[{"line_number":161,"context_line":"            pool[\u0027status\u0027] \u003d pool_status[pool_id]"},{"line_number":162,"context_line":"            pool[\u0027lb_method\u0027] \u003d pool.get(\u0027lb_algorithm\u0027)"},{"line_number":163,"context_line":"            pool[\u0027status_description\u0027] \u003d pool[\u0027status\u0027]"},{"line_number":164,"context_line":"            pool[\u0027provider\u0027] \u003d \u0027\u0027"},{"line_number":165,"context_line":"            pool[\u0027vip_id\u0027] \u003d \u0027\u0027"},{"line_number":166,"context_line":"            pool[\u0027subnet_id\u0027] \u003d \u0027\u0027"},{"line_number":167,"context_line":"            resources.append(pool)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_01c076df","line":164,"updated":"2016-02-10 23:15:00.000000000","message":"what\u0027s the point of harcoded empty values?","commit_id":"c7514a179cc83dc8015843f050849094fa123b26"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"0acb453749cb7eb0626805e6c0275eddfcc04cdd","unresolved":false,"context_lines":[{"line_number":161,"context_line":"            pool[\u0027status\u0027] \u003d pool_status[pool_id]"},{"line_number":162,"context_line":"            pool[\u0027lb_method\u0027] \u003d pool.get(\u0027lb_algorithm\u0027)"},{"line_number":163,"context_line":"            pool[\u0027status_description\u0027] \u003d pool[\u0027status\u0027]"},{"line_number":164,"context_line":"            pool[\u0027provider\u0027] \u003d \u0027\u0027"},{"line_number":165,"context_line":"            pool[\u0027vip_id\u0027] \u003d \u0027\u0027"},{"line_number":166,"context_line":"            pool[\u0027subnet_id\u0027] \u003d \u0027\u0027"},{"line_number":167,"context_line":"            resources.append(pool)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_7733dd62","line":164,"in_reply_to":"3a57f1b5_01c076df","updated":"2016-02-12 08:45:02.000000000","message":"Based on the LBaaS v2 design:\n\nThe loadbalancer object(New object in LBaaS v2) is the root object. And the pool object is not the root object anymore. The property \u0027Provider\u0027 should be belonged to loadbalancer object. \n\nAnd the property \u0027vid_id\u0027 and the property \u0027subnet_id\u0027 should be belonged to the listener object (New object in LBaaS v2).\n\nIt\u0027s the design change. In order not to change the metadata in this release, I set them as empty manually.\n\nI have added the loadbalancer/listener object support in the change-set \u0027Part two\u0027. User can get these data in the loadbalancer/listener sample.\n\nThanks for your review.","commit_id":"c7514a179cc83dc8015843f050849094fa123b26"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"c7d74761ba3ae0fdacb0fa11b25dc08ab61e96d6","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        resources \u003d resp.get(\u0027healthmonitors\u0027)"},{"line_number":203,"context_line":"        return resources"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    def _get_poll_and_listener_ids(self, pools):"},{"line_number":206,"context_line":"        \"\"\"Method is used to get the mapping between pool and listener"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"           This method is used to get the pool ids and listener ids"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_e163da18","line":205,"updated":"2016-02-10 23:15:00.000000000","message":"s/poll/pool/?","commit_id":"c7514a179cc83dc8015843f050849094fa123b26"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"0acb453749cb7eb0626805e6c0275eddfcc04cdd","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        resources \u003d resp.get(\u0027healthmonitors\u0027)"},{"line_number":203,"context_line":"        return resources"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    def _get_poll_and_listener_ids(self, pools):"},{"line_number":206,"context_line":"        \"\"\"Method is used to get the mapping between pool and listener"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"           This method is used to get the pool ids and listener ids"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_f747cdb9","line":205,"in_reply_to":"3a57f1b5_e163da18","updated":"2016-02-12 08:45:02.000000000","message":"Hi Gordon\n\nYou are right. I will change it.\n\nThanks","commit_id":"c7514a179cc83dc8015843f050849094fa123b26"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"c7d74761ba3ae0fdacb0fa11b25dc08ab61e96d6","unresolved":false,"context_lines":[{"line_number":267,"context_line":"        status_tree \u003d resp.get(\u0027statuses\u0027).get(\u0027loadbalancer\u0027)"},{"line_number":268,"context_line":"        status_dict \u003d dict()"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"        if resource_type \u003d\u003d \u0027listeners\u0027:"},{"line_number":271,"context_line":"            listeners_status \u003d status_tree.get(\u0027listeners\u0027)"},{"line_number":272,"context_line":"            for listener_status in listeners_status:"},{"line_number":273,"context_line":"                key \u003d listener_status.get(\u0027id\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_e118ba86","line":270,"updated":"2016-02-10 23:15:00.000000000","message":"the following seems to be either/or. we should split them into separate methods","commit_id":"c7514a179cc83dc8015843f050849094fa123b26"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"0acb453749cb7eb0626805e6c0275eddfcc04cdd","unresolved":false,"context_lines":[{"line_number":267,"context_line":"        status_tree \u003d resp.get(\u0027statuses\u0027).get(\u0027loadbalancer\u0027)"},{"line_number":268,"context_line":"        status_dict \u003d dict()"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"        if resource_type \u003d\u003d \u0027listeners\u0027:"},{"line_number":271,"context_line":"            listeners_status \u003d status_tree.get(\u0027listeners\u0027)"},{"line_number":272,"context_line":"            for listener_status in listeners_status:"},{"line_number":273,"context_line":"                key \u003d listener_status.get(\u0027id\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_5226ef15","line":270,"in_reply_to":"3a57f1b5_e118ba86","updated":"2016-02-12 08:45:02.000000000","message":"Hi Gordon\n\nI will separate these methods. Thanks","commit_id":"c7514a179cc83dc8015843f050849094fa123b26"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"c7d74761ba3ae0fdacb0fa11b25dc08ab61e96d6","unresolved":false,"context_lines":[{"line_number":284,"context_line":"                        key \u003d pool_status.get(\u0027id\u0027)"},{"line_number":285,"context_line":"                        value \u003d pool_status.get(\u0027operating_status\u0027)"},{"line_number":286,"context_line":"                        status_dict[key] \u003d value"},{"line_number":287,"context_line":"                break"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        if resource_type \u003d\u003d \u0027members\u0027:"},{"line_number":290,"context_line":"            listeners_status \u003d status_tree.get(\u0027listeners\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_8108e62e","line":287,"updated":"2016-02-10 23:15:00.000000000","message":"this break happens regardless after first loop. it should be inside a conditional OR there shouldn\u0027t be a loop","commit_id":"c7514a179cc83dc8015843f050849094fa123b26"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"0acb453749cb7eb0626805e6c0275eddfcc04cdd","unresolved":false,"context_lines":[{"line_number":284,"context_line":"                        key \u003d pool_status.get(\u0027id\u0027)"},{"line_number":285,"context_line":"                        value \u003d pool_status.get(\u0027operating_status\u0027)"},{"line_number":286,"context_line":"                        status_dict[key] \u003d value"},{"line_number":287,"context_line":"                break"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        if resource_type \u003d\u003d \u0027members\u0027:"},{"line_number":290,"context_line":"            listeners_status \u003d status_tree.get(\u0027listeners\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_f2759bf9","line":287,"in_reply_to":"3a57f1b5_8108e62e","updated":"2016-02-12 08:45:02.000000000","message":"Hi Gordon\n\nThanks for your review. Will do it.","commit_id":"c7514a179cc83dc8015843f050849094fa123b26"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"aad84ae88dc85f5d1356578edd171971b36b9fba","unresolved":false,"context_lines":[{"line_number":26,"context_line":"               default\u003d\u0027network\u0027,"},{"line_number":27,"context_line":"               help\u003d\u0027Neutron service type.\u0027),"},{"line_number":28,"context_line":"    cfg.StrOpt(\u0027neutron_lbaas_version\u0027,"},{"line_number":29,"context_line":"               default\u003d\u0027v1\u0027,"},{"line_number":30,"context_line":"               help\u003d\u0027Neutron load balancer version.\u0027)"},{"line_number":31,"context_line":"]"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"dae33548_520f34e1","line":29,"range":{"start_line":29,"start_character":26,"end_line":29,"end_character":28},"updated":"2016-02-15 03:37:27.000000000","message":"does neutron use v1 as default ?\n\nand it is better to add:\nchoices\u003d(\u0027v1\u0027, \u0027v2\u0027),","commit_id":"73ae7d8993f5989e37293ba333187444eb159941"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"7dee1f39bc5d0e570216c87c3a936543fa3f389c","unresolved":false,"context_lines":[{"line_number":26,"context_line":"               default\u003d\u0027network\u0027,"},{"line_number":27,"context_line":"               help\u003d\u0027Neutron service type.\u0027),"},{"line_number":28,"context_line":"    cfg.StrOpt(\u0027neutron_lbaas_version\u0027,"},{"line_number":29,"context_line":"               default\u003d\u0027v1\u0027,"},{"line_number":30,"context_line":"               help\u003d\u0027Neutron load balancer version.\u0027)"},{"line_number":31,"context_line":"]"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"dae33548_58359344","line":29,"range":{"start_line":29,"start_character":26,"end_line":29,"end_character":28},"in_reply_to":"dae33548_520f34e1","updated":"2016-02-15 05:24:11.000000000","message":"Hi Liu Sheng\n\nThanks for your review. I think now the LBaaS v1 an LBaaS v2 can not co-exist. So if the users need to use the LBaaS v2 and they need to refactor their environment.\n\nI think we can set the default as v1 for the original users and switch to v2 in next release.\n\nDone\n\nThanks","commit_id":"73ae7d8993f5989e37293ba333187444eb159941"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"aad84ae88dc85f5d1356578edd171971b36b9fba","unresolved":false,"context_lines":[{"line_number":230,"context_line":""},{"line_number":231,"context_line":"           This method is used to get the status tree of a specific"},{"line_number":232,"context_line":"           Load Balancer."},{"line_number":233,"context_line":"           : param: loadbalancer_id: The ID of the specific Load"},{"line_number":234,"context_line":"           Balancer."},{"line_number":235,"context_line":"           : return: lb_status_tree: The status of the specific Load"},{"line_number":236,"context_line":"           Balancer. It consists of the load balancer and all of its"}],"source_content_type":"text/x-python","patch_set":7,"id":"dae33548_f2c008e3","line":233,"range":{"start_line":233,"start_character":11,"end_line":233,"end_character":19},"updated":"2016-02-15 03:37:27.000000000","message":"no blank before \"param\" :)\n\nand don\u0027t need indent, please see others docsting","commit_id":"73ae7d8993f5989e37293ba333187444eb159941"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"7dee1f39bc5d0e570216c87c3a936543fa3f389c","unresolved":false,"context_lines":[{"line_number":230,"context_line":""},{"line_number":231,"context_line":"           This method is used to get the status tree of a specific"},{"line_number":232,"context_line":"           Load Balancer."},{"line_number":233,"context_line":"           : param: loadbalancer_id: The ID of the specific Load"},{"line_number":234,"context_line":"           Balancer."},{"line_number":235,"context_line":"           : return: lb_status_tree: The status of the specific Load"},{"line_number":236,"context_line":"           Balancer. It consists of the load balancer and all of its"}],"source_content_type":"text/x-python","patch_set":7,"id":"dae33548_580c7394","line":233,"range":{"start_line":233,"start_character":11,"end_line":233,"end_character":19},"in_reply_to":"dae33548_f2c008e3","updated":"2016-02-15 05:24:11.000000000","message":"Done","commit_id":"73ae7d8993f5989e37293ba333187444eb159941"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"aad84ae88dc85f5d1356578edd171971b36b9fba","unresolved":false,"context_lines":[{"line_number":232,"context_line":"           Load Balancer."},{"line_number":233,"context_line":"           : param: loadbalancer_id: The ID of the specific Load"},{"line_number":234,"context_line":"           Balancer."},{"line_number":235,"context_line":"           : return: lb_status_tree: The status of the specific Load"},{"line_number":236,"context_line":"           Balancer. It consists of the load balancer and all of its"},{"line_number":237,"context_line":"           children\u0027s provisioning and operating statuses"},{"line_number":238,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"dae33548_32bb9074","line":235,"range":{"start_line":235,"start_character":11,"end_line":235,"end_character":19},"updated":"2016-02-15 03:37:27.000000000","message":"ditto","commit_id":"73ae7d8993f5989e37293ba333187444eb159941"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"7dee1f39bc5d0e570216c87c3a936543fa3f389c","unresolved":false,"context_lines":[{"line_number":232,"context_line":"           Load Balancer."},{"line_number":233,"context_line":"           : param: loadbalancer_id: The ID of the specific Load"},{"line_number":234,"context_line":"           Balancer."},{"line_number":235,"context_line":"           : return: lb_status_tree: The status of the specific Load"},{"line_number":236,"context_line":"           Balancer. It consists of the load balancer and all of its"},{"line_number":237,"context_line":"           children\u0027s provisioning and operating statuses"},{"line_number":238,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"dae33548_3811afad","line":235,"range":{"start_line":235,"start_character":11,"end_line":235,"end_character":19},"in_reply_to":"dae33548_32bb9074","updated":"2016-02-15 05:24:11.000000000","message":"Done","commit_id":"73ae7d8993f5989e37293ba333187444eb159941"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"7c145fd04c89bcf34adb090fdc9048b3a257461f","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    def list_pools_v2(self):"},{"line_number":143,"context_line":"        \"\"\"This method is used to get the pools list."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"           This method uses Load Balancer v2_0 API to achieve"},{"line_number":146,"context_line":"           the detailed list of the pools."},{"line_number":147,"context_line":"           :return: resources: The list of the pool resources"},{"line_number":148,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"dae33548_440b738e","line":145,"range":{"start_line":145,"start_character":11,"end_line":145,"end_character":15},"updated":"2016-02-17 09:43:55.000000000","message":"most docstrings don\u0027t indent here, maybe you should follow their style\n\ndocstring for param and return should in a independent paragraph, you can check the final effect in the CI/local test, for i.e. http://docs-draft.openstack.org/18/274518/9/check/gate-ceilometer-docs/ff87a0d//doc/build/html/api/ceilometer.neutron_client.html#ceilometer.neutron_client.Client.list_pools_v2","commit_id":"11ef5942cb8ba7480e8d7bbadd61e971fc73378b"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"39c502d7ec8d11b2a84b9ca77f01db246fd39f7d","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    def list_pools_v2(self):"},{"line_number":143,"context_line":"        \"\"\"This method is used to get the pools list."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"           This method uses Load Balancer v2_0 API to achieve"},{"line_number":146,"context_line":"           the detailed list of the pools."},{"line_number":147,"context_line":"           :return: resources: The list of the pool resources"},{"line_number":148,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"dae33548_e8c9b55a","line":145,"range":{"start_line":145,"start_character":11,"end_line":145,"end_character":15},"in_reply_to":"dae33548_440b738e","updated":"2016-02-17 10:38:10.000000000","message":"Done","commit_id":"11ef5942cb8ba7480e8d7bbadd61e971fc73378b"},{"author":{"_account_id":6924,"name":"Pradeep Kilambi","email":"pkilambi@redhat.com","username":"pkilambi"},"change_message_id":"2cfe5bd99aecd11ddf5efcdacfe8e1979be26a9c","unresolved":false,"context_lines":[{"line_number":26,"context_line":"               default\u003d\u0027network\u0027,"},{"line_number":27,"context_line":"               help\u003d\u0027Neutron service type.\u0027),"},{"line_number":28,"context_line":"    cfg.StrOpt(\u0027neutron_lbaas_version\u0027,"},{"line_number":29,"context_line":"               default\u003d\u0027v1\u0027,"},{"line_number":30,"context_line":"               choices\u003d(\u0027v1\u0027, \u0027v2\u0027),"},{"line_number":31,"context_line":"               help\u003d\u0027Neutron load balancer version.\u0027)"},{"line_number":32,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":10,"id":"dae33548_c79d9b67","line":29,"updated":"2016-02-17 21:13:12.000000000","message":"would it make sense to default to v2 here instead?","commit_id":"e9fe84f834542f99806b08fc39ca52bd8c04d436"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"2e8e15b61deda7727aa79ea35521dbf56f040cb4","unresolved":false,"context_lines":[{"line_number":26,"context_line":"               default\u003d\u0027network\u0027,"},{"line_number":27,"context_line":"               help\u003d\u0027Neutron service type.\u0027),"},{"line_number":28,"context_line":"    cfg.StrOpt(\u0027neutron_lbaas_version\u0027,"},{"line_number":29,"context_line":"               default\u003d\u0027v1\u0027,"},{"line_number":30,"context_line":"               choices\u003d(\u0027v1\u0027, \u0027v2\u0027),"},{"line_number":31,"context_line":"               help\u003d\u0027Neutron load balancer version.\u0027)"},{"line_number":32,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":10,"id":"dae33548_e18239c7","line":29,"in_reply_to":"dae33548_c79d9b67","updated":"2016-02-18 07:49:33.000000000","message":"Done","commit_id":"e9fe84f834542f99806b08fc39ca52bd8c04d436"},{"author":{"_account_id":6829,"name":"Neela Shah","email":"neela@us.ibm.com","username":"neela"},"change_message_id":"45614e57c905aa0d0357e743a5cc1267d038b9af","unresolved":false,"context_lines":[{"line_number":27,"context_line":"               help\u003d\u0027Neutron service type.\u0027),"},{"line_number":28,"context_line":"    cfg.StrOpt(\u0027neutron_lbaas_version\u0027,"},{"line_number":29,"context_line":"               default\u003d\u0027v1\u0027,"},{"line_number":30,"context_line":"               choices\u003d(\u0027v1\u0027, \u0027v2\u0027),"},{"line_number":31,"context_line":"               help\u003d\u0027Neutron load balancer version.\u0027)"},{"line_number":32,"context_line":"]"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"dae33548_9ab48a35","line":30,"updated":"2016-02-17 21:25:51.000000000","message":"LBaaS v1 was deprecated in Liberty and v2 is supposed to be the default starting Mitaka, so it makes sense to default to v2 here as well.","commit_id":"e9fe84f834542f99806b08fc39ca52bd8c04d436"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"2e8e15b61deda7727aa79ea35521dbf56f040cb4","unresolved":false,"context_lines":[{"line_number":27,"context_line":"               help\u003d\u0027Neutron service type.\u0027),"},{"line_number":28,"context_line":"    cfg.StrOpt(\u0027neutron_lbaas_version\u0027,"},{"line_number":29,"context_line":"               default\u003d\u0027v1\u0027,"},{"line_number":30,"context_line":"               choices\u003d(\u0027v1\u0027, \u0027v2\u0027),"},{"line_number":31,"context_line":"               help\u003d\u0027Neutron load balancer version.\u0027)"},{"line_number":32,"context_line":"]"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"dae33548_41720512","line":30,"in_reply_to":"dae33548_9ab48a35","updated":"2016-02-18 07:49:33.000000000","message":"Hi Neela\n\nThanks for your review. I will do it.","commit_id":"e9fe84f834542f99806b08fc39ca52bd8c04d436"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"5a9dab7538743601745863344aa8eba3225c1f5f","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        This method uses Load Balancer v2_0 API to achieve"},{"line_number":146,"context_line":"        the detailed list of the pools."},{"line_number":147,"context_line":"        :return: resources: The list of the pool resources"},{"line_number":148,"context_line":"        \"\"\""},{"line_number":149,"context_line":"        pool_status \u003d dict()"},{"line_number":150,"context_line":"        resp \u003d self.client.list_lbaas_pools()"}],"source_content_type":"text/x-python","patch_set":12,"id":"bae84128_07f8d5e4","line":147,"range":{"start_line":147,"start_character":9,"end_line":147,"end_character":15},"updated":"2016-02-19 11:27:05.000000000","message":"this (and the others) docstring will not parsed properly by doc tools,\n\n   \u0027\u0027\u0027one line summary\n   \n   multi lines details\n   \n   :param x: some words\n   :return[ x]: some words\n   \u0027\u0027\u0027\n\nsee http://docs.openstack.org/developer/hacking/#docstrings","commit_id":"98894d3c2a1a411b68ff6ba7b0768fffd4fa71ae"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"ff8774635c0cc2e41cbb122c08a8f872938cca82","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        This method uses Load Balancer v2_0 API to achieve"},{"line_number":146,"context_line":"        the detailed list of the pools."},{"line_number":147,"context_line":"        :return: resources: The list of the pool resources"},{"line_number":148,"context_line":"        \"\"\""},{"line_number":149,"context_line":"        pool_status \u003d dict()"},{"line_number":150,"context_line":"        resp \u003d self.client.list_lbaas_pools()"}],"source_content_type":"text/x-python","patch_set":12,"id":"bae84128_2363371c","line":147,"range":{"start_line":147,"start_character":9,"end_line":147,"end_character":15},"in_reply_to":"bae84128_07f8d5e4","updated":"2016-02-19 17:38:03.000000000","message":"Done","commit_id":"98894d3c2a1a411b68ff6ba7b0768fffd4fa71ae"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"5a9dab7538743601745863344aa8eba3225c1f5f","unresolved":false,"context_lines":[{"line_number":327,"context_line":"        for listener_status in listeners_status:"},{"line_number":328,"context_line":"            listener_id \u003d listener_status.get(\u0027id\u0027)"},{"line_number":329,"context_line":"            if listener_id \u003d\u003d parent_id:"},{"line_number":330,"context_line":"                polls_status \u003d listener_status.get(\u0027pools\u0027)"},{"line_number":331,"context_line":"                for pool_status in polls_status:"},{"line_number":332,"context_line":"                    key \u003d pool_status.get(\u0027id\u0027)"},{"line_number":333,"context_line":"                    value \u003d pool_status.get(\u0027operating_status\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"bae84128_fa9d895a","line":330,"range":{"start_line":330,"start_character":16,"end_line":330,"end_character":28},"updated":"2016-02-19 11:27:05.000000000","message":"typo, pools_status?","commit_id":"98894d3c2a1a411b68ff6ba7b0768fffd4fa71ae"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"ff8774635c0cc2e41cbb122c08a8f872938cca82","unresolved":false,"context_lines":[{"line_number":327,"context_line":"        for listener_status in listeners_status:"},{"line_number":328,"context_line":"            listener_id \u003d listener_status.get(\u0027id\u0027)"},{"line_number":329,"context_line":"            if listener_id \u003d\u003d parent_id:"},{"line_number":330,"context_line":"                polls_status \u003d listener_status.get(\u0027pools\u0027)"},{"line_number":331,"context_line":"                for pool_status in polls_status:"},{"line_number":332,"context_line":"                    key \u003d pool_status.get(\u0027id\u0027)"},{"line_number":333,"context_line":"                    value \u003d pool_status.get(\u0027operating_status\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"bae84128_deb98030","line":330,"range":{"start_line":330,"start_character":16,"end_line":330,"end_character":28},"in_reply_to":"bae84128_fa9d895a","updated":"2016-02-19 17:38:03.000000000","message":"Done","commit_id":"98894d3c2a1a411b68ff6ba7b0768fffd4fa71ae"},{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"252fa53874dfb0b1ee26c738ddce8f97af2f9462","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            # to the loadbalancer resource and  the properties \u0027vip_id\u0027 and"},{"line_number":168,"context_line":"            # \u0027subnet_id\u0027 should not be belonged to the pool resource."},{"line_number":169,"context_line":"            # In order not to change the metadata of the pool resource this"},{"line_number":170,"context_line":"            # release, set them as empty manually."},{"line_number":171,"context_line":"            pool[\u0027provider\u0027] \u003d \u0027\u0027"},{"line_number":172,"context_line":"            pool[\u0027vip_id\u0027] \u003d \u0027\u0027"},{"line_number":173,"context_line":"            pool[\u0027subnet_id\u0027] \u003d \u0027\u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"bae84128_1378d38e","line":170,"range":{"start_line":170,"start_character":41,"end_line":170,"end_character":49},"updated":"2016-02-21 09:48:13.000000000","message":"This comment is worded very awkwardly. It should probably read something more like:\n\n\"Based on the LBaaSv2 design, the properties \u0027vip_id\u0027 and \u0027subnet_id\u0027 should belong to the loadbalancer resource and not to the pool resource. However, because we don\u0027t want to change the metadata of the pool resource this release, we set them to empty values manually.\"","commit_id":"19ce2c1a47bb0d31199841ced0e43acfbffc4b9d"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"cff73b8aaf65eaec68a8a6e91c41f948839d91bd","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            # to the loadbalancer resource and  the properties \u0027vip_id\u0027 and"},{"line_number":168,"context_line":"            # \u0027subnet_id\u0027 should not be belonged to the pool resource."},{"line_number":169,"context_line":"            # In order not to change the metadata of the pool resource this"},{"line_number":170,"context_line":"            # release, set them as empty manually."},{"line_number":171,"context_line":"            pool[\u0027provider\u0027] \u003d \u0027\u0027"},{"line_number":172,"context_line":"            pool[\u0027vip_id\u0027] \u003d \u0027\u0027"},{"line_number":173,"context_line":"            pool[\u0027subnet_id\u0027] \u003d \u0027\u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"bae84128_8e731ce7","line":170,"range":{"start_line":170,"start_character":41,"end_line":170,"end_character":49},"in_reply_to":"bae84128_1378d38e","updated":"2016-02-21 11:59:06.000000000","message":"Hi Stephen\n\nThanks for your review. I will change it.\n\nThanks","commit_id":"19ce2c1a47bb0d31199841ced0e43acfbffc4b9d"},{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"252fa53874dfb0b1ee26c738ddce8f97af2f9462","unresolved":false,"context_lines":[{"line_number":188,"context_line":"        for pool in pools:"},{"line_number":189,"context_line":"            pool_id \u003d pool.get(\u0027id\u0027)"},{"line_number":190,"context_line":"            listener_id \u003d pool.get(\u0027listeners\u0027)[0].get(\u0027id\u0027)"},{"line_number":191,"context_line":"            lb_id \u003d self._get_loadbalancer_id_with_listener_id(listener_id)"},{"line_number":192,"context_line":"            status \u003d self._get_member_status(lb_id, [listener_id, pool_id])"},{"line_number":193,"context_line":"            resp \u003d self.client.list_lbaas_members(pool_id)"},{"line_number":194,"context_line":"            temp_members \u003d resp.get(\u0027members\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"bae84128_9392239e","line":191,"range":{"start_line":191,"start_character":25,"end_line":191,"end_character":62},"updated":"2016-02-21 09:48:13.000000000","message":"Nit: When the \u0027independent pools\u0027 patch lands (which should be any day now), pools are directly associated with load balancer objects, and there should thereafter be no need to find the load balancer ID by traversing the listener.  (See https://review.openstack.org/#/c/218560 or specifically: https://review.openstack.org/#/c/218560/20/neutron_lbaas/extensions/sharedpools.py )\n\nNote also that this code should still technically work, but if there are any pools not associated with listeners, trying to find the load balancer through the listener isn\u0027t going to work. (The status of these pools and their members should be \u0027OFFLINE\u0027 anyway, at least for the default Octavia or namespace drivers, but you will get a \u0027listeners\u0027 list that is empty, and the above reference to pool.get(\u0027listeners\u0027)[0] will fail.)","commit_id":"19ce2c1a47bb0d31199841ced0e43acfbffc4b9d"},{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"252fa53874dfb0b1ee26c738ddce8f97af2f9462","unresolved":false,"context_lines":[{"line_number":189,"context_line":"            pool_id \u003d pool.get(\u0027id\u0027)"},{"line_number":190,"context_line":"            listener_id \u003d pool.get(\u0027listeners\u0027)[0].get(\u0027id\u0027)"},{"line_number":191,"context_line":"            lb_id \u003d self._get_loadbalancer_id_with_listener_id(listener_id)"},{"line_number":192,"context_line":"            status \u003d self._get_member_status(lb_id, [listener_id, pool_id])"},{"line_number":193,"context_line":"            resp \u003d self.client.list_lbaas_members(pool_id)"},{"line_number":194,"context_line":"            temp_members \u003d resp.get(\u0027members\u0027)"},{"line_number":195,"context_line":"            for member in temp_members:"}],"source_content_type":"text/x-python","patch_set":13,"id":"bae84128_f391ef9a","line":192,"range":{"start_line":192,"start_character":53,"end_line":192,"end_character":64},"updated":"2016-02-21 09:48:13.000000000","message":"Same thing with the _get_member_status method: When the above patch lands, you shouldn\u0027t need the listener_id here anymore.","commit_id":"19ce2c1a47bb0d31199841ced0e43acfbffc4b9d"},{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"252fa53874dfb0b1ee26c738ddce8f97af2f9462","unresolved":false,"context_lines":[{"line_number":226,"context_line":"        pool_listener_dict \u003d dict()"},{"line_number":227,"context_line":"        for pool in pools:"},{"line_number":228,"context_line":"            key \u003d pool.get(\"id\")"},{"line_number":229,"context_line":"            value \u003d pool.get(\u0027listeners\u0027)[0].get(\u0027id\u0027)"},{"line_number":230,"context_line":"            pool_listener_dict[key] \u003d value"},{"line_number":231,"context_line":"        return pool_listener_dict"},{"line_number":232,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"bae84128_53cedbb4","line":229,"range":{"start_line":229,"start_character":28,"end_line":229,"end_character":30},"updated":"2016-02-21 09:48:13.000000000","message":"This should be a nested loop: (pools can have many listeners, and referencing item [0] in the list isn\u0027t going to get you the complete list.","commit_id":"19ce2c1a47bb0d31199841ced0e43acfbffc4b9d"},{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"252fa53874dfb0b1ee26c738ddce8f97af2f9462","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        for pool in pools:"},{"line_number":228,"context_line":"            key \u003d pool.get(\"id\")"},{"line_number":229,"context_line":"            value \u003d pool.get(\u0027listeners\u0027)[0].get(\u0027id\u0027)"},{"line_number":230,"context_line":"            pool_listener_dict[key] \u003d value"},{"line_number":231,"context_line":"        return pool_listener_dict"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"    def _retrieve_loadbalancer_status_tree(self, loadbalancer_id):"}],"source_content_type":"text/x-python","patch_set":13,"id":"bae84128_333877a0","line":230,"range":{"start_line":230,"start_character":12,"end_line":230,"end_character":30},"updated":"2016-02-21 09:48:13.000000000","message":"Also here: Again, with the above \u0027independent pools\u0027 patch, pools can have many listeners. So the \u0027value\u0027 here should actually be a list...  which is really just the pool.get(\u0027listeners\u0027) list.","commit_id":"19ce2c1a47bb0d31199841ced0e43acfbffc4b9d"},{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"252fa53874dfb0b1ee26c738ddce8f97af2f9462","unresolved":false,"context_lines":[{"line_number":279,"context_line":"        for listener_status in listeners_status:"},{"line_number":280,"context_line":"            listener_id \u003d listener_status.get(\u0027id\u0027)"},{"line_number":281,"context_line":"            if listener_id \u003d\u003d parent_id[0]:"},{"line_number":282,"context_line":"                pools_status \u003d listener_status.get(\u0027pools\u0027)"},{"line_number":283,"context_line":"                for pool_status in pools_status:"},{"line_number":284,"context_line":"                    if pool_status.get(\u0027id\u0027) \u003d\u003d parent_id[1]:"},{"line_number":285,"context_line":"                        members_status \u003d pool_status.get(\u0027members\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"bae84128_d3682b8a","line":282,"range":{"start_line":282,"start_character":31,"end_line":282,"end_character":46},"updated":"2016-02-21 09:48:13.000000000","message":"With the above \u0027independent pools\u0027 patch, Listeners and Pools have an N:M relationship. Listeners can be associated with 0 or more pools, but pools also can be associated with 0 or more listeners. It may therefore not make sense to strictly list pool statuses under listeners. (Also, the \"tree\" may contain redundancy thereafter.) With that patch, they are more like \"sibling objects\" which both live directly under the load balancer parent object.","commit_id":"19ce2c1a47bb0d31199841ced0e43acfbffc4b9d"},{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"252fa53874dfb0b1ee26c738ddce8f97af2f9462","unresolved":false,"context_lines":[{"line_number":335,"context_line":"        for listener_status in listeners_status:"},{"line_number":336,"context_line":"            listener_id \u003d listener_status.get(\u0027id\u0027)"},{"line_number":337,"context_line":"            if listener_id \u003d\u003d parent_id:"},{"line_number":338,"context_line":"                pools_status \u003d listener_status.get(\u0027pools\u0027)"},{"line_number":339,"context_line":"                for pool_status in pools_status:"},{"line_number":340,"context_line":"                    key \u003d pool_status.get(\u0027id\u0027)"},{"line_number":341,"context_line":"                    value \u003d pool_status.get(\u0027operating_status\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"bae84128_b3fac7bb","line":338,"range":{"start_line":338,"start_character":16,"end_line":338,"end_character":28},"updated":"2016-02-21 09:48:13.000000000","message":"Again, see my above comment about pools not being strictly under listeners (and how structuring things that way will lead to redundancies in the status tree.)","commit_id":"19ce2c1a47bb0d31199841ced0e43acfbffc4b9d"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"589e6c7406c2ccc139d2e92c33b21fee5e54d8ef","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        if self.lb_version \u003d\u003d \u0027v1\u0027:"},{"line_number":87,"context_line":"            resp \u003d self.client.list_pools()"},{"line_number":88,"context_line":"            resources \u003d resp.get(\u0027pools\u0027)"},{"line_number":89,"context_line":"        if self.lb_version \u003d\u003d \u0027v2\u0027:"},{"line_number":90,"context_line":"            resources \u003d self.list_pools_v2()"},{"line_number":91,"context_line":"        return resources"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"bae84128_dbff92ff","line":89,"range":{"start_line":89,"start_character":33,"end_line":89,"end_character":35},"updated":"2016-02-22 07:09:04.000000000","message":"s/if/elif/","commit_id":"1fc71455e72f7cf1dcd19f12e960c1870a53e84e"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"604c5e9a53a7ae58e13d227db5aa0dcd4d3c1af3","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        if self.lb_version \u003d\u003d \u0027v1\u0027:"},{"line_number":87,"context_line":"            resp \u003d self.client.list_pools()"},{"line_number":88,"context_line":"            resources \u003d resp.get(\u0027pools\u0027)"},{"line_number":89,"context_line":"        if self.lb_version \u003d\u003d \u0027v2\u0027:"},{"line_number":90,"context_line":"            resources \u003d self.list_pools_v2()"},{"line_number":91,"context_line":"        return resources"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"bae84128_54bb5027","line":89,"range":{"start_line":89,"start_character":33,"end_line":89,"end_character":35},"in_reply_to":"bae84128_dbff92ff","updated":"2016-02-22 07:54:59.000000000","message":"Hi Lian Hao\n\nThanks for your review.\n\nI will fix it.","commit_id":"1fc71455e72f7cf1dcd19f12e960c1870a53e84e"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"589e6c7406c2ccc139d2e92c33b21fee5e54d8ef","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        if self.lb_version \u003d\u003d \u0027v1\u0027:"},{"line_number":97,"context_line":"            resp \u003d self.client.list_members()"},{"line_number":98,"context_line":"            resources \u003d resp.get(\u0027members\u0027)"},{"line_number":99,"context_line":"        if self.lb_version \u003d\u003d \u0027v2\u0027:"},{"line_number":100,"context_line":"            resources \u003d self.list_members_v2()"},{"line_number":101,"context_line":"        return resources"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"bae84128_3b0f9e2f","line":99,"range":{"start_line":99,"start_character":33,"end_line":99,"end_character":35},"updated":"2016-02-22 07:09:04.000000000","message":"ditto","commit_id":"1fc71455e72f7cf1dcd19f12e960c1870a53e84e"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"604c5e9a53a7ae58e13d227db5aa0dcd4d3c1af3","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        if self.lb_version \u003d\u003d \u0027v1\u0027:"},{"line_number":97,"context_line":"            resp \u003d self.client.list_members()"},{"line_number":98,"context_line":"            resources \u003d resp.get(\u0027members\u0027)"},{"line_number":99,"context_line":"        if self.lb_version \u003d\u003d \u0027v2\u0027:"},{"line_number":100,"context_line":"            resources \u003d self.list_members_v2()"},{"line_number":101,"context_line":"        return resources"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"bae84128_1498a8bf","line":99,"range":{"start_line":99,"start_character":33,"end_line":99,"end_character":35},"in_reply_to":"bae84128_3b0f9e2f","updated":"2016-02-22 07:54:59.000000000","message":"Hi Lian Hao\n\nThanks for your review. I will fix it.","commit_id":"1fc71455e72f7cf1dcd19f12e960c1870a53e84e"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"589e6c7406c2ccc139d2e92c33b21fee5e54d8ef","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        if self.lb_version \u003d\u003d \u0027v1\u0027:"},{"line_number":107,"context_line":"            resp \u003d self.client.list_health_monitors()"},{"line_number":108,"context_line":"            resources \u003d resp.get(\u0027health_monitors\u0027)"},{"line_number":109,"context_line":"        if self.lb_version \u003d\u003d \u0027v2\u0027:"},{"line_number":110,"context_line":"            resources \u003d self.list_health_monitors_v2()"},{"line_number":111,"context_line":"        return resources"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"bae84128_db2672b9","line":109,"range":{"start_line":109,"start_character":33,"end_line":109,"end_character":35},"updated":"2016-02-22 07:09:04.000000000","message":"ditto","commit_id":"1fc71455e72f7cf1dcd19f12e960c1870a53e84e"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"604c5e9a53a7ae58e13d227db5aa0dcd4d3c1af3","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        if self.lb_version \u003d\u003d \u0027v1\u0027:"},{"line_number":107,"context_line":"            resp \u003d self.client.list_health_monitors()"},{"line_number":108,"context_line":"            resources \u003d resp.get(\u0027health_monitors\u0027)"},{"line_number":109,"context_line":"        if self.lb_version \u003d\u003d \u0027v2\u0027:"},{"line_number":110,"context_line":"            resources \u003d self.list_health_monitors_v2()"},{"line_number":111,"context_line":"        return resources"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"bae84128_94eaf80d","line":109,"range":{"start_line":109,"start_character":33,"end_line":109,"end_character":35},"in_reply_to":"bae84128_db2672b9","updated":"2016-02-22 07:54:59.000000000","message":"Hi Lian Hao\n\nThanks for your review. I will fix it.","commit_id":"1fc71455e72f7cf1dcd19f12e960c1870a53e84e"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"2f597d7ec13899ea438fcc1f7b6ce7244731b439","unresolved":false,"context_lines":[{"line_number":284,"context_line":"                    if pool_status.get(\u0027id\u0027) \u003d\u003d parent_id[1]:"},{"line_number":285,"context_line":"                        members_status \u003d pool_status.get(\u0027members\u0027)"},{"line_number":286,"context_line":"                        for member_status in members_status:"},{"line_number":287,"context_line":"                            key \u003d member_status.get(\u0027id\u0027)"},{"line_number":288,"context_line":"                            value \u003d member_status.get(\u0027operating_status\u0027)"},{"line_number":289,"context_line":"                            status_dict[key] \u003d value"},{"line_number":290,"context_line":"                        break"}],"source_content_type":"text/x-python","patch_set":15,"id":"bae84128_2f7e2eae","line":287,"updated":"2016-02-22 15:03:43.000000000","message":"i think this should be pool_status[\u0027id\u0027] and pool_status[\u0027operating_status\u0027]. it should be wrapped in try/except. i don\u0027t think we should be setting None as a key.","commit_id":"c4096a25f4b5c79b11b2ba7b0b40970b62628f7b"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"e39efa2a15e275f00bae679c7d528af1dafd0193","unresolved":false,"context_lines":[{"line_number":284,"context_line":"                    if pool_status.get(\u0027id\u0027) \u003d\u003d parent_id[1]:"},{"line_number":285,"context_line":"                        members_status \u003d pool_status.get(\u0027members\u0027)"},{"line_number":286,"context_line":"                        for member_status in members_status:"},{"line_number":287,"context_line":"                            key \u003d member_status.get(\u0027id\u0027)"},{"line_number":288,"context_line":"                            value \u003d member_status.get(\u0027operating_status\u0027)"},{"line_number":289,"context_line":"                            status_dict[key] \u003d value"},{"line_number":290,"context_line":"                        break"}],"source_content_type":"text/x-python","patch_set":15,"id":"bae84128_af84f7d3","line":287,"in_reply_to":"bae84128_2f7e2eae","updated":"2016-02-22 15:21:09.000000000","message":"Hi Gordon\n\nThanks for your review. Could we just skip the item without \u0027id\u0027? \nI can add a judgement \n\u0027if key is None:\n    break\u0027\nThe situation that the \u0027operating_status\u0027 is none is handled in the method get_sample() in the lbaas.py.\n\nThanks","commit_id":"c4096a25f4b5c79b11b2ba7b0b40970b62628f7b"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"2f597d7ec13899ea438fcc1f7b6ce7244731b439","unresolved":false,"context_lines":[{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        return status_dict"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    def _get_listener_status(self, loadbalancer_id):"},{"line_number":296,"context_line":"        \"\"\"Method used to get the status of the listener resource."},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        This method is used to get the status of the listener"}],"source_content_type":"text/x-python","patch_set":15,"id":"bae84128_af16be52","line":295,"updated":"2016-02-22 15:03:43.000000000","message":"this isn\u0027t used anywhere.","commit_id":"c4096a25f4b5c79b11b2ba7b0b40970b62628f7b"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"e39efa2a15e275f00bae679c7d528af1dafd0193","unresolved":false,"context_lines":[{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        return status_dict"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    def _get_listener_status(self, loadbalancer_id):"},{"line_number":296,"context_line":"        \"\"\"Method used to get the status of the listener resource."},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        This method is used to get the status of the listener"}],"source_content_type":"text/x-python","patch_set":15,"id":"bae84128_cf505b61","line":295,"in_reply_to":"bae84128_af16be52","updated":"2016-02-22 15:21:09.000000000","message":"Hi Gordon\n\nThanks for your review. This method is used in the Part two change set.\n\nThanks","commit_id":"c4096a25f4b5c79b11b2ba7b0b40970b62628f7b"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"2f597d7ec13899ea438fcc1f7b6ce7244731b439","unresolved":false,"context_lines":[{"line_number":309,"context_line":""},{"line_number":310,"context_line":"        listeners_status \u003d status_tree.get(\u0027listeners\u0027)"},{"line_number":311,"context_line":"        for listener_status in listeners_status:"},{"line_number":312,"context_line":"            key \u003d listener_status.get(\u0027id\u0027)"},{"line_number":313,"context_line":"            value \u003d listener_status.get(\u0027operating_status\u0027)"},{"line_number":314,"context_line":"            status_dict[key] \u003d value"},{"line_number":315,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"bae84128_4f83b298","line":312,"updated":"2016-02-22 15:03:43.000000000","message":"i think this should be pool_status[\u0027id\u0027] and pool_status[\u0027operating_status\u0027]. it should be wrapped in try/except. i don\u0027t think we should be setting None as a key.","commit_id":"c4096a25f4b5c79b11b2ba7b0b40970b62628f7b"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"2f597d7ec13899ea438fcc1f7b6ce7244731b439","unresolved":false,"context_lines":[{"line_number":337,"context_line":"            if listener_id \u003d\u003d parent_id:"},{"line_number":338,"context_line":"                pools_status \u003d listener_status.get(\u0027pools\u0027)"},{"line_number":339,"context_line":"                for pool_status in pools_status:"},{"line_number":340,"context_line":"                    key \u003d pool_status.get(\u0027id\u0027)"},{"line_number":341,"context_line":"                    value \u003d pool_status.get(\u0027operating_status\u0027)"},{"line_number":342,"context_line":"                    status_dict[key] \u003d value"},{"line_number":343,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":15,"id":"bae84128_6f679625","line":340,"updated":"2016-02-22 15:03:43.000000000","message":"i think this should be pool_status[\u0027id\u0027] and pool_status[\u0027operating_status\u0027]. it should be wrapped in try/except. i don\u0027t think we should be setting None as a key.","commit_id":"c4096a25f4b5c79b11b2ba7b0b40970b62628f7b"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"73091ec51da62aa07636f93d7fe1ec7855371d91","unresolved":false,"context_lines":[{"line_number":300,"context_line":"                            # \u0027operating_status\u0027 is none is handled in"},{"line_number":301,"context_line":"                            # the method get_sample() in lbaas.py."},{"line_number":302,"context_line":"                            value \u003d member_status.get(\u0027operating_status\u0027)"},{"line_number":303,"context_line":"                            status_dict[key] \u003d value"},{"line_number":304,"context_line":"                        break"},{"line_number":305,"context_line":"                break"},{"line_number":306,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"bae84128_c1ae55e5","line":303,"range":{"start_line":303,"start_character":47,"end_line":303,"end_character":52},"updated":"2016-02-23 01:42:11.000000000","message":"looks like we can use the same piece of code to get the \u0027operating_status\u0027 for all resources. But that could be a further patch to enhance it.","commit_id":"c72cd4fa89ec7e0a3d128c216bae89d09f1a7639"}],"ceilometer/tests/unit/network/services/test_lbaas.py":[{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"5a9dab7538743601745863344aa8eba3225c1f5f","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    def setUp(self):"},{"line_number":46,"context_line":"        super(TestLBPoolPollster, self).setUp()"},{"line_number":47,"context_line":"        self.pollster \u003d lbaas.LBPoolPollster()"},{"line_number":48,"context_line":"        self.pollster.lb_version \u003d \u0027v1\u0027"},{"line_number":49,"context_line":"        fake_pools \u003d self.fake_get_pools()"},{"line_number":50,"context_line":"        self.useFixture(mockpatch.Patch(\u0027ceilometer.neutron_client.Client.\u0027"},{"line_number":51,"context_line":"                                        \u0027pool_get_all\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"bae84128_ba678124","line":48,"updated":"2016-02-19 11:27:05.000000000","message":"maybe we override the config option value to v1 in base class is better, for i.e. https://github.com/openstack/ceilometer/blob/master/ceilometer/tests/functional/test_notification.py#L93-L94","commit_id":"98894d3c2a1a411b68ff6ba7b0768fffd4fa71ae"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"ff8774635c0cc2e41cbb122c08a8f872938cca82","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    def setUp(self):"},{"line_number":46,"context_line":"        super(TestLBPoolPollster, self).setUp()"},{"line_number":47,"context_line":"        self.pollster \u003d lbaas.LBPoolPollster()"},{"line_number":48,"context_line":"        self.pollster.lb_version \u003d \u0027v1\u0027"},{"line_number":49,"context_line":"        fake_pools \u003d self.fake_get_pools()"},{"line_number":50,"context_line":"        self.useFixture(mockpatch.Patch(\u0027ceilometer.neutron_client.Client.\u0027"},{"line_number":51,"context_line":"                                        \u0027pool_get_all\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"bae84128_fc8d6d7c","line":48,"in_reply_to":"bae84128_ba678124","updated":"2016-02-19 17:38:03.000000000","message":"Done","commit_id":"98894d3c2a1a411b68ff6ba7b0768fffd4fa71ae"},{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"252fa53874dfb0b1ee26c738ddce8f97af2f9462","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        self.context \u003d context.get_admin_context()"},{"line_number":36,"context_line":"        self.manager \u003d manager.AgentManager()"},{"line_number":37,"context_line":"        cfg.CONF.set_override(\u0027neutron_lbaas_version\u0027,"},{"line_number":38,"context_line":"                              \u0027v1\u0027,"},{"line_number":39,"context_line":"                              group\u003d\u0027service_types\u0027)"},{"line_number":40,"context_line":"        plugin_base._get_keystone \u003d mock.Mock()"},{"line_number":41,"context_line":"        catalog \u003d (plugin_base._get_keystone.session.auth.get_access."}],"source_content_type":"text/x-python","patch_set":13,"id":"bae84128_532a5b2d","line":38,"range":{"start_line":38,"start_character":31,"end_line":38,"end_character":33},"updated":"2016-02-21 09:48:13.000000000","message":"As LBaaS v1 is deprecated, shouldn\u0027t we by default be testing against LBaaS v2?","commit_id":"19ce2c1a47bb0d31199841ced0e43acfbffc4b9d"}],"ceilometer/tests/unit/test_neutronclient.py":[{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"252fa53874dfb0b1ee26c738ddce8f97af2f9462","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    def setUp(self):"},{"line_number":25,"context_line":"        super(TestNeutronClient, self).setUp()"},{"line_number":26,"context_line":"        self.nc \u003d neutron_client.Client()"},{"line_number":27,"context_line":"        self.nc.lb_version \u003d \u0027v1\u0027"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    @staticmethod"},{"line_number":30,"context_line":"    def fake_ports_list():"}],"source_content_type":"text/x-python","patch_set":13,"id":"bae84128_b3212750","line":27,"range":{"start_line":27,"start_character":30,"end_line":27,"end_character":32},"updated":"2016-02-21 09:48:13.000000000","message":"Again, shouldn\u0027t we be testing against the non-deprecated model and API?","commit_id":"19ce2c1a47bb0d31199841ced0e43acfbffc4b9d"}],"ceilometer/tests/unit/test_neutronclient_lbaas_v2.py":[{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"0bf3eaa2628ffc80ec3b2e37d1cf69ed4bbde9e9","unresolved":false,"context_lines":[{"line_number":169,"context_line":"    @mock.patch.object(client.Client,\r"},{"line_number":170,"context_line":"                       \u0027list_lbaas_healthmonitors\u0027)\r"},{"line_number":171,"context_line":"    def test_list_health_monitors_v2(self, mock_list_healthmonitors):\r"},{"line_number":172,"context_line":"        mock_list_healthmonitors.return_value \u003d self.\\\r"},{"line_number":173,"context_line":"            fake_list_lbaas_healthmonitors(self)\r"},{"line_number":174,"context_line":"        healthmonitors \u003d self.nc.list_health_monitors_v2()\r"},{"line_number":175,"context_line":"        self.assertEqual(1, len(healthmonitors))\r"},{"line_number":176,"context_line":"        for healthmonitor in healthmonitors:\r"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a5ae5dd_08a363b3","line":173,"range":{"start_line":172,"start_character":48,"end_line":173,"end_character":48},"updated":"2016-02-05 17:30:10.000000000","message":"please use parenthesis here instead of backslash, it is a general openstack style http://docs.openstack.org/developer/hacking/#general","commit_id":"19aa7a4c7d4c4511654874b8e49bd5c2e4fa0009"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"4c7ed832325474ecf38dab97bc2fd12af2132d50","unresolved":false,"context_lines":[{"line_number":169,"context_line":"    @mock.patch.object(client.Client,\r"},{"line_number":170,"context_line":"                       \u0027list_lbaas_healthmonitors\u0027)\r"},{"line_number":171,"context_line":"    def test_list_health_monitors_v2(self, mock_list_healthmonitors):\r"},{"line_number":172,"context_line":"        mock_list_healthmonitors.return_value \u003d self.\\\r"},{"line_number":173,"context_line":"            fake_list_lbaas_healthmonitors(self)\r"},{"line_number":174,"context_line":"        healthmonitors \u003d self.nc.list_health_monitors_v2()\r"},{"line_number":175,"context_line":"        self.assertEqual(1, len(healthmonitors))\r"},{"line_number":176,"context_line":"        for healthmonitor in healthmonitors:\r"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a5ae5dd_23f602d8","line":173,"range":{"start_line":172,"start_character":48,"end_line":173,"end_character":48},"in_reply_to":"5a5ae5dd_08a363b3","updated":"2016-02-09 13:17:43.000000000","message":"Hi lgor\n\nThanks for your review. I change it.","commit_id":"19aa7a4c7d4c4511654874b8e49bd5c2e4fa0009"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"aad84ae88dc85f5d1356578edd171971b36b9fba","unresolved":false,"context_lines":[{"line_number":213,"context_line":"            self.assertEqual(\u0027ONLINE\u0027, pool[\u0027status\u0027])"},{"line_number":214,"context_line":"            self.assertEqual(\u0027ROUND_ROBIN\u0027, pool[\u0027lb_method\u0027])"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"    @mock.patch.object(client.Client,"},{"line_number":217,"context_line":"                       \u0027list_lbaas_pools\u0027)"},{"line_number":218,"context_line":"    @mock.patch.object(client.Client,"},{"line_number":219,"context_line":"                       \u0027list_lbaas_members\u0027)"},{"line_number":220,"context_line":"    @mock.patch.object(client.Client,"},{"line_number":221,"context_line":"                       \u0027show_listener\u0027)"},{"line_number":222,"context_line":"    @mock.patch.object(neutron_client.Client,"},{"line_number":223,"context_line":"                       \u0027_retrieve_loadbalancer_status_tree\u0027)"},{"line_number":224,"context_line":"    def test_list_members_v2(self, mock_status, mock_show, mock_list_members,"},{"line_number":225,"context_line":"                             mock_list_pools):"},{"line_number":226,"context_line":"        mock_status.return_value \u003d self.fake_retrieve_loadbalancer_status()"}],"source_content_type":"text/x-python","patch_set":7,"id":"dae33548_55571e02","line":223,"range":{"start_line":216,"start_character":0,"end_line":223,"end_character":60},"updated":"2016-02-15 03:37:27.000000000","message":"it looks ugly :(\n\ncan here mock the client.retrieve_loadbalancer_status() than private method _retrieve_loadbalancer_status_tree ?","commit_id":"73ae7d8993f5989e37293ba333187444eb159941"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"7dee1f39bc5d0e570216c87c3a936543fa3f389c","unresolved":false,"context_lines":[{"line_number":213,"context_line":"            self.assertEqual(\u0027ONLINE\u0027, pool[\u0027status\u0027])"},{"line_number":214,"context_line":"            self.assertEqual(\u0027ROUND_ROBIN\u0027, pool[\u0027lb_method\u0027])"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"    @mock.patch.object(client.Client,"},{"line_number":217,"context_line":"                       \u0027list_lbaas_pools\u0027)"},{"line_number":218,"context_line":"    @mock.patch.object(client.Client,"},{"line_number":219,"context_line":"                       \u0027list_lbaas_members\u0027)"},{"line_number":220,"context_line":"    @mock.patch.object(client.Client,"},{"line_number":221,"context_line":"                       \u0027show_listener\u0027)"},{"line_number":222,"context_line":"    @mock.patch.object(neutron_client.Client,"},{"line_number":223,"context_line":"                       \u0027_retrieve_loadbalancer_status_tree\u0027)"},{"line_number":224,"context_line":"    def test_list_members_v2(self, mock_status, mock_show, mock_list_members,"},{"line_number":225,"context_line":"                             mock_list_pools):"},{"line_number":226,"context_line":"        mock_status.return_value \u003d self.fake_retrieve_loadbalancer_status()"}],"source_content_type":"text/x-python","patch_set":7,"id":"dae33548_b81dbfbf","line":223,"range":{"start_line":216,"start_character":0,"end_line":223,"end_character":60},"in_reply_to":"dae33548_55571e02","updated":"2016-02-15 05:24:11.000000000","message":"Hi Liu Sheng\n\nThanks for your review. I will try it.\n\nThanks","commit_id":"73ae7d8993f5989e37293ba333187444eb159941"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"aad84ae88dc85f5d1356578edd171971b36b9fba","unresolved":false,"context_lines":[{"line_number":257,"context_line":"                                                   parent_id)"},{"line_number":258,"context_line":"        expected_keys \u003d [\u0027fcf23bde-8cf9-4616-883f-208cebcbf858\u0027,"},{"line_number":259,"context_line":"                         \u0027fcf23bde-8cf9-4616-883f-208cebcbf969\u0027]"},{"line_number":260,"context_line":"        excepted_status \u003d dict()"},{"line_number":261,"context_line":"        excepted_status \u003d {"},{"line_number":262,"context_line":"            \u0027fcf23bde-8cf9-4616-883f-208cebcbf858\u0027: \u0027ONLINE\u0027,"},{"line_number":263,"context_line":"            \u0027fcf23bde-8cf9-4616-883f-208cebcbf969\u0027: \u0027OFFLINE\u0027}"}],"source_content_type":"text/x-python","patch_set":7,"id":"dae33548_956886bc","line":260,"range":{"start_line":260,"start_character":8,"end_line":260,"end_character":32},"updated":"2016-02-15 03:37:27.000000000","message":"don\u0027t need it","commit_id":"73ae7d8993f5989e37293ba333187444eb159941"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"7dee1f39bc5d0e570216c87c3a936543fa3f389c","unresolved":false,"context_lines":[{"line_number":257,"context_line":"                                                   parent_id)"},{"line_number":258,"context_line":"        expected_keys \u003d [\u0027fcf23bde-8cf9-4616-883f-208cebcbf858\u0027,"},{"line_number":259,"context_line":"                         \u0027fcf23bde-8cf9-4616-883f-208cebcbf969\u0027]"},{"line_number":260,"context_line":"        excepted_status \u003d dict()"},{"line_number":261,"context_line":"        excepted_status \u003d {"},{"line_number":262,"context_line":"            \u0027fcf23bde-8cf9-4616-883f-208cebcbf858\u0027: \u0027ONLINE\u0027,"},{"line_number":263,"context_line":"            \u0027fcf23bde-8cf9-4616-883f-208cebcbf969\u0027: \u0027OFFLINE\u0027}"}],"source_content_type":"text/x-python","patch_set":7,"id":"dae33548_18794bfd","line":260,"range":{"start_line":260,"start_character":8,"end_line":260,"end_character":32},"in_reply_to":"dae33548_956886bc","updated":"2016-02-15 05:24:11.000000000","message":"Done","commit_id":"73ae7d8993f5989e37293ba333187444eb159941"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"aad84ae88dc85f5d1356578edd171971b36b9fba","unresolved":false,"context_lines":[{"line_number":277,"context_line":"                                                 parent_id)"},{"line_number":278,"context_line":"        expected_keys \u003d [\u00274c0a0a5f-cf8f-44b7-b912-957daa8ce5e5\u0027,"},{"line_number":279,"context_line":"                         \u00274c0a0a5f-cf8f-44b7-b912-957daa8ce6f6\u0027]"},{"line_number":280,"context_line":"        excepted_status \u003d dict()"},{"line_number":281,"context_line":"        excepted_status \u003d {"},{"line_number":282,"context_line":"            \u00274c0a0a5f-cf8f-44b7-b912-957daa8ce5e5\u0027: \u0027ONLINE\u0027,"},{"line_number":283,"context_line":"            \u00274c0a0a5f-cf8f-44b7-b912-957daa8ce6f6\u0027: \u0027OFFLINE\u0027}"}],"source_content_type":"text/x-python","patch_set":7,"id":"dae33548_f578f291","line":280,"range":{"start_line":280,"start_character":8,"end_line":280,"end_character":32},"updated":"2016-02-15 03:37:27.000000000","message":"don\u0027t need it","commit_id":"73ae7d8993f5989e37293ba333187444eb159941"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"7dee1f39bc5d0e570216c87c3a936543fa3f389c","unresolved":false,"context_lines":[{"line_number":277,"context_line":"                                                 parent_id)"},{"line_number":278,"context_line":"        expected_keys \u003d [\u00274c0a0a5f-cf8f-44b7-b912-957daa8ce5e5\u0027,"},{"line_number":279,"context_line":"                         \u00274c0a0a5f-cf8f-44b7-b912-957daa8ce6f6\u0027]"},{"line_number":280,"context_line":"        excepted_status \u003d dict()"},{"line_number":281,"context_line":"        excepted_status \u003d {"},{"line_number":282,"context_line":"            \u00274c0a0a5f-cf8f-44b7-b912-957daa8ce5e5\u0027: \u0027ONLINE\u0027,"},{"line_number":283,"context_line":"            \u00274c0a0a5f-cf8f-44b7-b912-957daa8ce6f6\u0027: \u0027OFFLINE\u0027}"}],"source_content_type":"text/x-python","patch_set":7,"id":"dae33548_986d5b35","line":280,"range":{"start_line":280,"start_character":8,"end_line":280,"end_character":32},"in_reply_to":"dae33548_f578f291","updated":"2016-02-15 05:24:11.000000000","message":"Done","commit_id":"73ae7d8993f5989e37293ba333187444eb159941"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"aad84ae88dc85f5d1356578edd171971b36b9fba","unresolved":false,"context_lines":[{"line_number":295,"context_line":"        result_status \u003d self.nc._get_listener_status(loadbalancer_id)"},{"line_number":296,"context_line":"        expected_keys \u003d [\u002735cb8516-1173-4035-8dae-0dae3453f37f\u0027,"},{"line_number":297,"context_line":"                         \u002735cb8516-1173-4035-8dae-0dae3453f48e\u0027]"},{"line_number":298,"context_line":"        excepted_status \u003d dict()"},{"line_number":299,"context_line":"        excepted_status \u003d {"},{"line_number":300,"context_line":"            \u002735cb8516-1173-4035-8dae-0dae3453f37f\u0027: \u0027ONLINE\u0027,"},{"line_number":301,"context_line":"            \u002735cb8516-1173-4035-8dae-0dae3453f48e\u0027: \u0027OFFLINE\u0027}"}],"source_content_type":"text/x-python","patch_set":7,"id":"dae33548_753ea2b9","line":298,"range":{"start_line":298,"start_character":8,"end_line":298,"end_character":32},"updated":"2016-02-15 03:37:27.000000000","message":"don\u0027t need it\n\nit looks like you just come from other programing languages. lol","commit_id":"73ae7d8993f5989e37293ba333187444eb159941"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"7dee1f39bc5d0e570216c87c3a936543fa3f389c","unresolved":false,"context_lines":[{"line_number":295,"context_line":"        result_status \u003d self.nc._get_listener_status(loadbalancer_id)"},{"line_number":296,"context_line":"        expected_keys \u003d [\u002735cb8516-1173-4035-8dae-0dae3453f37f\u0027,"},{"line_number":297,"context_line":"                         \u002735cb8516-1173-4035-8dae-0dae3453f48e\u0027]"},{"line_number":298,"context_line":"        excepted_status \u003d dict()"},{"line_number":299,"context_line":"        excepted_status \u003d {"},{"line_number":300,"context_line":"            \u002735cb8516-1173-4035-8dae-0dae3453f37f\u0027: \u0027ONLINE\u0027,"},{"line_number":301,"context_line":"            \u002735cb8516-1173-4035-8dae-0dae3453f48e\u0027: \u0027OFFLINE\u0027}"}],"source_content_type":"text/x-python","patch_set":7,"id":"dae33548_786a171c","line":298,"range":{"start_line":298,"start_character":8,"end_line":298,"end_character":32},"in_reply_to":"dae33548_753ea2b9","updated":"2016-02-15 05:24:11.000000000","message":"Done","commit_id":"73ae7d8993f5989e37293ba333187444eb159941"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"7c145fd04c89bcf34adb090fdc9048b3a257461f","unresolved":false,"context_lines":[{"line_number":263,"context_line":""},{"line_number":264,"context_line":"        for key in result_status.keys():"},{"line_number":265,"context_line":"            self.assertIn(key, expected_keys)"},{"line_number":266,"context_line":"            self.assertEqual(result_status[key], excepted_status[key])"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    @mock.patch.object(neutron_client.Client,"},{"line_number":269,"context_line":"                       \u0027_retrieve_loadbalancer_status_tree\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"dae33548_ffd33102","line":266,"range":{"start_line":266,"start_character":12,"end_line":266,"end_character":16},"updated":"2016-02-17 09:43:55.000000000","message":"expected, actual","commit_id":"11ef5942cb8ba7480e8d7bbadd61e971fc73378b"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"39c502d7ec8d11b2a84b9ca77f01db246fd39f7d","unresolved":false,"context_lines":[{"line_number":263,"context_line":""},{"line_number":264,"context_line":"        for key in result_status.keys():"},{"line_number":265,"context_line":"            self.assertIn(key, expected_keys)"},{"line_number":266,"context_line":"            self.assertEqual(result_status[key], excepted_status[key])"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    @mock.patch.object(neutron_client.Client,"},{"line_number":269,"context_line":"                       \u0027_retrieve_loadbalancer_status_tree\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"dae33548_68e485e0","line":266,"range":{"start_line":266,"start_character":12,"end_line":266,"end_character":16},"in_reply_to":"dae33548_ffd33102","updated":"2016-02-17 10:38:10.000000000","message":"Done","commit_id":"11ef5942cb8ba7480e8d7bbadd61e971fc73378b"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"7c145fd04c89bcf34adb090fdc9048b3a257461f","unresolved":false,"context_lines":[{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        for key in result_status.keys():"},{"line_number":284,"context_line":"            self.assertIn(key, expected_keys)"},{"line_number":285,"context_line":"            self.assertEqual(result_status[key], excepted_status[key])"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"    @mock.patch.object(neutron_client.Client,"},{"line_number":288,"context_line":"                       \u0027_retrieve_loadbalancer_status_tree\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"dae33548_dfc90d5b","line":285,"range":{"start_line":285,"start_character":17,"end_line":285,"end_character":28},"updated":"2016-02-17 09:43:55.000000000","message":"assertEqual(expected, actual)","commit_id":"11ef5942cb8ba7480e8d7bbadd61e971fc73378b"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"39c502d7ec8d11b2a84b9ca77f01db246fd39f7d","unresolved":false,"context_lines":[{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        for key in result_status.keys():"},{"line_number":284,"context_line":"            self.assertIn(key, expected_keys)"},{"line_number":285,"context_line":"            self.assertEqual(result_status[key], excepted_status[key])"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"    @mock.patch.object(neutron_client.Client,"},{"line_number":288,"context_line":"                       \u0027_retrieve_loadbalancer_status_tree\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"dae33548_a8ea0daa","line":285,"range":{"start_line":285,"start_character":17,"end_line":285,"end_character":28},"in_reply_to":"dae33548_dfc90d5b","updated":"2016-02-17 10:38:10.000000000","message":"Done","commit_id":"11ef5942cb8ba7480e8d7bbadd61e971fc73378b"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"7c145fd04c89bcf34adb090fdc9048b3a257461f","unresolved":false,"context_lines":[{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        for key in result_status.keys():"},{"line_number":301,"context_line":"            self.assertIn(key, expected_keys)"},{"line_number":302,"context_line":"            self.assertEqual(result_status[key], excepted_status[key])"}],"source_content_type":"text/x-python","patch_set":9,"id":"dae33548_ffa5f1a1","line":302,"range":{"start_line":302,"start_character":17,"end_line":302,"end_character":28},"updated":"2016-02-17 09:43:55.000000000","message":"usually, we follow the recommended assertEqual(expected, actual) style: http://testtools.readthedocs.org/en/latest/api.html#testtools.TestCase.assertEqual","commit_id":"11ef5942cb8ba7480e8d7bbadd61e971fc73378b"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"39c502d7ec8d11b2a84b9ca77f01db246fd39f7d","unresolved":false,"context_lines":[{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        for key in result_status.keys():"},{"line_number":301,"context_line":"            self.assertIn(key, expected_keys)"},{"line_number":302,"context_line":"            self.assertEqual(result_status[key], excepted_status[key])"}],"source_content_type":"text/x-python","patch_set":9,"id":"dae33548_e8d095f8","line":302,"range":{"start_line":302,"start_character":17,"end_line":302,"end_character":28},"in_reply_to":"dae33548_ffa5f1a1","updated":"2016-02-17 10:38:10.000000000","message":"Done","commit_id":"11ef5942cb8ba7480e8d7bbadd61e971fc73378b"},{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"252fa53874dfb0b1ee26c738ddce8f97af2f9462","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"bae84128_b3cf677e","updated":"2016-02-21 09:48:13.000000000","message":"This will need to be changed quite a bit if my suggestion on changing the structure of the status tree is heeded (which, really... is a graph thanks to the N:M relationship between listeners and pools).","commit_id":"19ce2c1a47bb0d31199841ced0e43acfbffc4b9d"}]}
