)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"af1e75110a7193a9812fb8e9330a838f713de570","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When setting ownership of a file or directory, the guestfs driver"},{"line_number":10,"context_line":"looks for the /etc/passwd and/or /etc/group files. In case they"},{"line_number":11,"context_line":"are not found, the current driver lets the auges RuntimeError"},{"line_number":12,"context_line":"through, which does not produce a very helpful error message."},{"line_number":13,"context_line":"Fixing that by handling the original exception and rasing a"},{"line_number":14,"context_line":"Nova exception with more details in it."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a71b18c_f94c4878","line":11,"range":{"start_line":11,"start_character":43,"end_line":11,"end_character":48},"updated":"2016-12-08 18:08:00.000000000","message":"s/auges/Augeus/","commit_id":"9cd722e5056dc18df6bc5754ceafd6c5493f5932"}],"nova/virt/disk/vfs/guestfs.py":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"2eaed2188620430d017236499abf9a4026c1ee9c","unresolved":false,"context_lines":[{"line_number":331,"context_line":"                        \"/files/etc/group/\" + group + \"/gid\"))"},{"line_number":332,"context_line":"            except RuntimeError as e:"},{"line_number":333,"context_line":"                msg \u003d _(\"Error setting ownership of path %(path)s to group\""},{"line_number":334,"context_line":"                        \" %(group)s - could not read the uid. (%(e)s)\") % \\"},{"line_number":335,"context_line":"                      {\u0027path\u0027: path, \u0027group\u0027: group, \u0027e\u0027: e}"},{"line_number":336,"context_line":"                raise exception.NovaException(msg)"},{"line_number":337,"context_line":"        LOG.debug(\"chown uid\u003d%(uid)d gid\u003d%(gid)s\","}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_c6e7ab3e","line":334,"updated":"2016-12-08 17:43:49.000000000","message":"This is trying to read a gid not a uid.\nIf a common error message is wanted, perhaps add another parameter which is either \u0027user\u0027 or \u0027group\u0027 and use \"could not read the %(type)s id\"?","commit_id":"9cd722e5056dc18df6bc5754ceafd6c5493f5932"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"6e6e471526d838ca26af900ee0f56ad00d6ee6ef","unresolved":false,"context_lines":[{"line_number":316,"context_line":"        uid \u003d -1"},{"line_number":317,"context_line":"        gid \u003d -1"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"        def _get_item_id(item, item_type):"},{"line_number":320,"context_line":"            if item_type \u003d\u003d \u0027user\u0027:"},{"line_number":321,"context_line":"                filename \u003d \u0027passwd\u0027"},{"line_number":322,"context_line":"                id_name \u003d \u0027uid\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a71b18c_6063fb1a","line":319,"updated":"2016-12-09 11:54:19.000000000","message":"I may be being overly simplistic here, but what about:\ndef _get_id(path):\n    return int(self.handle.aug_get(\"/files/etc/\"+path))\n\nthen you would call _get_id(\u0027passwd/%s/uid\u0027%(user))?\nThe exception would be much more generic:\n\"Error reading id from %path\"\n\nIs there much use for this utility function outside that?","commit_id":"49a506594ddaf8df5581c6fd719e4912b4b9b8d1"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"0cff0e7114a25959436df5c576927bd91c1c480a","unresolved":false,"context_lines":[{"line_number":316,"context_line":"        uid \u003d -1"},{"line_number":317,"context_line":"        gid \u003d -1"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"        def _get_item_id(item, item_type):"},{"line_number":320,"context_line":"            if item_type \u003d\u003d \u0027user\u0027:"},{"line_number":321,"context_line":"                filename \u003d \u0027passwd\u0027"},{"line_number":322,"context_line":"                id_name \u003d \u0027uid\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a71b18c_b6ab9988","line":319,"in_reply_to":"3a71b18c_6063fb1a","updated":"2016-12-09 12:31:07.000000000","message":"Heh this is nicer and simpler, I will change it.","commit_id":"49a506594ddaf8df5581c6fd719e4912b4b9b8d1"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"6e6e471526d838ca26af900ee0f56ad00d6ee6ef","unresolved":false,"context_lines":[{"line_number":327,"context_line":"                return int(self.handle.aug_get("},{"line_number":328,"context_line":"                    \"/files/etc/\" + filename + \"/\" + item + \"/\" + id_name))"},{"line_number":329,"context_line":"            except RuntimeError as e:"},{"line_number":330,"context_line":"                msg \u003d _(\"Error setting ownership of path %(path)s to %(type)s\""},{"line_number":331,"context_line":"                        \" %(item)s - could not read the %(id_name)s.\""},{"line_number":332,"context_line":"                        \" (%(e)s)\") % {\u0027path\u0027: path, \u0027user\u0027: user,"},{"line_number":333,"context_line":"                                       \u0027type\u0027: item_type, \u0027id_name\u0027: id_name,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a71b18c_40543f20","line":330,"updated":"2016-12-09 11:54:19.000000000","message":"I think the \u0027error setting ownership\u0027 is misleading here.  I know it\u0027s an inner function, but the failure is actually that we couldn\u0027t get the uid/gid, not that we couldn\u0027t set the ownership since that happens later in the chown.","commit_id":"49a506594ddaf8df5581c6fd719e4912b4b9b8d1"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"0cff0e7114a25959436df5c576927bd91c1c480a","unresolved":false,"context_lines":[{"line_number":327,"context_line":"                return int(self.handle.aug_get("},{"line_number":328,"context_line":"                    \"/files/etc/\" + filename + \"/\" + item + \"/\" + id_name))"},{"line_number":329,"context_line":"            except RuntimeError as e:"},{"line_number":330,"context_line":"                msg \u003d _(\"Error setting ownership of path %(path)s to %(type)s\""},{"line_number":331,"context_line":"                        \" %(item)s - could not read the %(id_name)s.\""},{"line_number":332,"context_line":"                        \" (%(e)s)\") % {\u0027path\u0027: path, \u0027user\u0027: user,"},{"line_number":333,"context_line":"                                       \u0027type\u0027: item_type, \u0027id_name\u0027: id_name,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a71b18c_768f4123","line":330,"in_reply_to":"3a71b18c_40543f20","updated":"2016-12-09 12:31:07.000000000","message":"I agree, but I would prefer not to lose the context (set_ownership).\nWould the following work for you?\n\n\"Error while setting ownership - could not read path\"","commit_id":"49a506594ddaf8df5581c6fd719e4912b4b9b8d1"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"13df8b6f0548b68664a58b1deb2eb5d197e90fad","unresolved":false,"context_lines":[{"line_number":327,"context_line":"                return int(self.handle.aug_get("},{"line_number":328,"context_line":"                    \"/files/etc/\" + filename + \"/\" + item + \"/\" + id_name))"},{"line_number":329,"context_line":"            except RuntimeError as e:"},{"line_number":330,"context_line":"                msg \u003d _(\"Error setting ownership of path %(path)s to %(type)s\""},{"line_number":331,"context_line":"                        \" %(item)s - could not read the %(id_name)s.\""},{"line_number":332,"context_line":"                        \" (%(e)s)\") % {\u0027path\u0027: path, \u0027user\u0027: user,"},{"line_number":333,"context_line":"                                       \u0027type\u0027: item_type, \u0027id_name\u0027: id_name,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a71b18c_9150670c","line":330,"in_reply_to":"3a71b18c_768f4123","updated":"2016-12-09 12:50:12.000000000","message":"Uhm on 2nd thoughts, maybe not, it\u0027s still confusing. I will go for a path not found error.","commit_id":"49a506594ddaf8df5581c6fd719e4912b4b9b8d1"}]}
