)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"0e71a1f0458a5fe5aa42c6a1c20377a11e5f6953","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"First try to get them, but if they aren\u0027t able to be serialized,"},{"line_number":10,"context_line":"just return the failure without them.  This only affects the WBE"},{"line_number":11,"context_line":"that serializes failures as JSON to send over the wire to the conductor."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I86e3255b612bc15097aabe63a684cf8b8808e61b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7a5de9d1_4fe24cd7","line":11,"updated":"2016-01-27 17:35:16.000000000","message":"Clarification:\n\n\"This only affects the WBE worker that serializes failures as JSON to send over the wire back to the WBE engine.\"","commit_id":"f486e1b9e0ea5f5d51418fb2d86fc4083f8368f3"}],"taskflow/engines/worker_based/protocol.py":[{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"543f98fac87fee195fcb92fb4bda1f150c3b8efb","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import abc"},{"line_number":18,"context_line":"import collections"},{"line_number":19,"context_line":"import json"},{"line_number":20,"context_line":"import threading"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import fasteners"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_2fd3503a","line":19,"updated":"2016-01-27 17:34:01.000000000","message":"Can u use the jsonutils from oslo.utils,\n\nhttps://github.com/openstack/oslo.serialization/blob/master/oslo_serialization/jsonutils.py\n\nJust so that we are using the same thing as elsewhere here.","commit_id":"f486e1b9e0ea5f5d51418fb2d86fc4083f8368f3"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"dc56c7a1a7c6d2ba8c3f5ab100206b8e02eab01d","unresolved":false,"context_lines":[{"line_number":311,"context_line":"        }"},{"line_number":312,"context_line":"        if \u0027result\u0027 in self._kwargs:"},{"line_number":313,"context_line":"            result \u003d self._kwargs[\u0027result\u0027]"},{"line_number":314,"context_line":"            if isinstance(result, ft.Failure):"},{"line_number":315,"context_line":"                request[\u0027result\u0027] \u003d (\u0027failure\u0027, result.to_dict())"},{"line_number":316,"context_line":"            else:"},{"line_number":317,"context_line":"                request[\u0027result\u0027] \u003d (\u0027success\u0027, result)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_676881f6","line":314,"updated":"2016-01-27 23:55:03.000000000","message":"Did u need to do the same check here?","commit_id":"7b1230e7fa21504143538e72fbfdae1980d2e103"},{"author":{"_account_id":9648,"name":"Greg Hill","email":"greg.hill@rackspace.com","username":"jimbobhickville"},"change_message_id":"e2992d57c2f86038176adfbc510b4b714483b18b","unresolved":false,"context_lines":[{"line_number":311,"context_line":"        }"},{"line_number":312,"context_line":"        if \u0027result\u0027 in self._kwargs:"},{"line_number":313,"context_line":"            result \u003d self._kwargs[\u0027result\u0027]"},{"line_number":314,"context_line":"            if isinstance(result, ft.Failure):"},{"line_number":315,"context_line":"                request[\u0027result\u0027] \u003d (\u0027failure\u0027, result.to_dict())"},{"line_number":316,"context_line":"            else:"},{"line_number":317,"context_line":"                request[\u0027result\u0027] \u003d (\u0027success\u0027, result)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_7f6ea597","line":314,"in_reply_to":"7a5de9d1_676881f6","updated":"2016-01-28 15:56:09.000000000","message":"Yes, I missed that.  Thanks","commit_id":"7b1230e7fa21504143538e72fbfdae1980d2e103"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"b03d4d8eb4f6b7dbd733198a4cbb03140e306507","unresolved":false,"context_lines":[{"line_number":311,"context_line":"        }"},{"line_number":312,"context_line":"        if \u0027result\u0027 in self._kwargs:"},{"line_number":313,"context_line":"            result \u003d self._kwargs[\u0027result\u0027]"},{"line_number":314,"context_line":"            if isinstance(result, ft.Failure):"},{"line_number":315,"context_line":"                request[\u0027result\u0027] \u003d (\u0027failure\u0027, result.to_dict())"},{"line_number":316,"context_line":"            else:"},{"line_number":317,"context_line":"                request[\u0027result\u0027] \u003d (\u0027success\u0027, result)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_504cf641","line":314,"in_reply_to":"7a5de9d1_7f6ea597","updated":"2016-01-28 16:34:19.000000000","message":"Cool, perhaps turn the below code into a small function both can share.","commit_id":"7b1230e7fa21504143538e72fbfdae1980d2e103"}],"taskflow/types/failure.py":[{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"4262409afe0debac61bd1a65581a2695a21bbfe1","unresolved":false,"context_lines":[{"line_number":500,"context_line":"            data[\u0027causes\u0027] \u003d tuple(cls.from_dict(d) for d in causes)"},{"line_number":501,"context_line":"        return cls(**data)"},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"    def to_dict(self):"},{"line_number":504,"context_line":"        \"\"\"Converts this object to a dictionary.\"\"\""},{"line_number":505,"context_line":"        serializable_exc_args \u003d []"},{"line_number":506,"context_line":"        for arg in list(self.exception_args):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_15a76e50","line":503,"updated":"2016-01-26 22:25:21.000000000","message":"What about?\n\n   to_dict(self, capture_args\u003dTrue):\n\nThen on to_dict usage/translation in the WBE engine especially the capture_args\u003dTrue ---\u003e json is tried, if that fails then capture_args\u003dFalse ---\u003e json is used (and the args are discarded).\n\nThat way at least for the cases where it does work it continues to work and the cases where it doesn\u0027t work can just drop the args.\n\nOther options is to do:\n\n  to_dict(self, args_translator\u003dlambda v: v):\n\nAnd when that fails, the caller can switch to\n\n  args_translator \u003d lambda v: None\n\nOr\n\n  args_translator \u003d lambda v: json.dumps(v)\n\nOr something else.","commit_id":"a4421d6f2474fb0d8e91b13b48a95bebb1ca6ef6"}]}
