)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"3acc568bf9d7ce77547da41ab9f42f21f1ea277b","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add loopingcalls for Huawei storage system driver, and make wait interval configurable."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Fixes Bug1403608"},{"line_number":12,"context_line":"Change-Id: Ieb7c6af40e5109d7f44022cbc38d8ec715e6057c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a961159_498b861e","line":11,"updated":"2014-12-25 14:01:23.000000000","message":"You can use standard format: \"Closes-Bug: #1403608\"","commit_id":"66575375463d7bd71563d464adedbb9a24f6efc9"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"f1e55c12462d3094580ac36234dc2c86464b885e","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add loopingcalls for Huawei storage system driver, and make wait interval configurable."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Fixes Bug1403608"},{"line_number":12,"context_line":"Change-Id: Ieb7c6af40e5109d7f44022cbc38d8ec715e6057c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a961159_1e9d2b67","line":11,"in_reply_to":"3a961159_498b861e","updated":"2014-12-26 08:28:56.000000000","message":"Thanks. Done.","commit_id":"66575375463d7bd71563d464adedbb9a24f6efc9"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a0fa842131ceae9ea2e11aef5e8a0a6d53d63acb","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add loopingcalls for Huawei storage system driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add loopingcalls for Huawei storage system driver, and make wait interval configurable."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Closes-Bug: #1403608"},{"line_number":12,"context_line":"Change-Id: Ieb7c6af40e5109d7f44022cbc38d8ec715e6057c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3a961159_3fac688c","line":9,"updated":"2014-12-31 05:29:48.000000000","message":"Please make each line \u003c\u003d 79 characters.","commit_id":"89e4572f13e5b8960c49d24bf53a13866b79c227"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"0ff9ace765aad278c1b0e012a1a5e4a5aea0f026","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add loopingcalls for Huawei storage system driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add loopingcalls for Huawei storage system driver, and make wait interval configurable."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Closes-Bug: #1403608"},{"line_number":12,"context_line":"Change-Id: Ieb7c6af40e5109d7f44022cbc38d8ec715e6057c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3a961159_fa94ae8d","line":9,"in_reply_to":"3a961159_3fac688c","updated":"2014-12-31 06:42:25.000000000","message":"Done","commit_id":"89e4572f13e5b8960c49d24bf53a13866b79c227"}],"cinder/tests/test_huawei_18000.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ad699873014de72cf495ccbc47e313a01fcdaadc","unresolved":false,"context_lines":[{"line_number":684,"context_line":""},{"line_number":685,"context_line":"    def testgetdefaulttimeout(self):"},{"line_number":686,"context_line":"        result \u003d self.driver.common._get_default_timeout()"},{"line_number":687,"context_line":"        self.assertEqual(result, \u002743200\u0027)"},{"line_number":688,"context_line":""},{"line_number":689,"context_line":"    def testgetwaitinterval(self):"},{"line_number":690,"context_line":"        result \u003d self.driver.common._get_wait_interval(\u0027LUNReadyWaitInterval\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_d063803f","line":687,"updated":"2014-12-28 20:30:55.000000000","message":"Should be:\n\nself.assertEqual(\u002743200\u0027, result)","commit_id":"a5405459eae80b17a928e3b92cddc0f9807e9e0f"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"a9ba2b393776aa45eb477655c80cb32d80a6a3bb","unresolved":false,"context_lines":[{"line_number":684,"context_line":""},{"line_number":685,"context_line":"    def testgetdefaulttimeout(self):"},{"line_number":686,"context_line":"        result \u003d self.driver.common._get_default_timeout()"},{"line_number":687,"context_line":"        self.assertEqual(result, \u002743200\u0027)"},{"line_number":688,"context_line":""},{"line_number":689,"context_line":"    def testgetwaitinterval(self):"},{"line_number":690,"context_line":"        result \u003d self.driver.common._get_wait_interval(\u0027LUNReadyWaitInterval\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_b9033fbd","line":687,"in_reply_to":"3a961159_d063803f","updated":"2014-12-29 06:59:37.000000000","message":"Done","commit_id":"a5405459eae80b17a928e3b92cddc0f9807e9e0f"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ad699873014de72cf495ccbc47e313a01fcdaadc","unresolved":false,"context_lines":[{"line_number":688,"context_line":""},{"line_number":689,"context_line":"    def testgetwaitinterval(self):"},{"line_number":690,"context_line":"        result \u003d self.driver.common._get_wait_interval(\u0027LUNReadyWaitInterval\u0027)"},{"line_number":691,"context_line":"        self.assertEqual(result, \u00272\u0027)"},{"line_number":692,"context_line":""},{"line_number":693,"context_line":"    def create_fake_conf_file(self):"},{"line_number":694,"context_line":"        \"\"\"Create a fake Config file"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_f0587c8c","line":691,"updated":"2014-12-28 20:30:55.000000000","message":"Same here.","commit_id":"a5405459eae80b17a928e3b92cddc0f9807e9e0f"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"a9ba2b393776aa45eb477655c80cb32d80a6a3bb","unresolved":false,"context_lines":[{"line_number":688,"context_line":""},{"line_number":689,"context_line":"    def testgetwaitinterval(self):"},{"line_number":690,"context_line":"        result \u003d self.driver.common._get_wait_interval(\u0027LUNReadyWaitInterval\u0027)"},{"line_number":691,"context_line":"        self.assertEqual(result, \u00272\u0027)"},{"line_number":692,"context_line":""},{"line_number":693,"context_line":"    def create_fake_conf_file(self):"},{"line_number":694,"context_line":"        \"\"\"Create a fake Config file"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_d9080bdc","line":691,"in_reply_to":"3a961159_f0587c8c","updated":"2014-12-29 06:59:37.000000000","message":"Done","commit_id":"a5405459eae80b17a928e3b92cddc0f9807e9e0f"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a0fa842131ceae9ea2e11aef5e8a0a6d53d63acb","unresolved":false,"context_lines":[{"line_number":892,"context_line":""},{"line_number":893,"context_line":"    def testgetdefaulttimeout(self):"},{"line_number":894,"context_line":"        result \u003d self.driver.common._get_default_timeout()"},{"line_number":895,"context_line":"        self.assertEqual(result, \u002743200\u0027)"},{"line_number":896,"context_line":""},{"line_number":897,"context_line":"    def testgetwaitinterval(self):"},{"line_number":898,"context_line":"        result \u003d self.driver.common._get_wait_interval(\u0027LUNReadyWaitInterval\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_5f705440","line":895,"updated":"2014-12-31 05:29:48.000000000","message":"self.assertEqual(\u002743200\u0027, result)","commit_id":"89e4572f13e5b8960c49d24bf53a13866b79c227"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"0ff9ace765aad278c1b0e012a1a5e4a5aea0f026","unresolved":false,"context_lines":[{"line_number":892,"context_line":""},{"line_number":893,"context_line":"    def testgetdefaulttimeout(self):"},{"line_number":894,"context_line":"        result \u003d self.driver.common._get_default_timeout()"},{"line_number":895,"context_line":"        self.assertEqual(result, \u002743200\u0027)"},{"line_number":896,"context_line":""},{"line_number":897,"context_line":"    def testgetwaitinterval(self):"},{"line_number":898,"context_line":"        result \u003d self.driver.common._get_wait_interval(\u0027LUNReadyWaitInterval\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_daf532ee","line":895,"in_reply_to":"3a961159_5f705440","updated":"2014-12-31 06:42:25.000000000","message":"Done","commit_id":"89e4572f13e5b8960c49d24bf53a13866b79c227"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a0fa842131ceae9ea2e11aef5e8a0a6d53d63acb","unresolved":false,"context_lines":[{"line_number":896,"context_line":""},{"line_number":897,"context_line":"    def testgetwaitinterval(self):"},{"line_number":898,"context_line":"        result \u003d self.driver.common._get_wait_interval(\u0027LUNReadyWaitInterval\u0027)"},{"line_number":899,"context_line":"        self.assertEqual(result, \u00272\u0027)"},{"line_number":900,"context_line":""},{"line_number":901,"context_line":"    def create_fake_conf_file(self):"},{"line_number":902,"context_line":"        \"\"\"Create a fake Config file"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_bf98586b","line":899,"updated":"2014-12-31 05:29:48.000000000","message":"self.assertEqual(\u00272\u0027, result)","commit_id":"89e4572f13e5b8960c49d24bf53a13866b79c227"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"0ff9ace765aad278c1b0e012a1a5e4a5aea0f026","unresolved":false,"context_lines":[{"line_number":896,"context_line":""},{"line_number":897,"context_line":"    def testgetwaitinterval(self):"},{"line_number":898,"context_line":"        result \u003d self.driver.common._get_wait_interval(\u0027LUNReadyWaitInterval\u0027)"},{"line_number":899,"context_line":"        self.assertEqual(result, \u00272\u0027)"},{"line_number":900,"context_line":""},{"line_number":901,"context_line":"    def create_fake_conf_file(self):"},{"line_number":902,"context_line":"        \"\"\"Create a fake Config file"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_fadbce7a","line":899,"in_reply_to":"3a961159_bf98586b","updated":"2014-12-31 06:42:25.000000000","message":"Done","commit_id":"89e4572f13e5b8960c49d24bf53a13866b79c227"}],"cinder/volume/drivers/huawei/rest_common.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0676d74fa23a1ca559d856664b396c1a55022322","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"DEFAULT_WEIT_INTERVAL \u003d 5"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"HOSTGROUP_PREFIX \u003d \u0027OpenStack_HostGroup_\u0027"},{"line_number":43,"context_line":"LUNGROUP_PREFIX \u003d \u0027OpenStack_LunGroup_\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_62bf7761","line":40,"updated":"2014-12-25 21:42:42.000000000","message":"Typo: should be \"WAIT\"","commit_id":"66575375463d7bd71563d464adedbb9a24f6efc9"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"f1e55c12462d3094580ac36234dc2c86464b885e","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"DEFAULT_WEIT_INTERVAL \u003d 5"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"HOSTGROUP_PREFIX \u003d \u0027OpenStack_HostGroup_\u0027"},{"line_number":43,"context_line":"LUNGROUP_PREFIX \u003d \u0027OpenStack_LunGroup_\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_fec4df42","line":40,"in_reply_to":"3a961159_62bf7761","updated":"2014-12-26 08:28:56.000000000","message":"Done","commit_id":"66575375463d7bd71563d464adedbb9a24f6efc9"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0676d74fa23a1ca559d856664b396c1a55022322","unresolved":false,"context_lines":[{"line_number":439,"context_line":""},{"line_number":440,"context_line":"        luncopy_id \u003d self._create_luncopy(copy_name,"},{"line_number":441,"context_line":"                                          src_lun, tgt_lun)"},{"line_number":442,"context_line":"        event_type \u003d \u0027LUNcopyWaitInterval\u0027"},{"line_number":443,"context_line":"        wait_interval \u003d self._get_wait_interval(event_type)"},{"line_number":444,"context_line":"        try:"},{"line_number":445,"context_line":"            self._start_luncopy(luncopy_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_0204f316","line":442,"updated":"2014-12-25 21:42:42.000000000","message":"Your other event_type is \u0027LUNREADY_WAIT_INTERVAL\u0027. Please be consistent here.  Suggest LUNCOPY_WAIT_INTERVAL.","commit_id":"66575375463d7bd71563d464adedbb9a24f6efc9"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"f1e55c12462d3094580ac36234dc2c86464b885e","unresolved":false,"context_lines":[{"line_number":439,"context_line":""},{"line_number":440,"context_line":"        luncopy_id \u003d self._create_luncopy(copy_name,"},{"line_number":441,"context_line":"                                          src_lun, tgt_lun)"},{"line_number":442,"context_line":"        event_type \u003d \u0027LUNcopyWaitInterval\u0027"},{"line_number":443,"context_line":"        wait_interval \u003d self._get_wait_interval(event_type)"},{"line_number":444,"context_line":"        try:"},{"line_number":445,"context_line":"            self._start_luncopy(luncopy_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_fecbff47","line":442,"in_reply_to":"3a961159_0204f316","updated":"2014-12-26 08:28:56.000000000","message":"I have changed \u0027LUNREADY_WAIT_INTERVAL\u0027 to \u0027LUNReadyWaitInterval\u0027 to make it compatible with our conf file. Thanks.","commit_id":"66575375463d7bd71563d464adedbb9a24f6efc9"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0676d74fa23a1ca559d856664b396c1a55022322","unresolved":false,"context_lines":[{"line_number":448,"context_line":"                luncopy_info \u003d self._get_luncopy_info(luncopy_id)"},{"line_number":449,"context_line":"                if luncopy_info[\u0027status\u0027] \u003d\u003d \u002740\u0027:"},{"line_number":450,"context_line":"                    return True"},{"line_number":451,"context_line":"                elif luncopy_info[\u0027state\u0027] !\u003d \u00271\u0027:"},{"line_number":452,"context_line":"                    err_msg \u003d (_("},{"line_number":453,"context_line":"                        \u0027_wait_for_luncopy: LUNcopy status is not normal.\u0027"},{"line_number":454,"context_line":"                        \u0027LUNcopy name: %(luncopyname)s.\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_022dd3a8","line":451,"updated":"2014-12-25 21:42:42.000000000","message":"Is this correct?  You have luncopy_info[\u0027status\u0027] on line 449 but luncopy_info[\u0027state\u0027] on line 451. Are these two different keys?  By reading the code, it seems that they should be the same key name.","commit_id":"66575375463d7bd71563d464adedbb9a24f6efc9"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"f1e55c12462d3094580ac36234dc2c86464b885e","unresolved":false,"context_lines":[{"line_number":448,"context_line":"                luncopy_info \u003d self._get_luncopy_info(luncopy_id)"},{"line_number":449,"context_line":"                if luncopy_info[\u0027status\u0027] \u003d\u003d \u002740\u0027:"},{"line_number":450,"context_line":"                    return True"},{"line_number":451,"context_line":"                elif luncopy_info[\u0027state\u0027] !\u003d \u00271\u0027:"},{"line_number":452,"context_line":"                    err_msg \u003d (_("},{"line_number":453,"context_line":"                        \u0027_wait_for_luncopy: LUNcopy status is not normal.\u0027"},{"line_number":454,"context_line":"                        \u0027LUNcopy name: %(luncopyname)s.\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_de22c3b9","line":451,"in_reply_to":"3a961159_022dd3a8","updated":"2014-12-26 08:28:56.000000000","message":"Maybe there is a little confused but it is really what will do. \"luncopy_info[\u0027status\u0027]\" means for whether the luncopy is complete and \"luncopy_info[\u0027state\u0027]\" means for whether there is a error occured when running luncopy. Thanks.","commit_id":"66575375463d7bd71563d464adedbb9a24f6efc9"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0676d74fa23a1ca559d856664b396c1a55022322","unresolved":false,"context_lines":[{"line_number":483,"context_line":"        root \u003d self._read_xml()"},{"line_number":484,"context_line":"        timeout \u003d root.findtext(\u0027LUN/Timeout\u0027)"},{"line_number":485,"context_line":"        if timeout is None:"},{"line_number":486,"context_line":"            timeout \u003d 60 * 24 * 30"},{"line_number":487,"context_line":"            LOG.info(_LI("},{"line_number":488,"context_line":"                \"Timeout is not configured in huawei conf file, \""},{"line_number":489,"context_line":"                \"use default: %(default_timeout)d.\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_e271a7df","line":486,"updated":"2014-12-25 21:42:42.000000000","message":"Can you make this a constant?","commit_id":"66575375463d7bd71563d464adedbb9a24f6efc9"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"f1e55c12462d3094580ac36234dc2c86464b885e","unresolved":false,"context_lines":[{"line_number":483,"context_line":"        root \u003d self._read_xml()"},{"line_number":484,"context_line":"        timeout \u003d root.findtext(\u0027LUN/Timeout\u0027)"},{"line_number":485,"context_line":"        if timeout is None:"},{"line_number":486,"context_line":"            timeout \u003d 60 * 24 * 30"},{"line_number":487,"context_line":"            LOG.info(_LI("},{"line_number":488,"context_line":"                \"Timeout is not configured in huawei conf file, \""},{"line_number":489,"context_line":"                \"use default: %(default_timeout)d.\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_4118b675","line":486,"in_reply_to":"3a961159_e271a7df","updated":"2014-12-26 08:28:56.000000000","message":"Done","commit_id":"66575375463d7bd71563d464adedbb9a24f6efc9"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0676d74fa23a1ca559d856664b396c1a55022322","unresolved":false,"context_lines":[{"line_number":485,"context_line":"        if timeout is None:"},{"line_number":486,"context_line":"            timeout \u003d 60 * 24 * 30"},{"line_number":487,"context_line":"            LOG.info(_LI("},{"line_number":488,"context_line":"                \"Timeout is not configured in huawei conf file, \""},{"line_number":489,"context_line":"                \"use default: %(default_timeout)d.\")"},{"line_number":490,"context_line":"                % {\"default_timeout\": timeout})"},{"line_number":491,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_027f93ac","line":488,"updated":"2014-12-25 21:42:42.000000000","message":"Change \",\" to \".\".","commit_id":"66575375463d7bd71563d464adedbb9a24f6efc9"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"f1e55c12462d3094580ac36234dc2c86464b885e","unresolved":false,"context_lines":[{"line_number":485,"context_line":"        if timeout is None:"},{"line_number":486,"context_line":"            timeout \u003d 60 * 24 * 30"},{"line_number":487,"context_line":"            LOG.info(_LI("},{"line_number":488,"context_line":"                \"Timeout is not configured in huawei conf file, \""},{"line_number":489,"context_line":"                \"use default: %(default_timeout)d.\")"},{"line_number":490,"context_line":"                % {\"default_timeout\": timeout})"},{"line_number":491,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_e1f52285","line":488,"in_reply_to":"3a961159_027f93ac","updated":"2014-12-26 08:28:56.000000000","message":"Done","commit_id":"66575375463d7bd71563d464adedbb9a24f6efc9"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0676d74fa23a1ca559d856664b396c1a55022322","unresolved":false,"context_lines":[{"line_number":486,"context_line":"            timeout \u003d 60 * 24 * 30"},{"line_number":487,"context_line":"            LOG.info(_LI("},{"line_number":488,"context_line":"                \"Timeout is not configured in huawei conf file, \""},{"line_number":489,"context_line":"                \"use default: %(default_timeout)d.\")"},{"line_number":490,"context_line":"                % {\"default_timeout\": timeout})"},{"line_number":491,"context_line":""},{"line_number":492,"context_line":"        return timeout"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_227c8fb5","line":489,"updated":"2014-12-25 21:42:42.000000000","message":"Capital U.","commit_id":"66575375463d7bd71563d464adedbb9a24f6efc9"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"f1e55c12462d3094580ac36234dc2c86464b885e","unresolved":false,"context_lines":[{"line_number":486,"context_line":"            timeout \u003d 60 * 24 * 30"},{"line_number":487,"context_line":"            LOG.info(_LI("},{"line_number":488,"context_line":"                \"Timeout is not configured in huawei conf file, \""},{"line_number":489,"context_line":"                \"use default: %(default_timeout)d.\")"},{"line_number":490,"context_line":"                % {\"default_timeout\": timeout})"},{"line_number":491,"context_line":""},{"line_number":492,"context_line":"        return timeout"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_01f30ea0","line":489,"in_reply_to":"3a961159_227c8fb5","updated":"2014-12-26 08:28:56.000000000","message":"Done","commit_id":"66575375463d7bd71563d464adedbb9a24f6efc9"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ad699873014de72cf495ccbc47e313a01fcdaadc","unresolved":false,"context_lines":[{"line_number":446,"context_line":"            self._start_luncopy(luncopy_id)"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"            def _luncopy_complete():"},{"line_number":449,"context_line":"                luncopy_info \u003d self._get_luncopy_info(luncopy_id)"},{"line_number":450,"context_line":"                if luncopy_info[\u0027status\u0027] \u003d\u003d \u002740\u0027:"},{"line_number":451,"context_line":"                    return True"},{"line_number":452,"context_line":"                elif luncopy_info[\u0027state\u0027] !\u003d \u00271\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_d07c60ee","line":449,"updated":"2014-12-28 20:30:55.000000000","message":"Can you add some comments here explaining the differences between luncopy[\u0027status\u0027] and luncopy[\u0027state\u0027] and what does \u002740\u0027 mean and what does \u00271\u0027 mean?","commit_id":"a5405459eae80b17a928e3b92cddc0f9807e9e0f"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"a9ba2b393776aa45eb477655c80cb32d80a6a3bb","unresolved":false,"context_lines":[{"line_number":446,"context_line":"            self._start_luncopy(luncopy_id)"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"            def _luncopy_complete():"},{"line_number":449,"context_line":"                luncopy_info \u003d self._get_luncopy_info(luncopy_id)"},{"line_number":450,"context_line":"                if luncopy_info[\u0027status\u0027] \u003d\u003d \u002740\u0027:"},{"line_number":451,"context_line":"                    return True"},{"line_number":452,"context_line":"                elif luncopy_info[\u0027state\u0027] !\u003d \u00271\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_f9db074d","line":449,"in_reply_to":"3a961159_d07c60ee","updated":"2014-12-29 06:59:37.000000000","message":"Done","commit_id":"a5405459eae80b17a928e3b92cddc0f9807e9e0f"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ad699873014de72cf495ccbc47e313a01fcdaadc","unresolved":false,"context_lines":[{"line_number":451,"context_line":"                    return True"},{"line_number":452,"context_line":"                elif luncopy_info[\u0027state\u0027] !\u003d \u00271\u0027:"},{"line_number":453,"context_line":"                    err_msg \u003d (_("},{"line_number":454,"context_line":"                        \u0027_wait_for_luncopy: LUNcopy status is not normal.\u0027"},{"line_number":455,"context_line":"                        \u0027LUNcopy name: %(luncopyname)s.\u0027)"},{"line_number":456,"context_line":"                        % {\u0027luncopyname\u0027: luncopy_id})"},{"line_number":457,"context_line":"                    LOG.error(err_msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_1087c8d8","line":454,"updated":"2014-12-28 20:30:55.000000000","message":"Suggest rewording this message:\n\nAn error occurred during the LUNcopy operation. LUNcopy name: %(luncopyname)s. \n\nPlease also log your LUNcopy status and state.","commit_id":"a5405459eae80b17a928e3b92cddc0f9807e9e0f"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"a9ba2b393776aa45eb477655c80cb32d80a6a3bb","unresolved":false,"context_lines":[{"line_number":451,"context_line":"                    return True"},{"line_number":452,"context_line":"                elif luncopy_info[\u0027state\u0027] !\u003d \u00271\u0027:"},{"line_number":453,"context_line":"                    err_msg \u003d (_("},{"line_number":454,"context_line":"                        \u0027_wait_for_luncopy: LUNcopy status is not normal.\u0027"},{"line_number":455,"context_line":"                        \u0027LUNcopy name: %(luncopyname)s.\u0027)"},{"line_number":456,"context_line":"                        % {\u0027luncopyname\u0027: luncopy_id})"},{"line_number":457,"context_line":"                    LOG.error(err_msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_f9a94791","line":454,"in_reply_to":"3a961159_1087c8d8","updated":"2014-12-29 06:59:37.000000000","message":"Done","commit_id":"a5405459eae80b17a928e3b92cddc0f9807e9e0f"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ad699873014de72cf495ccbc47e313a01fcdaadc","unresolved":false,"context_lines":[{"line_number":466,"context_line":"        self._delete_luncopy(luncopy_id)"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"    def _get_wait_interval(self, event_type):"},{"line_number":469,"context_line":"        \"\"\"Get sleep time from huawei conf file.\"\"\""},{"line_number":470,"context_line":"        root \u003d self._read_xml()"},{"line_number":471,"context_line":"        sleep_time \u003d root.findtext(\u0027LUN/%s\u0027 % event_type)"},{"line_number":472,"context_line":"        if sleep_time:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_306be420","line":469,"updated":"2014-12-28 20:30:55.000000000","message":"sleep time -\u003e wait interval","commit_id":"a5405459eae80b17a928e3b92cddc0f9807e9e0f"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"a9ba2b393776aa45eb477655c80cb32d80a6a3bb","unresolved":false,"context_lines":[{"line_number":466,"context_line":"        self._delete_luncopy(luncopy_id)"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"    def _get_wait_interval(self, event_type):"},{"line_number":469,"context_line":"        \"\"\"Get sleep time from huawei conf file.\"\"\""},{"line_number":470,"context_line":"        root \u003d self._read_xml()"},{"line_number":471,"context_line":"        sleep_time \u003d root.findtext(\u0027LUN/%s\u0027 % event_type)"},{"line_number":472,"context_line":"        if sleep_time:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_59909b4e","line":469,"in_reply_to":"3a961159_306be420","updated":"2014-12-29 06:59:37.000000000","message":"Done","commit_id":"a5405459eae80b17a928e3b92cddc0f9807e9e0f"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ad699873014de72cf495ccbc47e313a01fcdaadc","unresolved":false,"context_lines":[{"line_number":468,"context_line":"    def _get_wait_interval(self, event_type):"},{"line_number":469,"context_line":"        \"\"\"Get sleep time from huawei conf file.\"\"\""},{"line_number":470,"context_line":"        root \u003d self._read_xml()"},{"line_number":471,"context_line":"        sleep_time \u003d root.findtext(\u0027LUN/%s\u0027 % event_type)"},{"line_number":472,"context_line":"        if sleep_time:"},{"line_number":473,"context_line":"            return sleep_time"},{"line_number":474,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_50687021","line":471,"updated":"2014-12-28 20:30:55.000000000","message":"sleep_time -\u003e wait_interval","commit_id":"a5405459eae80b17a928e3b92cddc0f9807e9e0f"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"a9ba2b393776aa45eb477655c80cb32d80a6a3bb","unresolved":false,"context_lines":[{"line_number":468,"context_line":"    def _get_wait_interval(self, event_type):"},{"line_number":469,"context_line":"        \"\"\"Get sleep time from huawei conf file.\"\"\""},{"line_number":470,"context_line":"        root \u003d self._read_xml()"},{"line_number":471,"context_line":"        sleep_time \u003d root.findtext(\u0027LUN/%s\u0027 % event_type)"},{"line_number":472,"context_line":"        if sleep_time:"},{"line_number":473,"context_line":"            return sleep_time"},{"line_number":474,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_999a036d","line":471,"in_reply_to":"3a961159_50687021","updated":"2014-12-29 06:59:37.000000000","message":"Done","commit_id":"a5405459eae80b17a928e3b92cddc0f9807e9e0f"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ad699873014de72cf495ccbc47e313a01fcdaadc","unresolved":false,"context_lines":[{"line_number":510,"context_line":"                raise loopingcall.LoopingCallDone()"},{"line_number":511,"context_line":""},{"line_number":512,"context_line":"            if int(time.time()) - start_time \u003e timeout:"},{"line_number":513,"context_line":"                msg \u003d (_(\u0027_wait_for_condition: %s timeout.\u0027)"},{"line_number":514,"context_line":"                       % func.__name__)"},{"line_number":515,"context_line":"                LOG.error(msg)"},{"line_number":516,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_70756cf9","line":513,"updated":"2014-12-28 20:30:55.000000000","message":"timeout. -\u003e timed out.","commit_id":"a5405459eae80b17a928e3b92cddc0f9807e9e0f"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"a9ba2b393776aa45eb477655c80cb32d80a6a3bb","unresolved":false,"context_lines":[{"line_number":510,"context_line":"                raise loopingcall.LoopingCallDone()"},{"line_number":511,"context_line":""},{"line_number":512,"context_line":"            if int(time.time()) - start_time \u003e timeout:"},{"line_number":513,"context_line":"                msg \u003d (_(\u0027_wait_for_condition: %s timeout.\u0027)"},{"line_number":514,"context_line":"                       % func.__name__)"},{"line_number":515,"context_line":"                LOG.error(msg)"},{"line_number":516,"context_line":"                raise exception.VolumeBackendAPIException(data\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_b986df14","line":513,"in_reply_to":"3a961159_70756cf9","updated":"2014-12-29 06:59:37.000000000","message":"Done","commit_id":"a5405459eae80b17a928e3b92cddc0f9807e9e0f"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ad699873014de72cf495ccbc47e313a01fcdaadc","unresolved":false,"context_lines":[{"line_number":559,"context_line":""},{"line_number":560,"context_line":"            if \"data\" in result:"},{"line_number":561,"context_line":"                if (result[\u0027data\u0027][\u0027HEALTHSTATUS\u0027] \u003d\u003d \"1\") and\\"},{"line_number":562,"context_line":"                   (result[\u0027data\u0027][\u0027RUNNINGSTATUS\u0027] \u003d\u003d \"27\"):"},{"line_number":563,"context_line":"                    return True"},{"line_number":564,"context_line":"            return False"},{"line_number":565,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_9072d80f","line":562,"updated":"2014-12-28 20:30:55.000000000","message":"Suggest using ():\n\nif (result[\u0027data\u0027][\u0027HEALTHSTATUS\u0027] \u003d\u003d \"1\" and\n    result[\u0027data\u0027][\u0027RUNNINGSTATUS\u0027] \u003d\u003d \"27\"):","commit_id":"a5405459eae80b17a928e3b92cddc0f9807e9e0f"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"a9ba2b393776aa45eb477655c80cb32d80a6a3bb","unresolved":false,"context_lines":[{"line_number":559,"context_line":""},{"line_number":560,"context_line":"            if \"data\" in result:"},{"line_number":561,"context_line":"                if (result[\u0027data\u0027][\u0027HEALTHSTATUS\u0027] \u003d\u003d \"1\") and\\"},{"line_number":562,"context_line":"                   (result[\u0027data\u0027][\u0027RUNNINGSTATUS\u0027] \u003d\u003d \"27\"):"},{"line_number":563,"context_line":"                    return True"},{"line_number":564,"context_line":"            return False"},{"line_number":565,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_99712347","line":562,"in_reply_to":"3a961159_9072d80f","updated":"2014-12-29 06:59:37.000000000","message":"Done","commit_id":"a5405459eae80b17a928e3b92cddc0f9807e9e0f"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"2f4eec361209038bfbb72523b16e06619fa29884","unresolved":false,"context_lines":[{"line_number":446,"context_line":"            self._start_luncopy(luncopy_id)"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"            def _luncopy_complete():"},{"line_number":449,"context_line":"                luncopy_info \u003d self._get_luncopy_info(luncopy_id)"},{"line_number":450,"context_line":"                #luncopy_info[\u0027status\u0027] means for the running status of the"},{"line_number":451,"context_line":"                #luncopy. If luncopy_info[\u0027status\u0027] is equal to \u002740\u0027, this"},{"line_number":452,"context_line":"                #luncopy is completely ready."}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_856a947f","line":449,"updated":"2014-12-29 11:27:07.000000000","message":"Please, add space between # and start of the comment","commit_id":"dadd41cd940ec0a6763dba23a8119051ece77a30"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"dc80969faba9dfbc91f223e214991bf9b21d3b4b","unresolved":false,"context_lines":[{"line_number":446,"context_line":"            self._start_luncopy(luncopy_id)"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"            def _luncopy_complete():"},{"line_number":449,"context_line":"                luncopy_info \u003d self._get_luncopy_info(luncopy_id)"},{"line_number":450,"context_line":"                #luncopy_info[\u0027status\u0027] means for the running status of the"},{"line_number":451,"context_line":"                #luncopy. If luncopy_info[\u0027status\u0027] is equal to \u002740\u0027, this"},{"line_number":452,"context_line":"                #luncopy is completely ready."}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_9a290ef5","line":449,"in_reply_to":"3a961159_856a947f","updated":"2014-12-29 13:38:41.000000000","message":"Done","commit_id":"dadd41cd940ec0a6763dba23a8119051ece77a30"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"c2038dee368d46ff61bc467297e085ccc79d677a","unresolved":false,"context_lines":[{"line_number":455,"context_line":"                # luncopy_info[\u0027state\u0027] means for the healthy status of the"},{"line_number":456,"context_line":"                # luncopy. If luncopy_info[\u0027state\u0027] is equal to \u00271\u0027, this"},{"line_number":457,"context_line":"                # means that an error occurred during the LUNcopy operation and"},{"line_number":458,"context_line":"                #  we should abort it."},{"line_number":459,"context_line":"                elif luncopy_info[\u0027state\u0027] !\u003d \u00271\u0027:"},{"line_number":460,"context_line":"                    err_msg \u003d (_("},{"line_number":461,"context_line":"                        \u0027An error occurred during the LUNcopy operation. \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_2d1b861d","line":458,"updated":"2014-12-29 14:24:23.000000000","message":"Extremely minor, but extra space should be removed should you do another update.","commit_id":"739f4205b2d4e735661b49d002bd7a8695ed9358"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"123a6340e1d00bae10d76e67afe124ff1f8c340e","unresolved":false,"context_lines":[{"line_number":455,"context_line":"                # luncopy_info[\u0027state\u0027] means for the healthy status of the"},{"line_number":456,"context_line":"                # luncopy. If luncopy_info[\u0027state\u0027] is equal to \u00271\u0027, this"},{"line_number":457,"context_line":"                # means that an error occurred during the LUNcopy operation and"},{"line_number":458,"context_line":"                #  we should abort it."},{"line_number":459,"context_line":"                elif luncopy_info[\u0027state\u0027] !\u003d \u00271\u0027:"},{"line_number":460,"context_line":"                    err_msg \u003d (_("},{"line_number":461,"context_line":"                        \u0027An error occurred during the LUNcopy operation. \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_6b864f15","line":458,"in_reply_to":"3a961159_2d1b861d","updated":"2014-12-30 00:20:03.000000000","message":"Done","commit_id":"739f4205b2d4e735661b49d002bd7a8695ed9358"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a0fa842131ceae9ea2e11aef5e8a0a6d53d63acb","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                if luncopy_info[\u0027status\u0027] \u003d\u003d \u002740\u0027:"},{"line_number":454,"context_line":"                    return True"},{"line_number":455,"context_line":"                # luncopy_info[\u0027state\u0027] means for the healthy status of the"},{"line_number":456,"context_line":"                # luncopy. If luncopy_info[\u0027state\u0027] is equal to \u00271\u0027, this"},{"line_number":457,"context_line":"                # means that an error occurred during the LUNcopy operation and"},{"line_number":458,"context_line":"                # we should abort it."},{"line_number":459,"context_line":"                elif luncopy_info[\u0027state\u0027] !\u003d \u00271\u0027:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_dfad249d","line":456,"updated":"2014-12-31 05:29:48.000000000","message":"This seems to be opposite to the code below. If luncopy_info[\u0027state\u0027] is NOT equal to \u00271\u0027, it throws an exception.","commit_id":"89e4572f13e5b8960c49d24bf53a13866b79c227"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"0ff9ace765aad278c1b0e012a1a5e4a5aea0f026","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                if luncopy_info[\u0027status\u0027] \u003d\u003d \u002740\u0027:"},{"line_number":454,"context_line":"                    return True"},{"line_number":455,"context_line":"                # luncopy_info[\u0027state\u0027] means for the healthy status of the"},{"line_number":456,"context_line":"                # luncopy. If luncopy_info[\u0027state\u0027] is equal to \u00271\u0027, this"},{"line_number":457,"context_line":"                # means that an error occurred during the LUNcopy operation and"},{"line_number":458,"context_line":"                # we should abort it."},{"line_number":459,"context_line":"                elif luncopy_info[\u0027state\u0027] !\u003d \u00271\u0027:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_3ae63645","line":456,"in_reply_to":"3a961159_dfad249d","updated":"2014-12-31 06:42:25.000000000","message":"Thanks, done.","commit_id":"89e4572f13e5b8960c49d24bf53a13866b79c227"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a0fa842131ceae9ea2e11aef5e8a0a6d53d63acb","unresolved":false,"context_lines":[{"line_number":486,"context_line":"            LOG.info(_LI("},{"line_number":487,"context_line":"                \"Wait interval for %(event_type)s is not configured in huawei \""},{"line_number":488,"context_line":"                \"conf file. Use default: %(default_wait_interval)d.\")"},{"line_number":489,"context_line":"                % {\"event_type\": event_type,"},{"line_number":490,"context_line":"                   \"default_wait_interval\": DEFAULT_WAIT_INTERVAL})"},{"line_number":491,"context_line":"            return DEFAULT_WAIT_INTERVAL"},{"line_number":492,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_5f993478","line":489,"updated":"2014-12-31 05:29:48.000000000","message":"Here we should use \",\" instead of \"%\".","commit_id":"89e4572f13e5b8960c49d24bf53a13866b79c227"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"0ff9ace765aad278c1b0e012a1a5e4a5aea0f026","unresolved":false,"context_lines":[{"line_number":486,"context_line":"            LOG.info(_LI("},{"line_number":487,"context_line":"                \"Wait interval for %(event_type)s is not configured in huawei \""},{"line_number":488,"context_line":"                \"conf file. Use default: %(default_wait_interval)d.\")"},{"line_number":489,"context_line":"                % {\"event_type\": event_type,"},{"line_number":490,"context_line":"                   \"default_wait_interval\": DEFAULT_WAIT_INTERVAL})"},{"line_number":491,"context_line":"            return DEFAULT_WAIT_INTERVAL"},{"line_number":492,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_dacc52be","line":489,"in_reply_to":"3a961159_5f993478","updated":"2014-12-31 06:42:25.000000000","message":"Done","commit_id":"89e4572f13e5b8960c49d24bf53a13866b79c227"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a0fa842131ceae9ea2e11aef5e8a0a6d53d63acb","unresolved":false,"context_lines":[{"line_number":499,"context_line":"            LOG.info(_LI("},{"line_number":500,"context_line":"                \"Timeout is not configured in huawei conf file. \""},{"line_number":501,"context_line":"                \"Use default: %(default_timeout)d.\")"},{"line_number":502,"context_line":"                % {\"default_timeout\": timeout})"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"        return timeout"},{"line_number":505,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_7f87d012","line":502,"updated":"2014-12-31 05:29:48.000000000","message":"Same here. Use \",\" instead of \"%\".","commit_id":"89e4572f13e5b8960c49d24bf53a13866b79c227"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"0ff9ace765aad278c1b0e012a1a5e4a5aea0f026","unresolved":false,"context_lines":[{"line_number":499,"context_line":"            LOG.info(_LI("},{"line_number":500,"context_line":"                \"Timeout is not configured in huawei conf file. \""},{"line_number":501,"context_line":"                \"Use default: %(default_timeout)d.\")"},{"line_number":502,"context_line":"                % {\"default_timeout\": timeout})"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"        return timeout"},{"line_number":505,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_fac2ee84","line":502,"in_reply_to":"3a961159_7f87d012","updated":"2014-12-31 06:42:25.000000000","message":"Done","commit_id":"89e4572f13e5b8960c49d24bf53a13866b79c227"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"da6e7d033c83b4beabeb29311874a2e44a4bdd6d","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                # luncopy is completely ready."},{"line_number":454,"context_line":"                if luncopy_info[\u0027status\u0027] \u003d\u003d \u002740\u0027:"},{"line_number":455,"context_line":"                    return True"},{"line_number":456,"context_line":"                # luncopy_info[\u0027state\u0027] means for the healthy status of the"},{"line_number":457,"context_line":"                # luncopy. If luncopy_info[\u0027state\u0027] is not equal to \u00271\u0027, this"},{"line_number":458,"context_line":"                # means that an error occurred during the LUNcopy operation and"},{"line_number":459,"context_line":"                # we should abort it."}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_0045046e","line":456,"updated":"2015-01-08 04:12:28.000000000","message":"Comment message here isn\u0027t correctly indented.","commit_id":"da1acd0d1eada7cc8c8a642a6e4b6efbf5504ec4"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"3e6e771fc715f4efeb10a515b1db8034f0f14cac","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                # luncopy is completely ready."},{"line_number":454,"context_line":"                if luncopy_info[\u0027status\u0027] \u003d\u003d \u002740\u0027:"},{"line_number":455,"context_line":"                    return True"},{"line_number":456,"context_line":"                # luncopy_info[\u0027state\u0027] means for the healthy status of the"},{"line_number":457,"context_line":"                # luncopy. If luncopy_info[\u0027state\u0027] is not equal to \u00271\u0027, this"},{"line_number":458,"context_line":"                # means that an error occurred during the LUNcopy operation and"},{"line_number":459,"context_line":"                # we should abort it."}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_65fb137b","line":456,"in_reply_to":"3a961159_0045046e","updated":"2015-01-09 09:57:05.000000000","message":"Should I add four white spaces like this:\n\n# luncopy is completely ready.\nif luncopy_info[\u0027status\u0027] \u003d\u003d \u002740\u0027:\n    return True\n    # luncopy_info[\u0027state\u0027] means for the healthy status of \n    # luncopy. If luncopy_info[\u0027state\u0027] is not equal to \u00271\u0027, \n    # means that an error occurred during the LUNcopy","commit_id":"da1acd0d1eada7cc8c8a642a6e4b6efbf5504ec4"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"1206309422a508fb6fd51b3cda73fdecac41da3d","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                # luncopy is completely ready."},{"line_number":454,"context_line":"                if luncopy_info[\u0027status\u0027] \u003d\u003d \u002740\u0027:"},{"line_number":455,"context_line":"                    return True"},{"line_number":456,"context_line":"                # luncopy_info[\u0027state\u0027] means for the healthy status of the"},{"line_number":457,"context_line":"                # luncopy. If luncopy_info[\u0027state\u0027] is not equal to \u00271\u0027, this"},{"line_number":458,"context_line":"                # means that an error occurred during the LUNcopy operation and"},{"line_number":459,"context_line":"                # we should abort it."}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_eff500cd","line":456,"in_reply_to":"3a961159_527fb417","updated":"2015-01-13 01:31:22.000000000","message":"Thanks, done.","commit_id":"da1acd0d1eada7cc8c8a642a6e4b6efbf5504ec4"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"277e5f102712888413115d43b35b2196251c4b31","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                # luncopy is completely ready."},{"line_number":454,"context_line":"                if luncopy_info[\u0027status\u0027] \u003d\u003d \u002740\u0027:"},{"line_number":455,"context_line":"                    return True"},{"line_number":456,"context_line":"                # luncopy_info[\u0027state\u0027] means for the healthy status of the"},{"line_number":457,"context_line":"                # luncopy. If luncopy_info[\u0027state\u0027] is not equal to \u00271\u0027, this"},{"line_number":458,"context_line":"                # means that an error occurred during the LUNcopy operation and"},{"line_number":459,"context_line":"                # we should abort it."}],"source_content_type":"text/x-python","patch_set":7,"id":"3a961159_527fb417","line":456,"in_reply_to":"3a961159_65fb137b","updated":"2015-01-09 15:05:07.000000000","message":"I think the comments should be moved to under the elif condition as it explains about \"luncopy_info[\u0027state\u0027] !\u003d 1\".\n\nelif luncopy_info[\u0027state\u0027] !\u003d \u00271\u0027:\n    # luncopy_info[\u0027state\u0027] means for the healthy status of the\n    # luncopy. If luncopy_info[\u0027state\u0027] is not equal to \u00271\u0027, this\n    # means that an error occurred during the LUNcopy operation and\n    # we should abort it.\n    err_msg \u003d ......","commit_id":"da1acd0d1eada7cc8c8a642a6e4b6efbf5504ec4"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"737060e20f378d9daaef965ee67aacd1d4b36ad2","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"DEFAULT_WAIT_TIMEOUT \u003d 60 * 24 * 30"},{"line_number":41,"context_line":"DEFAULT_WAIT_INTERVAL \u003d 5"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"HOSTGROUP_PREFIX \u003d \u0027OpenStack_HostGroup_\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a961159_4d2fd9a7","line":40,"updated":"2015-01-13 01:43:22.000000000","message":"^^ What?  Am I interpretting something wrong or is this a 12 HOUR timeout?","commit_id":"a34cb5d11b0112b2f847727fbe6f404ebfba51e9"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"a6209039c248d042cd8f46cf344acb5cc3b7ff73","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"DEFAULT_WAIT_TIMEOUT \u003d 60 * 24 * 30"},{"line_number":41,"context_line":"DEFAULT_WAIT_INTERVAL \u003d 5"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"HOSTGROUP_PREFIX \u003d \u0027OpenStack_HostGroup_\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a961159_f36f82f8","line":40,"in_reply_to":"3a961159_4d2fd9a7","updated":"2015-01-13 03:30:55.000000000","message":"Thanks. I have changed this to 3600*24*30, it\u0027s 30 days long. The reason we setting the default timeout so long is because that the LUN copy operation may take a very long time as as the LUN size rising. Users can change this default timeout in huawei configuration file.","commit_id":"a34cb5d11b0112b2f847727fbe6f404ebfba51e9"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"fa3c9138011899d61a4e449b5e0cd88f98c99930","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"DEFAULT_WAIT_TIMEOUT \u003d 3600 * 24 * 30"},{"line_number":41,"context_line":"DEFAULT_WAIT_INTERVAL \u003d 5"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"HOSTGROUP_PREFIX \u003d \u0027OpenStack_HostGroup_\u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a961159_209b4467","line":40,"updated":"2015-01-14 05:19:38.000000000","message":"Timeout a month is really long. I\u0027m ok if that\u0027s what you need.","commit_id":"589990b92f8218571c9a30e31a296f1a0b2306e2"},{"author":{"_account_id":13203,"name":"Wilson Liu","email":"295988511@qq.com","username":"Bob-OpenStack"},"change_message_id":"618d46f20373652b2b497f2ecc5e2ccb3e5fdc5a","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"DEFAULT_WAIT_TIMEOUT \u003d 3600 * 24 * 30"},{"line_number":41,"context_line":"DEFAULT_WAIT_INTERVAL \u003d 5"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"HOSTGROUP_PREFIX \u003d \u0027OpenStack_HostGroup_\u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a961159_692d37a8","line":40,"in_reply_to":"3a961159_209b4467","updated":"2015-01-14 07:59:13.000000000","message":"We will have a further consideration about this. But at present we make this a month long and there have not appear any problem now. Thanks!","commit_id":"589990b92f8218571c9a30e31a296f1a0b2306e2"}]}
