)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"4266fc9133d49b1a9d725b1bc385ed5c7af1520c","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Make bdms primitive in rpcapi.terminate_instance"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch converts bdms (a list of block device mappings) passed to"},{"line_number":10,"context_line":"nova.compute.rpcapi.terminater_instance to primitive types that are"},{"line_number":11,"context_line":"safe to be sent to the rpc backend."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"fixes bug #1073240"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAALn%2F%2F3ZE%3D","line":10,"updated":"2012-10-31 17:39:20.000000000","message":"\"terminater_instance\" should be \"terminate_instance\" (even though it sounds cooler!)","commit_id":"a709e406803ba9f578904da9177e6964842bdbd1"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"f331199db967742e6e37ddba0abecce485e59952","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Make bdms primitive in rpcapi.terminate_instance"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch converts bdms (a list of block device mappings) passed to"},{"line_number":10,"context_line":"nova.compute.rpcapi.terminater_instance to primitive types that are"},{"line_number":11,"context_line":"safe to be sent to the rpc backend."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"fixes bug #1073240"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAALn%2F%2F3YU%3D","line":10,"in_reply_to":"AAAALn%2F%2F3ZE%3D","updated":"2012-10-31 17:43:08.000000000","message":"Done (reluctantly :) )","commit_id":"a709e406803ba9f578904da9177e6964842bdbd1"}],"nova/tests/api/ec2/test_cloud.py":[{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"20587d14b196115e51a53199bea990003d3b102e","unresolved":false,"context_lines":[{"line_number":1841,"context_line":"                    try:"},{"line_number":1842,"context_line":"                        return self.__dict__[name]"},{"line_number":1843,"context_line":"                    except KeyError:"},{"line_number":1844,"context_line":"                        raise AttributeError"},{"line_number":1845,"context_line":""},{"line_number":1846,"context_line":"                def __getitem__(self, key):"},{"line_number":1847,"context_line":"                    return self.values.get(key)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAALn%2F%2F2eQ%3D","line":1844,"updated":"2012-11-01 14:07:12.000000000","message":"Why was this needed?  Is there code setting values using \"bdm.something \u003d whatever\" ?  If so, perhaps fixing it so the writes go into self.values would be the right change.\n\nOr perhaps this whole class should be killed off and just use a dict?","commit_id":"6390508fc9622fdc1ed87974ce416f17e9983592"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"cb16c431669df8647e5ebbd84a93191e4dd6e67e","unresolved":false,"context_lines":[{"line_number":1841,"context_line":"                    try:"},{"line_number":1842,"context_line":"                        return self.__dict__[name]"},{"line_number":1843,"context_line":"                    except KeyError:"},{"line_number":1844,"context_line":"                        raise AttributeError"},{"line_number":1845,"context_line":""},{"line_number":1846,"context_line":"                def __getitem__(self, key):"},{"line_number":1847,"context_line":"                    return self.values.get(key)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAALn%2F%2F2WE%3D","line":1844,"in_reply_to":"AAAALn%2F%2F2a0%3D","updated":"2012-11-01 15:18:27.000000000","message":"Ah ... It was the \"return self.__dict__[name]\" that threw me off.  Raising instead of returning None is the real bug here ... got it, thanks.","commit_id":"6390508fc9622fdc1ed87974ce416f17e9983592"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"6bd4c8caa79955344f8d9b83f00bc909d22992c9","unresolved":false,"context_lines":[{"line_number":1841,"context_line":"                    try:"},{"line_number":1842,"context_line":"                        return self.__dict__[name]"},{"line_number":1843,"context_line":"                    except KeyError:"},{"line_number":1844,"context_line":"                        raise AttributeError"},{"line_number":1845,"context_line":""},{"line_number":1846,"context_line":"                def __getitem__(self, key):"},{"line_number":1847,"context_line":"                    return self.values.get(key)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAALn%2F%2F2a0%3D","line":1844,"in_reply_to":"AAAALn%2F%2F2eQ%3D","updated":"2012-11-01 14:42:10.000000000","message":"Short answer - this class should not exist and we should use a proper mocking library for these things, however this is (very much) outside of the scope of this patch.\n\nLong answer - this class is supposed to do nothing but \u0027quack\u0027 like a nova.db.sqlalchemy.BlockDeviceMapping (like a mixin of delarative_base and NovaBase to be precise). This means respond to both dotted and dict lookups (so we cannot use just a dict). However if this is not done properly (like it wasn\u0027t) - jsonutils,to_primitive get\u0027s confused (or anything that tries to probe bit a bit deeper for that matter, as the old __getattr__ would return None and not raise an AttributeError as expected).\n\nAs for fixing the writes- they are not needed at the moment (all needed values are set in the constructor), but once they will be needed it is quite straightforward to add them.","commit_id":"6390508fc9622fdc1ed87974ce416f17e9983592"}],"nova/tests/api/openstack/compute/test_server_actions.py":[{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"20587d14b196115e51a53199bea990003d3b102e","unresolved":false,"context_lines":[{"line_number":732,"context_line":"                    try:"},{"line_number":733,"context_line":"                        return self.__dict__[name]"},{"line_number":734,"context_line":"                    except KeyError:"},{"line_number":735,"context_line":"                        raise AttributeError"},{"line_number":736,"context_line":""},{"line_number":737,"context_line":"                def __getitem__(self, key):"},{"line_number":738,"context_line":"                    return self.values.get(key)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAALn%2F%2F2eM%3D","line":735,"updated":"2012-11-01 14:07:12.000000000","message":"same comment here as i left in the other test","commit_id":"6390508fc9622fdc1ed87974ce416f17e9983592"}]}
