)]}'
{"nova/objects/base.py":[{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"2d46196cd00f1df40e2ac3590ee9eafef0a8fce4","unresolved":false,"context_lines":[{"line_number":157,"context_line":"# \"orphaned\" and remotable methods cannot be called."},{"line_number":158,"context_line":"def remotable(fn):"},{"line_number":159,"context_line":"    \"\"\"Decorator for remotable object methods.\"\"\""},{"line_number":160,"context_line":"    fn.remoteable \u003d True"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    @functools.wraps(fn)"},{"line_number":163,"context_line":"    def wrapper(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_55480787","line":160,"updated":"2014-05-23 16:46:17.000000000","message":"This is \u0027remoteable\u0027, but the one above is \u0027remotable\u0027. Is the extra \u0027e\u0027 a mistake?","commit_id":"9d3e89d4026d3c4a10eeedeeb2a7de65e4520ed0"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"47c29eb4f1116bd7f96a80c2bf47d3cb9f0b4659","unresolved":false,"context_lines":[{"line_number":157,"context_line":"# \"orphaned\" and remotable methods cannot be called."},{"line_number":158,"context_line":"def remotable(fn):"},{"line_number":159,"context_line":"    \"\"\"Decorator for remotable object methods.\"\"\""},{"line_number":160,"context_line":"    fn.remoteable \u003d True"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    @functools.wraps(fn)"},{"line_number":163,"context_line":"    def wrapper(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_eb04d27f","line":160,"in_reply_to":"7adec928_55480787","updated":"2014-05-23 17:52:29.000000000","message":"Yeah, good catch, thanks :)","commit_id":"9d3e89d4026d3c4a10eeedeeb2a7de65e4520ed0"}],"nova/tests/objects/test_objects.py":[{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"ed37aeaac0752baaf01452cea984a895d0a66a8e","unresolved":false,"context_lines":[{"line_number":918,"context_line":"        # NOTE(danms): Things that need a version bump are any fields"},{"line_number":919,"context_line":"        # and their types, or the signatures of any remotable methods."},{"line_number":920,"context_line":"        # Of course, these are just the mechanical changes we can detect,"},{"line_number":921,"context_line":"        # but many other things may require a version bump (methodbehavior"},{"line_number":922,"context_line":"        # and return value changes, for example)."},{"line_number":923,"context_line":"        relevant_data \u003d {\u0027fields\u0027: fields,"},{"line_number":924,"context_line":"                         \u0027methods\u0027: methods,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ae8d1ca_c0d3c236","line":921,"updated":"2014-05-27 19:12:17.000000000","message":"s/methodbehavior/method behavior/","commit_id":"e9681bec123b8466b804111790f7c037f3c6653f"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"ed37aeaac0752baaf01452cea984a895d0a66a8e","unresolved":false,"context_lines":[{"line_number":928,"context_line":""},{"line_number":929,"context_line":"    def _test_versions_cls(self, obj_name):"},{"line_number":930,"context_line":"        obj_class \u003d base.NovaObject._obj_classes[obj_name][0]"},{"line_number":931,"context_line":"        expected_fingerprint \u003d object_data.get(obj_name, {})"},{"line_number":932,"context_line":"        actual_fingerprint \u003d self._get_fingerprint(obj_class)"},{"line_number":933,"context_line":""},{"line_number":934,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":3,"id":"3ae8d1ca_2088e61e","line":931,"updated":"2014-05-27 19:12:17.000000000","message":"default expected_fingerprint should be a string.","commit_id":"e9681bec123b8466b804111790f7c037f3c6653f"}]}
