)]}'
{"bin/cinder-manage":[{"author":{"_account_id":9449,"name":"Verónica Musso","email":"veronica.a.musso@intel.com","username":"vamusso"},"change_message_id":"cfaf90f3bb9f027f52b267d69c0d5ff51cec9dcf","unresolved":false,"context_lines":[{"line_number":179,"context_line":"    def script(self, path):"},{"line_number":180,"context_line":"        \"\"\"Runs the script from the specified path with flags set properly."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        :param: path"},{"line_number":183,"context_line":"        \"\"\""},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"        exec(compile(open(path).read(), path, \u0027exec\u0027), locals(), globals())"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAAUH%2F9%2BiY%3D","line":182,"updated":"2014-01-31 13:48:28.000000000","message":"Done!","commit_id":"69260ba54bd1700dcddf8ffd6ed9f632e45fe164"},{"author":{"_account_id":9450,"name":"Juan Manuel Ollé","email":"juan.m.olle@intel.com","username":"jmolle"},"change_message_id":"a6af7aa4f4250bd5a42d63fb91eaa3e210856ac3","unresolved":false,"context_lines":[{"line_number":179,"context_line":"    def script(self, path):"},{"line_number":180,"context_line":"        \"\"\"Runs the script from the specified path with flags set properly."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        :param: path"},{"line_number":183,"context_line":"        \"\"\""},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"        exec(compile(open(path).read(), path, \u0027exec\u0027), locals(), globals())"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAAUH%2F9%2BpY%3D","line":182,"updated":"2014-01-31 13:06:38.000000000","message":"this is not consistent","commit_id":"69260ba54bd1700dcddf8ffd6ed9f632e45fe164"},{"author":{"_account_id":9450,"name":"Juan Manuel Ollé","email":"juan.m.olle@intel.com","username":"jmolle"},"change_message_id":"a6af7aa4f4250bd5a42d63fb91eaa3e210856ac3","unresolved":false,"context_lines":[{"line_number":200,"context_line":"          help\u003d\u0027Availability Zone (default: %(default)s)\u0027)"},{"line_number":201,"context_line":"    def list(self, zone\u003dNone):"},{"line_number":202,"context_line":"        \"\"\"Show a list of all physical hosts. Filter by zone."},{"line_number":203,"context_line":"        :params zone:"},{"line_number":204,"context_line":"        \"\"\""},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        print(_(\"%(host)-25s\\t%(zone)-15s\") % {\u0027host\u0027: \u0027host\u0027, \u0027zone\u0027: \u0027zone\u0027})"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAAUH%2F9%2BpI%3D","line":203,"updated":"2014-01-31 13:06:38.000000000","message":"params should be without s","commit_id":"69260ba54bd1700dcddf8ffd6ed9f632e45fe164"},{"author":{"_account_id":9449,"name":"Verónica Musso","email":"veronica.a.musso@intel.com","username":"vamusso"},"change_message_id":"cfaf90f3bb9f027f52b267d69c0d5ff51cec9dcf","unresolved":false,"context_lines":[{"line_number":200,"context_line":"          help\u003d\u0027Availability Zone (default: %(default)s)\u0027)"},{"line_number":201,"context_line":"    def list(self, zone\u003dNone):"},{"line_number":202,"context_line":"        \"\"\"Show a list of all physical hosts. Filter by zone."},{"line_number":203,"context_line":"        :params zone:"},{"line_number":204,"context_line":"        \"\"\""},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        print(_(\"%(host)-25s\\t%(zone)-15s\") % {\u0027host\u0027: \u0027host\u0027, \u0027zone\u0027: \u0027zone\u0027})"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAAUH%2F9%2BjA%3D","line":203,"in_reply_to":"AAAAUH%2F9%2BpI%3D","updated":"2014-01-31 13:48:28.000000000","message":"Done","commit_id":"69260ba54bd1700dcddf8ffd6ed9f632e45fe164"},{"author":{"_account_id":9450,"name":"Juan Manuel Ollé","email":"juan.m.olle@intel.com","username":"jmolle"},"change_message_id":"a6af7aa4f4250bd5a42d63fb91eaa3e210856ac3","unresolved":false,"context_lines":[{"line_number":258,"context_line":"          help\u003d\u0027Volume ID to be deleted\u0027)"},{"line_number":259,"context_line":"    def delete(self, volume_id):"},{"line_number":260,"context_line":"        \"\"\"Delete a volume, bypassing the check that it must be available.\"\"\""},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":263,"context_line":"        volume \u003d db.volume_get(ctxt, param2id(volume_id))"},{"line_number":264,"context_line":"        host \u003d volume[\u0027host\u0027]"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAAUH%2F9%2Bo0%3D","line":261,"updated":"2014-01-31 13:06:38.000000000","message":"should volume_id be also documented?","commit_id":"69260ba54bd1700dcddf8ffd6ed9f632e45fe164"},{"author":{"_account_id":9450,"name":"Juan Manuel Ollé","email":"juan.m.olle@intel.com","username":"jmolle"},"change_message_id":"a6af7aa4f4250bd5a42d63fb91eaa3e210856ac3","unresolved":false,"context_lines":[{"line_number":281,"context_line":""},{"line_number":282,"context_line":"    @args(\u0027volume_id\u0027,"},{"line_number":283,"context_line":"          help\u003d\u0027Volume ID to be reattached\u0027)"},{"line_number":284,"context_line":"    def reattach(self, volume_id):"},{"line_number":285,"context_line":"        \"\"\"Re-attach a volume that has previously been attached"},{"line_number":286,"context_line":"        to an instance.  Typically called after a compute host"},{"line_number":287,"context_line":"        has been rebooted."}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAAUH%2F9%2Bos%3D","line":284,"updated":"2014-01-31 13:06:38.000000000","message":"volume_id? should be documented?","commit_id":"69260ba54bd1700dcddf8ffd6ed9f632e45fe164"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"ccd12dc6b73b2da7889317cebbe758fe454a853a","unresolved":false,"context_lines":[{"line_number":179,"context_line":"    def script(self, path):"},{"line_number":180,"context_line":"        \"\"\"Runs the script from the specified path with flags set properly."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        :param path:"},{"line_number":183,"context_line":"        \"\"\""},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"        exec(compile(open(path).read(), path, \u0027exec\u0027), locals(), globals())"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAAWn%2F%2F7lI%3D","line":182,"updated":"2014-04-08 12:45:45.000000000","message":"can remove this altogether i guess?","commit_id":"344efbe479bfde2fbdb3b1391dca50efc33bbb85"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"ccd12dc6b73b2da7889317cebbe758fe454a853a","unresolved":false,"context_lines":[{"line_number":200,"context_line":"          help\u003d\u0027Availability Zone (default: %(default)s)\u0027)"},{"line_number":201,"context_line":"    def list(self, zone\u003dNone):"},{"line_number":202,"context_line":"        \"\"\"Show a list of all physical hosts. Filter by zone."},{"line_number":203,"context_line":"        :param zone:"},{"line_number":204,"context_line":"        \"\"\""},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        print(_(\"%(host)-25s\\t%(zone)-15s\") % {\u0027host\u0027: \u0027host\u0027, \u0027zone\u0027: \u0027zone\u0027})"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAAWn%2F%2F7lE%3D","line":203,"updated":"2014-04-08 12:45:45.000000000","message":"can remove this altogether i guess?","commit_id":"344efbe479bfde2fbdb3b1391dca50efc33bbb85"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"ccd12dc6b73b2da7889317cebbe758fe454a853a","unresolved":false,"context_lines":[{"line_number":286,"context_line":"    @args(\u0027volume_id\u0027,"},{"line_number":287,"context_line":"          help\u003d\u0027Volume ID to be reattached\u0027)"},{"line_number":288,"context_line":"    def reattach(self, volume_id):"},{"line_number":289,"context_line":"        \"\"\"Re-attach a volume that has previously been attached"},{"line_number":290,"context_line":"        to an instance.  Typically called after a compute host"},{"line_number":291,"context_line":"        has been rebooted."},{"line_number":292,"context_line":"        \"\"\""}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAAWn%2F%2F7kc%3D","line":289,"updated":"2014-04-08 12:45:45.000000000","message":"fix this too?","commit_id":"344efbe479bfde2fbdb3b1391dca50efc33bbb85"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"ccd12dc6b73b2da7889317cebbe758fe454a853a","unresolved":false,"context_lines":[{"line_number":387,"context_line":"    \"\"\"Methods for managing backups.\"\"\""},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"    def list(self):"},{"line_number":390,"context_line":"        \"\"\"List all backups (including ones in progress) and the host"},{"line_number":391,"context_line":"        on which the backup operation is running."},{"line_number":392,"context_line":"        \"\"\""},{"line_number":393,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAAWn%2F%2F7j0%3D","line":390,"updated":"2014-04-08 12:45:45.000000000","message":"fix this too?","commit_id":"344efbe479bfde2fbdb3b1391dca50efc33bbb85"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"ccd12dc6b73b2da7889317cebbe758fe454a853a","unresolved":false,"context_lines":[{"line_number":461,"context_line":""},{"line_number":462,"context_line":""},{"line_number":463,"context_line":"def methods_of(obj):"},{"line_number":464,"context_line":"    \"\"\"Get all callable methods of an object that don\u0027t start with underscore"},{"line_number":465,"context_line":"    returns a list of tuples of the form (method_name, method)"},{"line_number":466,"context_line":"    \"\"\""},{"line_number":467,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":6,"id":"AAAAWn%2F%2F7k0%3D","line":464,"updated":"2014-04-08 12:45:45.000000000","message":"fix this too?","commit_id":"344efbe479bfde2fbdb3b1391dca50efc33bbb85"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"97b0f0c194061e2b91062bc5f331ad671d1ad0bf","unresolved":false,"context_lines":[{"line_number":460,"context_line":"def methods_of(obj):"},{"line_number":461,"context_line":"    \"\"\"Get all callable methods of an object that don\u0027t start with underscore."},{"line_number":462,"context_line":""},{"line_number":463,"context_line":"    It returns a list of tuples of the form (method_name, method)."},{"line_number":464,"context_line":"    \"\"\""},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"    result \u003d []"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"AAAAW3%2F%2FSdg%3D","line":463,"updated":"2014-04-15 15:06:32.000000000","message":"if you\u0027re changing this shouldn\u0027t it be \":returns: ...\"","commit_id":"07016193e17c8b75eec50b133dbc761b160403bf"}],"cinder/api/openstack/wsgi.py":[{"author":{"_account_id":9450,"name":"Juan Manuel Ollé","email":"juan.m.olle@intel.com","username":"jmolle"},"change_message_id":"a6af7aa4f4250bd5a42d63fb91eaa3e210856ac3","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        Note that the object data will be slightly stale."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        :returns: a dict of id_attribute to the resource from the cached"},{"line_number":115,"context_line":"                  resources, an empty map if an empty collection was cached,"},{"line_number":116,"context_line":"                  or None if nothing has been cached yet under this name"},{"line_number":117,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F9%2BnI%3D","line":114,"updated":"2014-01-31 13:06:38.000000000","message":"it should be return or returns?","commit_id":"69260ba54bd1700dcddf8ffd6ed9f632e45fe164"},{"author":{"_account_id":9449,"name":"Verónica Musso","email":"veronica.a.musso@intel.com","username":"vamusso"},"change_message_id":"cfaf90f3bb9f027f52b267d69c0d5ff51cec9dcf","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        Note that the object data will be slightly stale."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        :returns: a dict of id_attribute to the resource from the cached"},{"line_number":115,"context_line":"                  resources, an empty map if an empty collection was cached,"},{"line_number":116,"context_line":"                  or None if nothing has been cached yet under this name"},{"line_number":117,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F9%2BfU%3D","line":114,"in_reply_to":"AAAAUH%2F9%2BnI%3D","updated":"2014-01-31 13:48:28.000000000","message":"It is \"returns\"","commit_id":"69260ba54bd1700dcddf8ffd6ed9f632e45fe164"},{"author":{"_account_id":9450,"name":"Juan Manuel Ollé","email":"juan.m.olle@intel.com","username":"jmolle"},"change_message_id":"a6af7aa4f4250bd5a42d63fb91eaa3e210856ac3","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        Note that the object data will be slightly stale."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        :returns: the cached resource or None if the item is not in the cache"},{"line_number":136,"context_line":"        \"\"\""},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        resources \u003d self.cached_resource(name)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F9%2BnE%3D","line":135,"updated":"2014-01-31 13:06:38.000000000","message":"the s in return is correct?","commit_id":"69260ba54bd1700dcddf8ffd6ed9f632e45fe164"},{"author":{"_account_id":9449,"name":"Verónica Musso","email":"veronica.a.musso@intel.com","username":"vamusso"},"change_message_id":"cfaf90f3bb9f027f52b267d69c0d5ff51cec9dcf","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        Note that the object data will be slightly stale."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        :returns: the cached resource or None if the item is not in the cache"},{"line_number":136,"context_line":"        \"\"\""},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        resources \u003d self.cached_resource(name)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F9%2Bfg%3D","line":135,"in_reply_to":"AAAAUH%2F9%2BnE%3D","updated":"2014-01-31 13:48:28.000000000","message":"Yes, it is correct.","commit_id":"69260ba54bd1700dcddf8ffd6ed9f632e45fe164"},{"author":{"_account_id":9450,"name":"Juan Manuel Ollé","email":"juan.m.olle@intel.com","username":"jmolle"},"change_message_id":"a6af7aa4f4250bd5a42d63fb91eaa3e210856ac3","unresolved":false,"context_lines":[{"line_number":183,"context_line":"    def best_match_language(self):"},{"line_number":184,"context_line":"        \"\"\"Determines best available locale from the Accept-Language header."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        :returns: the best language match or None if the \u0027Accept-Language\u0027"},{"line_number":187,"context_line":"                  header was not available in the request."},{"line_number":188,"context_line":"        \"\"\""},{"line_number":189,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F9%2Bm8%3D","line":186,"updated":"2014-01-31 13:06:38.000000000","message":"again the s","commit_id":"69260ba54bd1700dcddf8ffd6ed9f632e45fe164"},{"author":{"_account_id":9449,"name":"Verónica Musso","email":"veronica.a.musso@intel.com","username":"vamusso"},"change_message_id":"cfaf90f3bb9f027f52b267d69c0d5ff51cec9dcf","unresolved":false,"context_lines":[{"line_number":183,"context_line":"    def best_match_language(self):"},{"line_number":184,"context_line":"        \"\"\"Determines best available locale from the Accept-Language header."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        :returns: the best language match or None if the \u0027Accept-Language\u0027"},{"line_number":187,"context_line":"                  header was not available in the request."},{"line_number":188,"context_line":"        \"\"\""},{"line_number":189,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F9%2BfM%3D","line":186,"in_reply_to":"AAAAUH%2F9%2Bm8%3D","updated":"2014-01-31 13:48:28.000000000","message":"It is correct","commit_id":"69260ba54bd1700dcddf8ffd6ed9f632e45fe164"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"dc7c48f66dce2930647abbc7ca3fd10bcd6db838","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        return content_type"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    def best_match_language(self):"},{"line_number":184,"context_line":"        \"\"\"Determines best available locale from the Accept-Language header."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        :returns: the best language match or None if the \u0027Accept-Language\u0027"},{"line_number":187,"context_line":"                  header was not available in the request."}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F98QE%3D","line":184,"updated":"2014-01-31 20:49:08.000000000","message":"Should be:\n\"Determine best available...\"","commit_id":"ef5804f8e8a0bdb610d47894efefe9da9a4cf190"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"dc7c48f66dce2930647abbc7ca3fd10bcd6db838","unresolved":false,"context_lines":[{"line_number":1240,"context_line":""},{"line_number":1241,"context_line":"    @webob.dec.wsgify(RequestClass\u003dRequest)"},{"line_number":1242,"context_line":"    def __call__(self, request):"},{"line_number":1243,"context_line":"        \"\"\"Serializes the wrapped exception conforming to our error format.\"\"\""},{"line_number":1244,"context_line":""},{"line_number":1245,"context_line":"        content_type \u003d request.best_match_content_type()"},{"line_number":1246,"context_line":"        metadata \u003d {\"attributes\": {\"overLimitFault\": \"code\"}}"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F98P4%3D","line":1243,"updated":"2014-01-31 20:49:08.000000000","message":"Should be:\n\"Serialize the wrapped...\"","commit_id":"ef5804f8e8a0bdb610d47894efefe9da9a4cf190"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"ccd12dc6b73b2da7889317cebbe758fe454a853a","unresolved":false,"context_lines":[{"line_number":189,"context_line":"    \"\"\"Maps method name to local methods through action name.\"\"\""},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def dispatch(self, *args, **kwargs):"},{"line_number":192,"context_line":"        \"\"\"Finds and call local method.\"\"\""},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"        action \u003d kwargs.pop(\u0027action\u0027, \u0027default\u0027)"},{"line_number":195,"context_line":"        action_method \u003d getattr(self, str(action), self.default)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWn%2F%2F7ig%3D","line":192,"updated":"2014-04-08 12:45:45.000000000","message":"calls?*","commit_id":"344efbe479bfde2fbdb3b1391dca50efc33bbb85"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"97b0f0c194061e2b91062bc5f331ad671d1ad0bf","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"class Request(webob.Request):"},{"line_number":57,"context_line":"    \"\"\"Adds some OpenStack API-specific logic to the base webob.Request.\"\"\""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":60,"context_line":"        super(Request, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAW3%2F%2FSZw%3D","line":57,"updated":"2014-04-15 15:06:32.000000000","message":"PEP 257 recommends describing the \u0027effect as a command (\"Do this\", \"Return that\"), not as a description; e.g. don\u0027t write \"Returns the pathname ...\"\u0027\n\nI understand that the tense of docstrings is mixed throughout, and I\u0027m not suggesting you changing them all in this patch, I just don\u0027t think you should change the tense of existing docstrings to go against PEP 257.\n\n(same comment for the rest of this file)","commit_id":"07016193e17c8b75eec50b133dbc761b160403bf"},{"author":{"_account_id":10242,"name":"Emilio Recio","email":"emiliorecio@gmail.com","username":"emiliorecio"},"change_message_id":"29dd497ed998e1db371b8e3b2721874b3d9867ad","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"class Request(webob.Request):"},{"line_number":57,"context_line":"    \"\"\"Adds some OpenStack API-specific logic to the base webob.Request.\"\"\""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":60,"context_line":"        super(Request, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAW3%2F%2FQ88%3D","line":57,"in_reply_to":"AAAAW3%2F%2FRSY%3D","updated":"2014-04-15 17:23:41.000000000","message":"My bad its webob.Request","commit_id":"07016193e17c8b75eec50b133dbc761b160403bf"},{"author":{"_account_id":10242,"name":"Emilio Recio","email":"emiliorecio@gmail.com","username":"emiliorecio"},"change_message_id":"ad201e778049ad1beab77852fd406d7e0f4dbddd","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"class Request(webob.Request):"},{"line_number":57,"context_line":"    \"\"\"Adds some OpenStack API-specific logic to the base webob.Request.\"\"\""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":60,"context_line":"        super(Request, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAW3%2F%2FRSY%3D","line":57,"in_reply_to":"AAAAW3%2F%2FSZw%3D","updated":"2014-04-15 16:45:23.000000000","message":"Also, after the first period the word \".Request.\" don\u0027t add anything to the sentence. Could being removed?","commit_id":"07016193e17c8b75eec50b133dbc761b160403bf"}],"cinder/api/urlmap.py":[{"author":{"_account_id":9450,"name":"Juan Manuel Ollé","email":"juan.m.olle@intel.com","username":"jmolle"},"change_message_id":"a6af7aa4f4250bd5a42d63fb91eaa3e210856ac3","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    [\u0027token\u0027, \u0027quoted value\u0027]"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    :param value: a string with a list header."},{"line_number":64,"context_line":"    :return: :class:`list`"},{"line_number":65,"context_line":"    \"\"\""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    result \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F9%2BnU%3D","line":64,"updated":"2014-01-31 13:06:38.000000000","message":"is it correct to add extra : after return?","commit_id":"69260ba54bd1700dcddf8ffd6ed9f632e45fe164"},{"author":{"_account_id":9449,"name":"Verónica Musso","email":"veronica.a.musso@intel.com","username":"vamusso"},"change_message_id":"cfaf90f3bb9f027f52b267d69c0d5ff51cec9dcf","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    [\u0027token\u0027, \u0027quoted value\u0027]"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    :param value: a string with a list header."},{"line_number":64,"context_line":"    :return: :class:`list`"},{"line_number":65,"context_line":"    \"\"\""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    result \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F9%2BeI%3D","line":64,"in_reply_to":"AAAAUH%2F9%2BnU%3D","updated":"2014-01-31 13:48:28.000000000","message":"No, it is not. I will remove it. Thanks!","commit_id":"69260ba54bd1700dcddf8ffd6ed9f632e45fe164"},{"author":{"_account_id":9450,"name":"Juan Manuel Ollé","email":"juan.m.olle@intel.com","username":"jmolle"},"change_message_id":"a6af7aa4f4250bd5a42d63fb91eaa3e210856ac3","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    (\u0027Content-Type:\u0027, {\u0027mimetype\u0027: \u0027text/html\u0027})"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    :param value: the header to parse."},{"line_number":83,"context_line":"    :return: (str, options)"},{"line_number":84,"context_line":"    \"\"\""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def _tokenize(string):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F9%2BnQ%3D","line":83,"updated":"2014-01-31 13:06:38.000000000","message":"again... the: after return?","commit_id":"69260ba54bd1700dcddf8ffd6ed9f632e45fe164"},{"author":{"_account_id":9449,"name":"Verónica Musso","email":"veronica.a.musso@intel.com","username":"vamusso"},"change_message_id":"cfaf90f3bb9f027f52b267d69c0d5ff51cec9dcf","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    (\u0027Content-Type:\u0027, {\u0027mimetype\u0027: \u0027text/html\u0027})"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    :param value: the header to parse."},{"line_number":83,"context_line":"    :return: (str, options)"},{"line_number":84,"context_line":"    \"\"\""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def _tokenize(string):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F9%2Bd8%3D","line":83,"in_reply_to":"AAAAUH%2F9%2BnQ%3D","updated":"2014-01-31 13:48:28.000000000","message":"In this case, \":\" is correct the.","commit_id":"69260ba54bd1700dcddf8ffd6ed9f632e45fe164"}],"cinder/api/xmlutil.py":[{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"dc7c48f66dce2930647abbc7ca3fd10bcd6db838","unresolved":false,"context_lines":[{"line_number":99,"context_line":"    \"\"\"Returns the empty string if Selector would return None.\"\"\""},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def __call__(self, obj, do_raise\u003dFalse):"},{"line_number":102,"context_line":"        \"\"\"Returns empty string if the selected value does not exist.\"\"\""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        try:"},{"line_number":105,"context_line":"            return super(EmptyStringSelector, self).__call__(obj, True)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F98QM%3D","line":102,"updated":"2014-01-31 20:49:08.000000000","message":"Should be:\n\"Return empty string...\"","commit_id":"ef5804f8e8a0bdb610d47894efefe9da9a4cf190"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"2ead1b8bf4a64bd969f5855fee8902787d965a77","unresolved":false,"context_lines":[{"line_number":223,"context_line":"        self._childmap[elem.tag] \u003d elem"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"    def extend(self, elems):"},{"line_number":226,"context_line":"        \"\"\"Appends children to the element.\"\"\""},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        # Pre-evaluate the elements"},{"line_number":229,"context_line":"        elemmap \u003d {}"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F90Io%3D","line":226,"updated":"2014-02-03 17:46:39.000000000","message":"...a list of children...","commit_id":"85cfafbb4ace6b31b08f1b2682229d0d23107172"}],"cinder/context.py":[{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"e8030ed412d7af9ec9687bc3e8bde9f1806e058b","unresolved":false,"context_lines":[{"line_number":123,"context_line":"                                        tenant\u003dself.tenant or \u0027-\u0027,"},{"line_number":124,"context_line":"                                        domain\u003dself.domain or \u0027-\u0027,"},{"line_number":125,"context_line":"                                        user_domain\u003dself.user_domain or \u0027-\u0027,"},{"line_number":126,"context_line":"                                        p_domain\u003dself.project_domain or \u0027-\u0027))"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        return {\u0027user_id\u0027: self.user_id,"},{"line_number":129,"context_line":"                \u0027project_id\u0027: self.project_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F%2BWL0%3D","line":126,"updated":"2014-03-27 13:46:14.000000000","message":"Is it ok to leave the data as \"-\" if not present? Sorry to ask, but were is this used later?","commit_id":"38200be78d9c5adeae9915c1179250f424ab6883"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"d1f862cae37a59d47c5a02b35ec747d34418debb","unresolved":false,"context_lines":[{"line_number":123,"context_line":"                                        tenant\u003dself.tenant or \u0027-\u0027,"},{"line_number":124,"context_line":"                                        domain\u003dself.domain or \u0027-\u0027,"},{"line_number":125,"context_line":"                                        user_domain\u003dself.user_domain or \u0027-\u0027,"},{"line_number":126,"context_line":"                                        p_domain\u003dself.project_domain or \u0027-\u0027))"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        return {\u0027user_id\u0027: self.user_id,"},{"line_number":129,"context_line":"                \u0027project_id\u0027: self.project_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F%2BV%2FY%3D","line":126,"in_reply_to":"AAAAWH%2F%2BWL0%3D","updated":"2014-03-27 14:00:40.000000000","message":"Never mind... my bad. Not relevant for this patch.","commit_id":"38200be78d9c5adeae9915c1179250f424ab6883"}],"cinder/manager.py":[{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"dc7c48f66dce2930647abbc7ca3fd10bcd6db838","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        super(Manager, self).__init__(db_driver)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def create_rpc_dispatcher(self):"},{"line_number":79,"context_line":"        \u0027\u0027\u0027Get the rpc dispatcher for this manager."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        If a manager would like to set an rpc API version, or support more than"},{"line_number":82,"context_line":"        one class as the target of rpc messages, override this method."}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F98QY%3D","line":79,"updated":"2014-01-31 20:49:08.000000000","message":"Use double quotes \"\"\" to keep consistency.","commit_id":"ef5804f8e8a0bdb610d47894efefe9da9a4cf190"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"5c0a89b62cdfdaaa6ec25c8f597b5ab4c07286bb","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        super(Manager, self).__init__(db_driver)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    def create_rpc_dispatcher(self):"},{"line_number":79,"context_line":"        \u0027\u0027\u0027Get the rpc dispatcher for this manager."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        If a manager would like to set an rpc API version, or support more than"},{"line_number":82,"context_line":"        one class as the target of rpc messages, override this method."}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F97hQ%3D","line":79,"in_reply_to":"AAAAUH%2F98QY%3D","updated":"2014-01-31 23:18:21.000000000","message":"please use \"\"\"","commit_id":"ef5804f8e8a0bdb610d47894efefe9da9a4cf190"}],"cinder/policy.py":[{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"dc7c48f66dce2930647abbc7ca3fd10bcd6db838","unresolved":false,"context_lines":[{"line_number":89,"context_line":"       for object creation this should be a dictionary representing the"},{"line_number":90,"context_line":"       location of the object e.g. ``{\u0027project_id\u0027: context.project_id}``"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    :raises cinder.exception.PolicyNotAuthorized: if verification fails."},{"line_number":93,"context_line":"    \"\"\""},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    init()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F98Qk%3D","line":92,"updated":"2014-01-31 20:49:08.000000000","message":"The correct syntax is :raises: AttributeError, KeyError\nException should go after the \u0027:\u0027","commit_id":"ef5804f8e8a0bdb610d47894efefe9da9a4cf190"},{"author":{"_account_id":10242,"name":"Emilio Recio","email":"emiliorecio@gmail.com","username":"emiliorecio"},"change_message_id":"a1ab50a22a3d8d48fbb08dd06b90ea7e1d9857fc","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    :param context: cinder context"},{"line_number":82,"context_line":"    :param action: string representing the action to be checked"},{"line_number":83,"context_line":"       this should be colon separated for clarity."},{"line_number":84,"context_line":"       i.e. ``compute:create_instance``,"},{"line_number":85,"context_line":"       ``compute:attach_volume``,"},{"line_number":86,"context_line":"       ``volume:attach_volume``"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F9%2FNM%3D","line":83,"updated":"2014-03-31 19:07:45.000000000","message":"Check narration and punctuation.","commit_id":"38200be78d9c5adeae9915c1179250f424ab6883"},{"author":{"_account_id":10242,"name":"Emilio Recio","email":"emiliorecio@gmail.com","username":"emiliorecio"},"change_message_id":"a1ab50a22a3d8d48fbb08dd06b90ea7e1d9857fc","unresolved":false,"context_lines":[{"line_number":84,"context_line":"       i.e. ``compute:create_instance``,"},{"line_number":85,"context_line":"       ``compute:attach_volume``,"},{"line_number":86,"context_line":"       ``volume:attach_volume``"},{"line_number":87,"context_line":"    :param object: dictionary representing the object of the action"},{"line_number":88,"context_line":"       for object creation this should be a dictionary representing the"},{"line_number":89,"context_line":"       location of the object e.g. ``{\u0027project_id\u0027: context.project_id}``"},{"line_number":90,"context_line":"    :raises: cinder.exception.PolicyNotAuthorized if verification fails."}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F9%2FNI%3D","line":87,"updated":"2014-03-31 19:07:45.000000000","message":"Check narration and punctuation.","commit_id":"38200be78d9c5adeae9915c1179250f424ab6883"}],"cinder/service.py":[{"author":{"_account_id":9450,"name":"Juan Manuel Ollé","email":"juan.m.olle@intel.com","username":"jmolle"},"change_message_id":"a6af7aa4f4250bd5a42d63fb91eaa3e210856ac3","unresolved":false,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        :param name: The name of the WSGI server given to the loader."},{"line_number":290,"context_line":"        :param loader: Loads the WSGI application using the given name."},{"line_number":291,"context_line":"        :returns: None"},{"line_number":292,"context_line":"        \"\"\""},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"        self.name \u003d name"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F9%2Bls%3D","line":291,"updated":"2014-01-31 13:06:38.000000000","message":"what about :returns: None? is this correct, I found in many places return and returns","commit_id":"69260ba54bd1700dcddf8ffd6ed9f632e45fe164"},{"author":{"_account_id":9449,"name":"Verónica Musso","email":"veronica.a.musso@intel.com","username":"vamusso"},"change_message_id":"cfaf90f3bb9f027f52b267d69c0d5ff51cec9dcf","unresolved":false,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        :param name: The name of the WSGI server given to the loader."},{"line_number":290,"context_line":"        :param loader: Loads the WSGI application using the given name."},{"line_number":291,"context_line":"        :returns: None"},{"line_number":292,"context_line":"        \"\"\""},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"        self.name \u003d name"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F9%2Bdk%3D","line":291,"in_reply_to":"AAAAUH%2F9%2Bls%3D","updated":"2014-01-31 13:48:28.000000000","message":"\"returns\" is the correct one.","commit_id":"69260ba54bd1700dcddf8ffd6ed9f632e45fe164"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"2f01f4e7add3cf2568f33122878a01874a505944","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            self.timers.append(periodic)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def basic_config_check(self):"},{"line_number":143,"context_line":"        \"\"\"Perform basic config checks before starting service.\"\"\""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        # Make sure report interval is less than service down time"},{"line_number":146,"context_line":"        if self.report_interval:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9z40%3D","line":143,"updated":"2014-02-03 18:31:51.000000000","message":"\"Performs...\"","commit_id":"85cfafbb4ace6b31b08f1b2682229d0d23107172"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"2f01f4e7add3cf2568f33122878a01874a505944","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        return service_obj"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    def kill(self):"},{"line_number":212,"context_line":"        \"\"\"Destroy the service object in the datastore.\"\"\""},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"        self.stop()"},{"line_number":215,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9z4g%3D","line":212,"updated":"2014-02-03 18:31:51.000000000","message":"\"Destroys...\"","commit_id":"85cfafbb4ace6b31b08f1b2682229d0d23107172"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"2f01f4e7add3cf2568f33122878a01874a505944","unresolved":false,"context_lines":[{"line_number":247,"context_line":"        self.manager.periodic_tasks(ctxt, raise_on_error\u003draise_on_error)"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    def report_state(self):"},{"line_number":250,"context_line":"        \"\"\"Update the state of this service in the datastore.\"\"\""},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":253,"context_line":"        zone \u003d CONF.storage_availability_zone"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9z4c%3D","line":250,"updated":"2014-02-03 18:31:51.000000000","message":"\"Updates...\"","commit_id":"85cfafbb4ace6b31b08f1b2682229d0d23107172"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"2f01f4e7add3cf2568f33122878a01874a505944","unresolved":false,"context_lines":[{"line_number":310,"context_line":"                                  port\u003dself.port)"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    def _get_manager(self):"},{"line_number":313,"context_line":"        \"\"\"Initialize a Manager object appropriate for this service."},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"        Use the service name to look up a Manager subclass from the"},{"line_number":316,"context_line":"        configuration and initialize an instance. If no class name"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9z4U%3D","line":313,"updated":"2014-02-03 18:31:51.000000000","message":"\"Initializes...\"","commit_id":"85cfafbb4ace6b31b08f1b2682229d0d23107172"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"2f01f4e7add3cf2568f33122878a01874a505944","unresolved":false,"context_lines":[{"line_number":331,"context_line":"        return manager_class()"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"    def start(self):"},{"line_number":334,"context_line":"        \"\"\"Start serving this service using loaded configuration."},{"line_number":335,"context_line":""},{"line_number":336,"context_line":"        Also, retrieve updated port number in case \u00270\u0027 was passed in, which"},{"line_number":337,"context_line":"        indicates a random port should be used."}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9z4A%3D","line":334,"updated":"2014-02-03 18:31:51.000000000","message":"\"Starts...\"","commit_id":"85cfafbb4ace6b31b08f1b2682229d0d23107172"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"2f01f4e7add3cf2568f33122878a01874a505944","unresolved":false,"context_lines":[{"line_number":345,"context_line":"        self.port \u003d self.server.port"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"    def stop(self):"},{"line_number":348,"context_line":"        \"\"\"Stop serving this API."},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"        :returns: None"},{"line_number":351,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9z3w%3D","line":348,"updated":"2014-02-03 18:31:51.000000000","message":"\"Stops...\"","commit_id":"85cfafbb4ace6b31b08f1b2682229d0d23107172"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"2f01f4e7add3cf2568f33122878a01874a505944","unresolved":false,"context_lines":[{"line_number":353,"context_line":"        self.server.stop()"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"    def wait(self):"},{"line_number":356,"context_line":"        \"\"\"Wait for the service to stop serving this API."},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        :returns: None"},{"line_number":359,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9z3k%3D","line":356,"updated":"2014-02-03 18:31:51.000000000","message":"\"Waits...\"","commit_id":"85cfafbb4ace6b31b08f1b2682229d0d23107172"}],"cinder/test.py":[{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"2f01f4e7add3cf2568f33122878a01874a505944","unresolved":false,"context_lines":[{"line_number":104,"context_line":"    \"\"\"Test case base class for all unit tests.\"\"\""},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    def setUp(self):"},{"line_number":107,"context_line":"        \"\"\"Run before each test method to initialize test environment.\"\"\""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        super(TestCase, self).setUp()"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9z3c%3D","line":107,"updated":"2014-02-03 18:31:51.000000000","message":"\"Runs...\"","commit_id":"85cfafbb4ace6b31b08f1b2682229d0d23107172"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"2f01f4e7add3cf2568f33122878a01874a505944","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        super(TestCase, self).tearDown()"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def flags(self, **kw):"},{"line_number":195,"context_line":"        \"\"\"Override CONF variables for a test.\"\"\""},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        for k, v in kw.iteritems():"},{"line_number":198,"context_line":"            CONF.set_override(k, v)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9z3Y%3D","line":195,"updated":"2014-02-03 18:31:51.000000000","message":"\"Overrrides...\"","commit_id":"85cfafbb4ace6b31b08f1b2682229d0d23107172"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"e8030ed412d7af9ec9687bc3e8bde9f1806e058b","unresolved":false,"context_lines":[{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        def raise_assertion(msg):"},{"line_number":245,"context_line":"            d1str \u003d d1"},{"line_number":246,"context_line":"            d2str \u003d d2"},{"line_number":247,"context_line":"            base_msg \u003d (\u0027Dictionaries do not match. %(msg)s d1: %(d1str)s \u0027"},{"line_number":248,"context_line":"                        \u0027d2: %(d2str)s\u0027 %"},{"line_number":249,"context_line":"                        {\u0027msg\u0027: msg, \u0027d1str\u0027: d1str, \u0027d2str\u0027: d2str})"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F%2BWPA%3D","line":246,"updated":"2014-03-27 13:46:14.000000000","message":"After having removed the \u0027str()\u0027 methods, there is no sense in copying the dictionaries...","commit_id":"38200be78d9c5adeae9915c1179250f424ab6883"}],"cinder/utils.py":[{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"dc7c48f66dce2930647abbc7ca3fd10bcd6db838","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    :param config_path: Full or relative path to the config."},{"line_number":64,"context_line":"    :returns: Full path of the config, if it exists."},{"line_number":65,"context_line":"    :raises: `cinder.exception.ConfigNotFound`"},{"line_number":66,"context_line":"    \"\"\""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    possible_locations \u003d ["}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F98RM%3D","line":65,"updated":"2014-01-31 20:49:08.000000000","message":"Back quotes are not needed.","commit_id":"ef5804f8e8a0bdb610d47894efefe9da9a4cf190"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"5c0a89b62cdfdaaa6ec25c8f597b5ab4c07286bb","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    :param config_path: Full or relative path to the config."},{"line_number":64,"context_line":"    :returns: Full path of the config, if it exists."},{"line_number":65,"context_line":"    :raises: `cinder.exception.ConfigNotFound`"},{"line_number":66,"context_line":"    \"\"\""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    possible_locations \u003d ["}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F97g8%3D","line":65,"in_reply_to":"AAAAUH%2F98RM%3D","updated":"2014-01-31 23:18:21.000000000","message":"remove","commit_id":"ef5804f8e8a0bdb610d47894efefe9da9a4cf190"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"dc7c48f66dce2930647abbc7ca3fd10bcd6db838","unresolved":false,"context_lines":[{"line_number":470,"context_line":""},{"line_number":471,"context_line":""},{"line_number":472,"context_line":"def xhtml_escape(value):"},{"line_number":473,"context_line":"    \"\"\"Escapes a string so it is valid within XML or XHTML.\"\"\""},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"    return saxutils.escape(value, {\u0027\"\u0027: \u0027\u0026quot;\u0027, \"\u0027\": \u0027\u0026apos;\u0027})"},{"line_number":476,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F98f0%3D","line":473,"updated":"2014-01-31 20:49:08.000000000","message":"Should be:\n\"Escape a string...\"","commit_id":"ef5804f8e8a0bdb610d47894efefe9da9a4cf190"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"dc7c48f66dce2930647abbc7ca3fd10bcd6db838","unresolved":false,"context_lines":[{"line_number":476,"context_line":""},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"def get_from_path(items, path):"},{"line_number":479,"context_line":"    \"\"\"Returns a list of items matching the specified path."},{"line_number":480,"context_line":""},{"line_number":481,"context_line":"    Takes an XPath-like expression e.g. prop1/prop2/prop3, and for each item"},{"line_number":482,"context_line":"    in items, looks up items[prop1][prop2][prop3]. Like XPath, if any of the"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F98fo%3D","line":479,"updated":"2014-01-31 20:49:08.000000000","message":"Should be:\n\"Return a list of...\"","commit_id":"ef5804f8e8a0bdb610d47894efefe9da9a4cf190"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"dc7c48f66dce2930647abbc7ca3fd10bcd6db838","unresolved":false,"context_lines":[{"line_number":478,"context_line":"def get_from_path(items, path):"},{"line_number":479,"context_line":"    \"\"\"Returns a list of items matching the specified path."},{"line_number":480,"context_line":""},{"line_number":481,"context_line":"    Takes an XPath-like expression e.g. prop1/prop2/prop3, and for each item"},{"line_number":482,"context_line":"    in items, looks up items[prop1][prop2][prop3]. Like XPath, if any of the"},{"line_number":483,"context_line":"    intermediate results are lists it will treat each list item individually."},{"line_number":484,"context_line":"    A \u0027None\u0027 in items or any child expressions will be ignored, this function"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F98fI%3D","line":481,"updated":"2014-01-31 20:49:08.000000000","message":"Should be:\n\"This method takes an XPath-like...\"","commit_id":"ef5804f8e8a0bdb610d47894efefe9da9a4cf190"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"dc7c48f66dce2930647abbc7ca3fd10bcd6db838","unresolved":false,"context_lines":[{"line_number":537,"context_line":""},{"line_number":538,"context_line":""},{"line_number":539,"context_line":"def monkey_patch():"},{"line_number":540,"context_line":"    \"\"\"If the CONF.monkey_patch set as True,"},{"line_number":541,"context_line":"    this function patches a decorator"},{"line_number":542,"context_line":"    for all functions in specified modules."},{"line_number":543,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F98e0%3D","line":540,"updated":"2014-01-31 20:49:08.000000000","message":"Should be:\n\"Patch decorator if the CONF.monkey_patch setting is set as True\".","commit_id":"ef5804f8e8a0bdb610d47894efefe9da9a4cf190"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"dc7c48f66dce2930647abbc7ca3fd10bcd6db838","unresolved":false,"context_lines":[{"line_number":550,"context_line":"    Parameters of the decorator is as follows."},{"line_number":551,"context_line":"    (See cinder.openstack.common.notifier.api.notify_decorator)"},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"    name - name of the function"},{"line_number":554,"context_line":"    function - object of the function"},{"line_number":555,"context_line":"    \"\"\""},{"line_number":556,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F98S0%3D","line":553,"updated":"2014-01-31 20:49:08.000000000","message":"Is there any option here to apply format to this params? Even though they are not from the method itself...","commit_id":"ef5804f8e8a0bdb610d47894efefe9da9a4cf190"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"dc7c48f66dce2930647abbc7ca3fd10bcd6db838","unresolved":false,"context_lines":[{"line_number":760,"context_line":"    If the driver is not initialized, an exception will be raised."},{"line_number":761,"context_line":""},{"line_number":762,"context_line":"    :param driver: The driver instance."},{"line_number":763,"context_line":"    :raises: `exception.DriverNotInitialized`"},{"line_number":764,"context_line":"    \"\"\""},{"line_number":765,"context_line":""},{"line_number":766,"context_line":"    # we can\u0027t do anything if the driver didn\u0027t init"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F98RE%3D","line":763,"updated":"2014-01-31 20:49:08.000000000","message":"Back quotes are not needed.","commit_id":"ef5804f8e8a0bdb610d47894efefe9da9a4cf190"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"2f01f4e7add3cf2568f33122878a01874a505944","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"def execute(*cmd, **kwargs):"},{"line_number":132,"context_line":"    \"\"\"Convenience wrapper around oslo\u0027s execute() method.\"\"\""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    if \u0027run_as_root\u0027 in kwargs and not \u0027root_helper\u0027 in kwargs:"},{"line_number":135,"context_line":"        kwargs[\u0027root_helper\u0027] \u003d get_root_helper()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9z20%3D","line":132,"updated":"2014-02-03 18:31:51.000000000","message":"\"Convenient\", perhaps?","commit_id":"85cfafbb4ace6b31b08f1b2682229d0d23107172"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"2f01f4e7add3cf2568f33122878a01874a505944","unresolved":false,"context_lines":[{"line_number":707,"context_line":""},{"line_number":708,"context_line":""},{"line_number":709,"context_line":"def walk_class_hierarchy(clazz, encountered\u003dNone):"},{"line_number":710,"context_line":"    \"\"\"Walk class hierarchy, yielding most derived classes first.\"\"\""},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"    if not encountered:"},{"line_number":713,"context_line":"        encountered \u003d []"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9z2o%3D","line":710,"updated":"2014-02-03 18:31:51.000000000","message":"\"Walks...\"","commit_id":"85cfafbb4ace6b31b08f1b2682229d0d23107172"}],"cinder/wsgi.py":[{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"dc7c48f66dce2930647abbc7ca3fd10bcd6db838","unresolved":false,"context_lines":[{"line_number":487,"context_line":""},{"line_number":488,"context_line":"        :param name: Name of the application to load."},{"line_number":489,"context_line":"        :returns: Paste URLMap object wrapping the requested application."},{"line_number":490,"context_line":"        :raises: `cinder.exception.PasteAppNotFound`"},{"line_number":491,"context_line":"        \"\"\""},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F98Rs%3D","line":490,"updated":"2014-01-31 20:49:08.000000000","message":"Back quotes are not needed.","commit_id":"ef5804f8e8a0bdb610d47894efefe9da9a4cf190"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"2f01f4e7add3cf2568f33122878a01874a505944","unresolved":false,"context_lines":[{"line_number":215,"context_line":"        return self._port"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    def stop(self):"},{"line_number":218,"context_line":"        \"\"\"Stop this server."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"        This is not a very nice action, as currently the method by which a"},{"line_number":221,"context_line":"        server is stopped is by killing its eventlet."}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9z2k%3D","line":218,"updated":"2014-02-03 18:31:51.000000000","message":"\"Stops...\"","commit_id":"85cfafbb4ace6b31b08f1b2682229d0d23107172"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"2f01f4e7add3cf2568f33122878a01874a505944","unresolved":false,"context_lines":[{"line_number":217,"context_line":"    def stop(self):"},{"line_number":218,"context_line":"        \"\"\"Stop this server."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"        This is not a very nice action, as currently the method by which a"},{"line_number":221,"context_line":"        server is stopped is by killing its eventlet."},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        :returns: None"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9z2U%3D","line":220,"updated":"2014-02-03 18:31:51.000000000","message":"I know this is out of the scope of this review, but some sort of \"ToDo\" tag could be added here, given what the comment says...","commit_id":"85cfafbb4ace6b31b08f1b2682229d0d23107172"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"2f01f4e7add3cf2568f33122878a01874a505944","unresolved":false,"context_lines":[{"line_number":230,"context_line":"            self._server.kill()"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    def wait(self):"},{"line_number":233,"context_line":"        \"\"\"Block, until the server has stopped."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"        Waits on the server\u0027s eventlet to finish, then returns."},{"line_number":236,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9z2M%3D","line":233,"updated":"2014-02-03 18:31:51.000000000","message":"\"Blocks until the server has stopped.\"","commit_id":"85cfafbb4ace6b31b08f1b2682229d0d23107172"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"2f01f4e7add3cf2568f33122878a01874a505944","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        return cls(**local_config)"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"    def __call__(self, environ, start_response):"},{"line_number":280,"context_line":"        r\"\"\"Subclasses will probably want to implement __call__ like this:"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"        @webob.dec.wsgify(RequestClass\u003dRequest)"},{"line_number":283,"context_line":"        def __call__(self, req):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9z0E%3D","line":280,"updated":"2014-02-03 18:31:51.000000000","message":"That \"r\" at the beginning looks like a typo...","commit_id":"85cfafbb4ace6b31b08f1b2682229d0d23107172"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"2f01f4e7add3cf2568f33122878a01874a505944","unresolved":false,"context_lines":[{"line_number":445,"context_line":""},{"line_number":446,"context_line":"    @webob.dec.wsgify(RequestClass\u003dRequest)"},{"line_number":447,"context_line":"    def __call__(self, req):"},{"line_number":448,"context_line":"        \"\"\"Route the incoming request to a controller based on self.map."},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"        If no match, return a 404."},{"line_number":451,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9zz0%3D","line":448,"updated":"2014-02-03 18:31:51.000000000","message":"\"Routes...\"","commit_id":"85cfafbb4ace6b31b08f1b2682229d0d23107172"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"2f01f4e7add3cf2568f33122878a01874a505944","unresolved":false,"context_lines":[{"line_number":455,"context_line":"    @staticmethod"},{"line_number":456,"context_line":"    @webob.dec.wsgify(RequestClass\u003dRequest)"},{"line_number":457,"context_line":"    def _dispatch(req):"},{"line_number":458,"context_line":"        \"\"\"Dispatch the request to the appropriate controller."},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"        Called by self._router after matching the incoming request to a route"},{"line_number":461,"context_line":"        and putting the information into req.environ.  Either returns 404"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9zz4%3D","line":458,"updated":"2014-02-03 18:31:51.000000000","message":"\"Dispatches...\"","commit_id":"85cfafbb4ace6b31b08f1b2682229d0d23107172"},{"author":{"_account_id":9412,"name":"Andres Buraschi","email":"andres.buraschi@intel.com","username":"aburaschi"},"change_message_id":"2f01f4e7add3cf2568f33122878a01874a505944","unresolved":false,"context_lines":[{"line_number":483,"context_line":"        self.config_path \u003d utils.find_config(config_path)"},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"    def load_app(self, name):"},{"line_number":486,"context_line":"        \"\"\"Return the paste URLMap wrapped WSGI application."},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"        :param name: Name of the application to load."},{"line_number":489,"context_line":"        :returns: Paste URLMap object wrapping the requested application."}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9zzY%3D","line":486,"updated":"2014-02-03 18:31:51.000000000","message":"\"Returns...\"","commit_id":"85cfafbb4ace6b31b08f1b2682229d0d23107172"}]}
