)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5f0a98bdc0816e4477e760aee6d6710004908125","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Recall mechanism for terminate/initialize"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Since backends can be overwheeled by cinder requests and"},{"line_number":10,"context_line":"will answer the request one by one, open requests can last for"},{"line_number":11,"context_line":"a long time. In the case of rpc calls the rpc_response_timeout"},{"line_number":12,"context_line":"will occur if the backend needs too long."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da86d52c_87c10731","line":9,"updated":"2015-02-19 16:36:54.000000000","message":"overwhelmed?","commit_id":"ff19961e818d51715a1d534a817cebc061f1a725"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5f0a98bdc0816e4477e760aee6d6710004908125","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Since backends can be overwheeled by cinder requests and"},{"line_number":10,"context_line":"will answer the request one by one, open requests can last for"},{"line_number":11,"context_line":"a long time. In the case of rpc calls the rpc_response_timeout"},{"line_number":12,"context_line":"will occur if the backend needs too long."},{"line_number":13,"context_line":"This change is about using the information if the backend is"},{"line_number":14,"context_line":"still in progress. This is called the life sign which is the time"},{"line_number":15,"context_line":"of last successful request towards the backend of this"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da86d52c_47d2af00","line":12,"updated":"2015-02-19 16:36:54.000000000","message":"/needs/takes/","commit_id":"ff19961e818d51715a1d534a817cebc061f1a725"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5f0a98bdc0816e4477e760aee6d6710004908125","unresolved":false,"context_lines":[{"line_number":21,"context_line":"connecter dict."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: Id75abc1fbd3ea180b5488e2eb7b5d6d073915843"},{"line_number":24,"context_line":"Implements: blueprint volume status polling"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da86d52c_67f41387","line":24,"updated":"2015-02-19 16:36:54.000000000","message":"This blueprint reference isn\u0027t valid. Can you fix that up?","commit_id":"ff19961e818d51715a1d534a817cebc061f1a725"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0080f858572348bcf8a4e013e19c2b92032b330d","unresolved":false,"context_lines":[{"line_number":21,"context_line":"connecter dict."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: Id75abc1fbd3ea180b5488e2eb7b5d6d073915843"},{"line_number":24,"context_line":"Implements: blueprint volume status polling"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da86d52c_1de3a705","line":24,"in_reply_to":"da86d52c_67f41387","updated":"2015-02-19 18:25:58.000000000","message":"Implements: blueprint volume-status-polling","commit_id":"ff19961e818d51715a1d534a817cebc061f1a725"}],"cinder/volume/manager.py":[{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"4a48a492fe04e2381679d1ab0f62fcc16aff49fd","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    cfg.IntOpt(\u0027cinder_backend_response_timeout\u0027,"},{"line_number":107,"context_line":"               default\u003d60,"},{"line_number":108,"context_line":"               help\u003d\u0027Maximum respond time for cinder back-end\u0027),"},{"line_number":109,"context_line":"    cfg.IntOpt(\u0027cinder_backend_request_thread_pool_size\u0027,"},{"line_number":110,"context_line":"               default\u003d16,"},{"line_number":111,"context_line":"               help\u003d\u0027Maximum thread pool size for backend requests\u0027),"},{"line_number":112,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_162a267e","line":109,"updated":"2015-02-10 09:08:06.000000000","message":"So this is also the total number of requests in parallel that a backend would receive?","commit_id":"fccbd587d6a8298fd684e7435de61ca695d4302a"},{"author":{"_account_id":10851,"name":"Tobias Engelbert","email":"tobias.engelbert@ericsson.com","username":"Tobi"},"change_message_id":"67a6094e3f444ef4eafe175a8773269129759c5e","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    cfg.IntOpt(\u0027cinder_backend_response_timeout\u0027,"},{"line_number":107,"context_line":"               default\u003d60,"},{"line_number":108,"context_line":"               help\u003d\u0027Maximum respond time for cinder back-end\u0027),"},{"line_number":109,"context_line":"    cfg.IntOpt(\u0027cinder_backend_request_thread_pool_size\u0027,"},{"line_number":110,"context_line":"               default\u003d16,"},{"line_number":111,"context_line":"               help\u003d\u0027Maximum thread pool size for backend requests\u0027),"},{"line_number":112,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_d64a4982","line":109,"in_reply_to":"da86d52c_162a267e","updated":"2015-02-10 11:34:04.000000000","message":"Yes, using this max number of threads.","commit_id":"fccbd587d6a8298fd684e7435de61ca695d4302a"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"4a48a492fe04e2381679d1ab0f62fcc16aff49fd","unresolved":false,"context_lines":[{"line_number":897,"context_line":"                rv \u003d thread.wait()"},{"line_number":898,"context_line":"        except timeout.Timeout:"},{"line_number":899,"context_line":"            time_to_last_life_sign \u003d timeutils.utcnow() - self.last_life_sign"},{"line_number":900,"context_line":"            if (time_to_last_life_sign).total_seconds() \u003e\\"},{"line_number":901,"context_line":"                    CONF.cinder_backend_response_timeout:"},{"line_number":902,"context_line":"                # Wait forever. RPC timeout will occur and normal error"},{"line_number":903,"context_line":"                # handling will take place"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_56a9fedd","line":900,"updated":"2015-02-10 09:08:06.000000000","message":"Recommended style is to just () round the whole condition, rather than \u0027\\\u0027 to join lines","commit_id":"fccbd587d6a8298fd684e7435de61ca695d4302a"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"4a48a492fe04e2381679d1ab0f62fcc16aff49fd","unresolved":false,"context_lines":[{"line_number":901,"context_line":"                    CONF.cinder_backend_response_timeout:"},{"line_number":902,"context_line":"                # Wait forever. RPC timeout will occur and normal error"},{"line_number":903,"context_line":"                # handling will take place"},{"line_number":904,"context_line":"                LOG.error(_(\"No response from Backend the last %(time)s. \""},{"line_number":905,"context_line":"                            \"Still trying to finish the request %(req)s \""},{"line_number":906,"context_line":"                            \"for volume %(vol_id)s\") %"},{"line_number":907,"context_line":"                          {\u0027time\u0027: time_to_last_life_sign,"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_96d8d680","line":904,"updated":"2015-02-10 09:08:06.000000000","message":"Should be warning, maybe even info. Also, the string should be wrapped in _LE/_LW/_LI, and comma used not %","commit_id":"fccbd587d6a8298fd684e7435de61ca695d4302a"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0080f858572348bcf8a4e013e19c2b92032b330d","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                    \u0027properties.\u0027),"},{"line_number":103,"context_line":"    cfg.IntOpt(\u0027rpc_response_timeout\u0027,"},{"line_number":104,"context_line":"               default\u003d60,"},{"line_number":105,"context_line":"               help\u003d\u0027Seconds to wait for a response from a call.\u0027),"},{"line_number":106,"context_line":"    cfg.IntOpt(\u0027cinder_backend_response_timeout\u0027,"},{"line_number":107,"context_line":"               default\u003d60,"},{"line_number":108,"context_line":"               help\u003d\u0027Maximum respond time for cinder back-end\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_404b74b0","line":105,"updated":"2015-02-19 18:25:58.000000000","message":"This is already defined in oslo.messaging/oslo_messaging/rpc/client.py.  It should be imported rather than creating another one.","commit_id":"ff19961e818d51715a1d534a817cebc061f1a725"},{"author":{"_account_id":10851,"name":"Tobias Engelbert","email":"tobias.engelbert@ericsson.com","username":"Tobi"},"change_message_id":"14865b60a41f3dbb0747998c2a39c026e17032ea","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                    \u0027properties.\u0027),"},{"line_number":103,"context_line":"    cfg.IntOpt(\u0027rpc_response_timeout\u0027,"},{"line_number":104,"context_line":"               default\u003d60,"},{"line_number":105,"context_line":"               help\u003d\u0027Seconds to wait for a response from a call.\u0027),"},{"line_number":106,"context_line":"    cfg.IntOpt(\u0027cinder_backend_response_timeout\u0027,"},{"line_number":107,"context_line":"               default\u003d60,"},{"line_number":108,"context_line":"               help\u003d\u0027Maximum respond time for cinder back-end\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_055d77e9","line":105,"in_reply_to":"da86d52c_404b74b0","updated":"2015-02-24 08:35:49.000000000","message":"How does this work? Is the value stored in oslo.conf and read by cinder?","commit_id":"ff19961e818d51715a1d534a817cebc061f1a725"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0080f858572348bcf8a4e013e19c2b92032b330d","unresolved":false,"context_lines":[{"line_number":103,"context_line":"    cfg.IntOpt(\u0027rpc_response_timeout\u0027,"},{"line_number":104,"context_line":"               default\u003d60,"},{"line_number":105,"context_line":"               help\u003d\u0027Seconds to wait for a response from a call.\u0027),"},{"line_number":106,"context_line":"    cfg.IntOpt(\u0027cinder_backend_response_timeout\u0027,"},{"line_number":107,"context_line":"               default\u003d60,"},{"line_number":108,"context_line":"               help\u003d\u0027Maximum respond time for cinder back-end\u0027),"},{"line_number":109,"context_line":"    cfg.IntOpt(\u0027cinder_backend_request_thread_pool_size\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_80ef2c86","line":106,"updated":"2015-02-19 18:25:58.000000000","message":"Please remove \u0027cinder_\u0027.","commit_id":"ff19961e818d51715a1d534a817cebc061f1a725"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5f0a98bdc0816e4477e760aee6d6710004908125","unresolved":false,"context_lines":[{"line_number":105,"context_line":"               help\u003d\u0027Seconds to wait for a response from a call.\u0027),"},{"line_number":106,"context_line":"    cfg.IntOpt(\u0027cinder_backend_response_timeout\u0027,"},{"line_number":107,"context_line":"               default\u003d60,"},{"line_number":108,"context_line":"               help\u003d\u0027Maximum respond time for cinder back-end\u0027),"},{"line_number":109,"context_line":"    cfg.IntOpt(\u0027cinder_backend_request_thread_pool_size\u0027,"},{"line_number":110,"context_line":"               default\u003d16,"},{"line_number":111,"context_line":"               help\u003d\u0027Maximum thread pool size for backend requests\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_476e2f30","line":108,"updated":"2015-02-19 16:36:54.000000000","message":"Please add period at the end for consistency.\n\n/respond time/response time/ ?","commit_id":"ff19961e818d51715a1d534a817cebc061f1a725"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0080f858572348bcf8a4e013e19c2b92032b330d","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    cfg.IntOpt(\u0027cinder_backend_response_timeout\u0027,"},{"line_number":107,"context_line":"               default\u003d60,"},{"line_number":108,"context_line":"               help\u003d\u0027Maximum respond time for cinder back-end\u0027),"},{"line_number":109,"context_line":"    cfg.IntOpt(\u0027cinder_backend_request_thread_pool_size\u0027,"},{"line_number":110,"context_line":"               default\u003d16,"},{"line_number":111,"context_line":"               help\u003d\u0027Maximum thread pool size for backend requests\u0027),"},{"line_number":112,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_008a5cbe","line":109,"updated":"2015-02-19 18:25:58.000000000","message":"Remove \u0027cinder_\u0027.","commit_id":"ff19961e818d51715a1d534a817cebc061f1a725"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5f0a98bdc0816e4477e760aee6d6710004908125","unresolved":false,"context_lines":[{"line_number":108,"context_line":"               help\u003d\u0027Maximum respond time for cinder back-end\u0027),"},{"line_number":109,"context_line":"    cfg.IntOpt(\u0027cinder_backend_request_thread_pool_size\u0027,"},{"line_number":110,"context_line":"               default\u003d16,"},{"line_number":111,"context_line":"               help\u003d\u0027Maximum thread pool size for backend requests\u0027),"},{"line_number":112,"context_line":"]"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_e764834a","line":111,"updated":"2015-02-19 16:36:54.000000000","message":"Please add period.","commit_id":"ff19961e818d51715a1d534a817cebc061f1a725"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0080f858572348bcf8a4e013e19c2b92032b330d","unresolved":false,"context_lines":[{"line_number":891,"context_line":"                    del self.open_threads[key]"},{"line_number":892,"context_line":"            except KeyError:"},{"line_number":893,"context_line":"                # Seems that another thread already deleted the entry"},{"line_number":894,"context_line":"                pass"},{"line_number":895,"context_line":"        try:"},{"line_number":896,"context_line":"            with timeout.Timeout(CONF.rpc_response_timeout - 10):"},{"line_number":897,"context_line":"                rv \u003d thread.wait()"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_26221801","line":894,"updated":"2015-02-19 18:25:58.000000000","message":"Should log a warning message.","commit_id":"ff19961e818d51715a1d534a817cebc061f1a725"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0080f858572348bcf8a4e013e19c2b92032b330d","unresolved":false,"context_lines":[{"line_number":910,"context_line":"                thread.wait()"},{"line_number":911,"context_line":"                _delete_request_thread()"},{"line_number":912,"context_line":"                return rv"},{"line_number":913,"context_line":"            recall_id \u003d str(uuid.uuid4())"},{"line_number":914,"context_line":"            self.open_threads[key][\"recall_id\"] \u003d recall_id"},{"line_number":915,"context_line":"            LOG.debug(\"No answer from backend yet for request. \""},{"line_number":916,"context_line":"                      \"%(req)s of volume %(vol_id)s \""}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_6646d0a8","line":913,"updated":"2015-02-19 18:25:58.000000000","message":"Use six.text_type() instead of str().","commit_id":"ff19961e818d51715a1d534a817cebc061f1a725"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5f0a98bdc0816e4477e760aee6d6710004908125","unresolved":false,"context_lines":[{"line_number":914,"context_line":"            self.open_threads[key][\"recall_id\"] \u003d recall_id"},{"line_number":915,"context_line":"            LOG.debug(\"No answer from backend yet for request. \""},{"line_number":916,"context_line":"                      \"%(req)s of volume %(vol_id)s \""},{"line_number":917,"context_line":"                      \"responding recall to the caller\" %"},{"line_number":918,"context_line":"                      {\u0027req\u0027: func_name, \u0027vol_id\u0027: volume_id})"},{"line_number":919,"context_line":"            return {\u0027driver_volume_type\u0027: \u0027n/a\u0027, \u0027data\u0027: \u0027n/a\u0027,"},{"line_number":920,"context_line":"                    \u0027do_recall\u0027: True, \u0027recall_id\u0027: recall_id}"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_c7bdbf69","line":917,"updated":"2015-02-19 16:36:54.000000000","message":"% \u003d\u003e ,","commit_id":"ff19961e818d51715a1d534a817cebc061f1a725"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5f0a98bdc0816e4477e760aee6d6710004908125","unresolved":false,"context_lines":[{"line_number":973,"context_line":"              json in various places, so it should not contain any non-json"},{"line_number":974,"context_line":"              data types."},{"line_number":975,"context_line":"        \"\"\""},{"line_number":976,"context_line":"        if isinstance(connector, dict) and \\"},{"line_number":977,"context_line":"                connector.get(\"support_recall\"):"},{"line_number":978,"context_line":"            return self._request_handler(self._do_initialize_connection,"},{"line_number":979,"context_line":"                                         \"initialize_connection\", context,"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_a7a28b3c","line":976,"updated":"2015-02-19 16:36:54.000000000","message":"Please use parenthesis around the if condition to avoid using \\","commit_id":"ff19961e818d51715a1d534a817cebc061f1a725"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5f0a98bdc0816e4477e760aee6d6710004908125","unresolved":false,"context_lines":[{"line_number":1066,"context_line":""},{"line_number":1067,"context_line":"        The format of connector is the same as for initialize_connection."},{"line_number":1068,"context_line":"        \"\"\""},{"line_number":1069,"context_line":"        if isinstance(connector, dict) and \\"},{"line_number":1070,"context_line":"                connector.get(\"support_recall\", False):"},{"line_number":1071,"context_line":"            return self._request_handler(self._do_terminate_connection,"},{"line_number":1072,"context_line":"                                         \"terminate_connection\", context,"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_276e9b00","line":1069,"updated":"2015-02-19 16:36:54.000000000","message":"/ \u003d\u003e ()","commit_id":"ff19961e818d51715a1d534a817cebc061f1a725"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"43a6d8c1b9ad4e2938c1b43266b790126c1e0f9d","unresolved":false,"context_lines":[{"line_number":105,"context_line":"               help\u003d\u0027Seconds to wait for a response from a call.\u0027),"},{"line_number":106,"context_line":"    cfg.IntOpt(\u0027backend_request_thread_pool_size\u0027,"},{"line_number":107,"context_line":"               default\u003d16,"},{"line_number":108,"context_line":"               help\u003d\u0027Maximum thread pool size for backend requests\u0027),"},{"line_number":109,"context_line":"    cfg.IntOpt(\u0027backend_response_timeout\u0027,"},{"line_number":110,"context_line":"               default\u003d60,"},{"line_number":111,"context_line":"               help\u003d\u0027Maximum response time for backend\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_b8b693da","line":108,"updated":"2015-03-02 16:37:50.000000000","message":"Suggest \u0027.\u0027","commit_id":"e828a453fbc15d5fb42639caf7fbad8beb06aeaa"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"43a6d8c1b9ad4e2938c1b43266b790126c1e0f9d","unresolved":false,"context_lines":[{"line_number":108,"context_line":"               help\u003d\u0027Maximum thread pool size for backend requests\u0027),"},{"line_number":109,"context_line":"    cfg.IntOpt(\u0027backend_response_timeout\u0027,"},{"line_number":110,"context_line":"               default\u003d60,"},{"line_number":111,"context_line":"               help\u003d\u0027Maximum response time for backend\u0027),"},{"line_number":112,"context_line":"]"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_18b4ffcf","line":111,"updated":"2015-03-02 16:37:50.000000000","message":"Suggest \u0027.\u0027 here","commit_id":"e828a453fbc15d5fb42639caf7fbad8beb06aeaa"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"43a6d8c1b9ad4e2938c1b43266b790126c1e0f9d","unresolved":false,"context_lines":[{"line_number":901,"context_line":"                    CONF.backend_response_timeout):"},{"line_number":902,"context_line":"                # Wait forever. RPC timeout will occur and normal error"},{"line_number":903,"context_line":"                # handling will take place"},{"line_number":904,"context_line":"                LOG.warn(_LW(\"No response from Backend the last %(time)s. \""},{"line_number":905,"context_line":"                             \"Still trying to finish the request %(req)s \""},{"line_number":906,"context_line":"                             \"for volume %(vol_id)s\"),"},{"line_number":907,"context_line":"                         {\u0027time\u0027: time_to_last_life_sign,"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_18107fa7","line":904,"updated":"2015-03-02 16:37:50.000000000","message":"\"No response from Backend since %(time)s\"","commit_id":"e828a453fbc15d5fb42639caf7fbad8beb06aeaa"}]}
