)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"fcd20f47d845a9756279ef17df4fada575383a4a","unresolved":false,"context_lines":[{"line_number":14,"context_line":"filter."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I301adc5980dbacec5e84de7c66e6d12d132643cd"},{"line_number":17,"context_line":"Closes-bug: #1591444"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7aa08908_f514674e","line":17,"range":{"start_line":17,"start_character":13,"end_line":17,"end_character":20},"updated":"2016-06-15 10:13:48.000000000","message":"Please use 1588798 - your bugreport was duplicate of that.","commit_id":"ec22f5aefeef60e667746ae5de59daa464807980"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"ecc8c3724fc08b0a16687882996b95c7912f76ac","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Also object backporting procedure is added to make sure that before"},{"line_number":22,"context_line":"sending data to older services we\u0027re switching None to empty string."},{"line_number":23,"context_line":"(PS: if older service use functions like volume.refersh to read"},{"line_number":24,"context_line":"None value of extra_spec from db itself, it will hit bug #1588798"},{"line_number":25,"context_line":"anyway.)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Co-Authored-By: Michal Dulko \u003cmichal.dulko@intel.com\u003e"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7aa08908_40a45a07","line":25,"range":{"start_line":23,"start_character":0,"end_line":25,"end_character":8},"updated":"2016-06-16 10:37:31.000000000","message":"Good point.","commit_id":"dae983163aa1fe2b231663bf97ce635e533f803c"}],"cinder/scheduler/filters/capabilities_filter.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"fcd20f47d845a9756279ef17df4fada575383a4a","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                    cap \u003d cap.get(scope[index])"},{"line_number":50,"context_line":"                except AttributeError:"},{"line_number":51,"context_line":"                    return False"},{"line_number":52,"context_line":"                if cap is None and index \u003c len(scope) - 1:"},{"line_number":53,"context_line":"                    LOG.debug(\"Host doesn\u0027t provide capability \u0027%(cap)s\u0027 \" %"},{"line_number":54,"context_line":"                              {\u0027cap\u0027: scope[index]})"},{"line_number":55,"context_line":"                    return False"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_b89db6bd","line":52,"range":{"start_line":52,"start_character":16,"end_line":52,"end_character":58},"updated":"2016-06-15 10:13:48.000000000","message":"Isn\u0027t it better to change line 49 to:\n\n cap \u003d cap[scope[index]]\n\nand just return False on KeyError?","commit_id":"ec22f5aefeef60e667746ae5de59daa464807980"},{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"1226b5a8b2598302b6abc95d7ff002713754cd6d","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                    cap \u003d cap.get(scope[index])"},{"line_number":50,"context_line":"                except AttributeError:"},{"line_number":51,"context_line":"                    return False"},{"line_number":52,"context_line":"                if cap is None and index \u003c len(scope) - 1:"},{"line_number":53,"context_line":"                    LOG.debug(\"Host doesn\u0027t provide capability \u0027%(cap)s\u0027 \" %"},{"line_number":54,"context_line":"                              {\u0027cap\u0027: scope[index]})"},{"line_number":55,"context_line":"                    return False"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_7af7898c","line":52,"range":{"start_line":52,"start_character":16,"end_line":52,"end_character":58},"in_reply_to":"7aa08908_b89db6bd","updated":"2016-06-16 10:04:38.000000000","message":"Done","commit_id":"ec22f5aefeef60e667746ae5de59daa464807980"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"ecc8c3724fc08b0a16687882996b95c7912f76ac","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            for index in range(len(scope)):"},{"line_number":48,"context_line":"                try:"},{"line_number":49,"context_line":"                    cap \u003d cap[scope[index]]"},{"line_number":50,"context_line":"                except (TypeError, KeyError):"},{"line_number":51,"context_line":"                    LOG.debug(\"Host doesn\u0027t provide capability \u0027%(cap)s\u0027 \" %"},{"line_number":52,"context_line":"                              {\u0027cap\u0027: scope[index]})"},{"line_number":53,"context_line":"                    return False"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_e00626cc","line":50,"range":{"start_line":50,"start_character":16,"end_line":50,"end_character":45},"updated":"2016-06-16 10:37:31.000000000","message":"Good job, TypeError is raised if cap is None. I could miss that.","commit_id":"dae983163aa1fe2b231663bf97ce635e533f803c"}],"cinder/scheduler/filters/extra_specs_ops.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"fcd20f47d845a9756279ef17df4fada575383a4a","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"def match(value, req):"},{"line_number":42,"context_line":"    if req is None:"},{"line_number":43,"context_line":"        if value is None:"},{"line_number":44,"context_line":"            return True"},{"line_number":45,"context_line":"        else:"},{"line_number":46,"context_line":"            return False"},{"line_number":47,"context_line":"    words \u003d req.split()"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    op \u003d method \u003d None"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_f5eaa773","line":46,"range":{"start_line":43,"start_character":0,"end_line":46,"end_character":24},"updated":"2016-06-15 10:13:48.000000000","message":"return value is None","commit_id":"ec22f5aefeef60e667746ae5de59daa464807980"},{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"1226b5a8b2598302b6abc95d7ff002713754cd6d","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"def match(value, req):"},{"line_number":42,"context_line":"    if req is None:"},{"line_number":43,"context_line":"        if value is None:"},{"line_number":44,"context_line":"            return True"},{"line_number":45,"context_line":"        else:"},{"line_number":46,"context_line":"            return False"},{"line_number":47,"context_line":"    words \u003d req.split()"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    op \u003d method \u003d None"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_9aa7d5a6","line":46,"range":{"start_line":43,"start_character":0,"end_line":46,"end_character":24},"in_reply_to":"7aa08908_f5eaa773","updated":"2016-06-16 10:04:38.000000000","message":"Hi, Michal:\n    False is returned just like line 58 and line 77.\n    Seems it will not do some harm if we return False here....\nThanks","commit_id":"ec22f5aefeef60e667746ae5de59daa464807980"}]}
