)]}'
{"nova/virt/storage_users.py":[{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"43e59a4fa1418f8b967fa7db1edd517a27f1079c","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            with open(id_path) as f:"},{"line_number":62,"context_line":"                try:"},{"line_number":63,"context_line":"                    d \u003d json.loads(f.read())"},{"line_number":64,"context_line":"                except ValueError:"},{"line_number":65,"context_line":"                    LOG.warning(_(\"Cannot decode %(id_path)s\") %"},{"line_number":66,"context_line":"                                {\"id_path\": id_path})"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2B0jM%3D","line":64,"updated":"2013-11-19 18:19:03.000000000","message":"I think catching any ValueError here is going to mask potential errors that we would want raised.  You\u0027re trying to catch the case where the file was empty, but a ValueError could also be thrown if the data is bad.  This change would ignore the case where the data is bad.  Could you instead check for whether nothing comes back from the file read?","commit_id":"6ecfe2a8d8e5e2ef5333ec5266d7d0c047f2abdd"},{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"78abc105e0420eb3c84a77b67ff80d219140a8a8","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            with open(id_path) as f:"},{"line_number":62,"context_line":"                try:"},{"line_number":63,"context_line":"                    d \u003d json.loads(f.read())"},{"line_number":64,"context_line":"                except ValueError:"},{"line_number":65,"context_line":"                    LOG.warning(_(\"Cannot decode %(id_path)s\") %"},{"line_number":66,"context_line":"                                {\"id_path\": id_path})"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2B0Cw%3D","line":64,"in_reply_to":"AAAATn%2F%2B0HA%3D","updated":"2013-11-19 19:52:56.000000000","message":"It sounds like the intention here is to prevent bad data from stopping the process as well as empty data.  I agree that\u0027s what the code does, and I would just suggest clarifying that intention in the commit message if you need to send up another patch for any reason.","commit_id":"6ecfe2a8d8e5e2ef5333ec5266d7d0c047f2abdd"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"b08886fbb3808c3884bdd09872b255559a823563","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            with open(id_path) as f:"},{"line_number":62,"context_line":"                try:"},{"line_number":63,"context_line":"                    d \u003d json.loads(f.read())"},{"line_number":64,"context_line":"                except ValueError:"},{"line_number":65,"context_line":"                    LOG.warning(_(\"Cannot decode %(id_path)s\") %"},{"line_number":66,"context_line":"                                {\"id_path\": id_path})"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2B0HA%3D","line":64,"in_reply_to":"AAAATn%2F%2B0jM%3D","updated":"2013-11-19 19:36:46.000000000","message":"I am not sure about this: If there\u0027s any error in the JSON and it cannot be decoded, anything depending in this function will not work (for now, only the image cache manager). Therefore, if the JSON cannot be decoded it is worthless to keep it if the data is bad or if it is empty.","commit_id":"6ecfe2a8d8e5e2ef5333ec5266d7d0c047f2abdd"},{"author":{"_account_id":8430,"name":"Christopher Lefelhocz","email":"christopher.lefelhoc@rackspace.com","username":"leif"},"change_message_id":"900104ddf59900e8edcc7eadbfd2a394d7d125ad","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                try:"},{"line_number":63,"context_line":"                    d \u003d json.loads(f.read())"},{"line_number":64,"context_line":"                except ValueError:"},{"line_number":65,"context_line":"                    LOG.warning(_(\"Cannot decode %(id_path)s\") %"},{"line_number":66,"context_line":"                                {\"id_path\": id_path})"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        d[hostname] \u003d time.time()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2B0jQ%3D","line":65,"updated":"2013-11-19 18:15:22.000000000","message":"Can we log something about the error from the exception?","commit_id":"6ecfe2a8d8e5e2ef5333ec5266d7d0c047f2abdd"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"b08886fbb3808c3884bdd09872b255559a823563","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                try:"},{"line_number":63,"context_line":"                    d \u003d json.loads(f.read())"},{"line_number":64,"context_line":"                except ValueError:"},{"line_number":65,"context_line":"                    LOG.warning(_(\"Cannot decode %(id_path)s\") %"},{"line_number":66,"context_line":"                                {\"id_path\": id_path})"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        d[hostname] \u003d time.time()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F%2B0IU%3D","line":65,"in_reply_to":"AAAATn%2F%2B0jQ%3D","updated":"2013-11-19 19:36:46.000000000","message":"Ok, I\u0027ll add more details.","commit_id":"6ecfe2a8d8e5e2ef5333ec5266d7d0c047f2abdd"},{"author":{"_account_id":8430,"name":"Christopher Lefelhocz","email":"christopher.lefelhoc@rackspace.com","username":"leif"},"change_message_id":"cf08f594d4aad1c9523bc990147ed50d463aadc7","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                try:"},{"line_number":63,"context_line":"                    d \u003d json.loads(f.read())"},{"line_number":64,"context_line":"                except ValueError:"},{"line_number":65,"context_line":"                    LOG.warning(_(\"Cannot decode JSON from %(id_path)s\") %"},{"line_number":66,"context_line":"                                {\"id_path\": id_path})"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        d[hostname] \u003d time.time()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2Bwao%3D","line":65,"updated":"2013-11-20 16:04:27.000000000","message":"Can we log more details in the log?","commit_id":"6c52eff66702c057a6d0aedb37ec25c3200129c1"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"52d5cc60d980db386175048e6cd4b56cf74f5d98","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                try:"},{"line_number":63,"context_line":"                    d \u003d json.loads(f.read())"},{"line_number":64,"context_line":"                except ValueError:"},{"line_number":65,"context_line":"                    LOG.warning(_(\"Cannot decode JSON from %(id_path)s\") %"},{"line_number":66,"context_line":"                                {\"id_path\": id_path})"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        d[hostname] \u003d time.time()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2Brig%3D","line":65,"in_reply_to":"AAAATn%2F%2Bwao%3D","updated":"2013-11-21 16:21:48.000000000","message":"Actually not. We only get a ValueError: No JSON object could be decoded","commit_id":"6c52eff66702c057a6d0aedb37ec25c3200129c1"},{"author":{"_account_id":9645,"name":"lizheming","email":"lizheming.li@huawei.com","username":"lizheming"},"change_message_id":"ebc7665fb03a2b47015bf0d27153abe9c65c785a","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                try:"},{"line_number":63,"context_line":"                    d \u003d json.loads(f.read())"},{"line_number":64,"context_line":"                except ValueError:"},{"line_number":65,"context_line":"                    LOG.warning(_(\"Cannot decode JSON from %(id_path)s\") %"},{"line_number":66,"context_line":"                                {\"id_path\": id_path})"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        d[hostname] \u003d time.time()"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2FfpE%3D","line":65,"updated":"2014-01-13 10:42:40.000000000","message":"should LOG.warning((_msg)val)? not LOG.warning((_msg)%val)?","commit_id":"84c5c202d3027ca67684273a991cc00816449e66"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"7cf7f7924d4dc21c5901644bfa5f41aa967770cb","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                try:"},{"line_number":63,"context_line":"                    d \u003d json.loads(f.read())"},{"line_number":64,"context_line":"                except ValueError:"},{"line_number":65,"context_line":"                    LOG.warning(_(\"Cannot decode JSON from %(id_path)s\") %"},{"line_number":66,"context_line":"                                {\"id_path\": id_path})"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        d[hostname] \u003d time.time()"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2FfG4%3D","line":65,"in_reply_to":"AAAAUH%2F%2FfpE%3D","updated":"2014-01-13 12:27:18.000000000","message":"Yes indeed.","commit_id":"84c5c202d3027ca67684273a991cc00816449e66"}]}
