)]}'
{"smaug/api/v1/scheduled_operations.py":[{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"c6e5b03a8d61319df8406e71783c807989aba7c3","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"class ScheduledOperationController(wsgi.Controller):"},{"line_number":88,"context_line":"    \"\"\"The Plans API controller for the OpenStack API.\"\"\""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    _view_builder_class \u003d ScheduledOperationViewBuilder"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_a6a9bfe1","line":88,"range":{"start_line":88,"start_character":11,"end_line":88,"end_character":16},"updated":"2016-03-02 17:35:48.000000000","message":"ScheduledOperation API","commit_id":"aaf0607f55ff3dc1fdcc9fbf16dd57df7357a2bd"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"382399b983c0bd039848fe778682e83f522a7f75","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        super(ScheduledOperationController, self).__init__()"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def create(self, req, body):"},{"line_number":97,"context_line":"        \"\"\"Creates a new trigger.\"\"\""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        LOG.debug(\u0027Create scheduled operation start\u0027)"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_b1fc3473","line":97,"range":{"start_line":97,"start_character":25,"end_line":97,"end_character":32},"updated":"2016-03-03 07:30:10.000000000","message":"ScheduledOperation","commit_id":"aaf0607f55ff3dc1fdcc9fbf16dd57df7357a2bd"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"382399b983c0bd039848fe778682e83f522a7f75","unresolved":false,"context_lines":[{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    def _get_operation_by_id(self, context, id):"},{"line_number":205,"context_line":"        if not uuidutils.is_uuid_like(id):"},{"line_number":206,"context_line":"            msg \u003d _(\"Invalid trigger id provided.\")"},{"line_number":207,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_51ce902e","line":206,"range":{"start_line":206,"start_character":29,"end_line":206,"end_character":36},"updated":"2016-03-03 07:30:10.000000000","message":"ScheduledOperation","commit_id":"aaf0607f55ff3dc1fdcc9fbf16dd57df7357a2bd"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"f39bf62a84e1fc5e3ba9c271dac319b2f4699fcf","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    _collection_name \u003d \"scheduled_operations\""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def detail(self, request, operation):"},{"line_number":45,"context_line":"        \"\"\"Detailed view of a single trigger.\"\"\""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        trigger_ref \u003d {"},{"line_number":48,"context_line":"            \u0027scheduled_operation\u0027: {"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afc51ec_48d2b7d3","line":45,"range":{"start_line":45,"start_character":37,"end_line":45,"end_character":44},"updated":"2016-03-14 06:26:00.000000000","message":"schedule operation","commit_id":"0d2a1d31bbfd83c5ef41b855ffe6617f9a208843"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"1cf93ab8114b92fb05c5916ed2b24df3027154e6","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    _collection_name \u003d \"scheduled_operations\""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def detail(self, request, operation):"},{"line_number":45,"context_line":"        \"\"\"Detailed view of a single trigger.\"\"\""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        trigger_ref \u003d {"},{"line_number":48,"context_line":"            \u0027scheduled_operation\u0027: {"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afc51ec_9b5a0e4f","line":45,"range":{"start_line":45,"start_character":37,"end_line":45,"end_character":44},"in_reply_to":"3afc51ec_48d2b7d3","updated":"2016-03-15 03:26:33.000000000","message":"Done","commit_id":"0d2a1d31bbfd83c5ef41b855ffe6617f9a208843"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"f39bf62a84e1fc5e3ba9c271dac319b2f4699fcf","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    def detail(self, request, operation):"},{"line_number":45,"context_line":"        \"\"\"Detailed view of a single trigger.\"\"\""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        trigger_ref \u003d {"},{"line_number":48,"context_line":"            \u0027scheduled_operation\u0027: {"},{"line_number":49,"context_line":"                \u0027id\u0027: operation.get(\u0027id\u0027),"},{"line_number":50,"context_line":"                \u0027name\u0027: operation.get(\u0027name\u0027),"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afc51ec_68fe9339","line":47,"range":{"start_line":47,"start_character":8,"end_line":47,"end_character":19},"updated":"2016-03-14 06:26:00.000000000","message":"update this variable name to operation.","commit_id":"0d2a1d31bbfd83c5ef41b855ffe6617f9a208843"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"1cf93ab8114b92fb05c5916ed2b24df3027154e6","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    def detail(self, request, operation):"},{"line_number":45,"context_line":"        \"\"\"Detailed view of a single trigger.\"\"\""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        trigger_ref \u003d {"},{"line_number":48,"context_line":"            \u0027scheduled_operation\u0027: {"},{"line_number":49,"context_line":"                \u0027id\u0027: operation.get(\u0027id\u0027),"},{"line_number":50,"context_line":"                \u0027name\u0027: operation.get(\u0027name\u0027),"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afc51ec_fb59925b","line":47,"range":{"start_line":47,"start_character":8,"end_line":47,"end_character":19},"in_reply_to":"3afc51ec_68fe9339","updated":"2016-03-15 03:26:33.000000000","message":"Done","commit_id":"0d2a1d31bbfd83c5ef41b855ffe6617f9a208843"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"f39bf62a84e1fc5e3ba9c271dac319b2f4699fcf","unresolved":false,"context_lines":[{"line_number":157,"context_line":"            self.operationengine_api.delete_scheduled_operation("},{"line_number":158,"context_line":"                context, id)"},{"line_number":159,"context_line":"        except exception.NotFound as ex:"},{"line_number":160,"context_line":"            raise exc.HTTPNotFound(explanation\u003dex.msg)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        except exception.Invalid as ex:"},{"line_number":163,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dex.msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afc51ec_0819cf88","line":160,"updated":"2016-03-14 06:26:00.000000000","message":"I think if the exception is NotFound, should continue processing, rather than raise exception.","commit_id":"0d2a1d31bbfd83c5ef41b855ffe6617f9a208843"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"1cf93ab8114b92fb05c5916ed2b24df3027154e6","unresolved":false,"context_lines":[{"line_number":157,"context_line":"            self.operationengine_api.delete_scheduled_operation("},{"line_number":158,"context_line":"                context, id)"},{"line_number":159,"context_line":"        except exception.NotFound as ex:"},{"line_number":160,"context_line":"            raise exc.HTTPNotFound(explanation\u003dex.msg)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        except exception.Invalid as ex:"},{"line_number":163,"context_line":"            raise exc.HTTPBadRequest(explanation\u003dex.msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afc51ec_bb26eacb","line":160,"in_reply_to":"3afc51ec_0819cf88","updated":"2016-03-15 03:26:33.000000000","message":"can you describe more details how to process this exception. thanks.","commit_id":"0d2a1d31bbfd83c5ef41b855ffe6617f9a208843"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"f39bf62a84e1fc5e3ba9c271dac319b2f4699fcf","unresolved":false,"context_lines":[{"line_number":252,"context_line":""},{"line_number":253,"context_line":"    def _raise_unknown_exception(self, exception_instance):"},{"line_number":254,"context_line":"        msg \u003d _(\u0027Unexpected API Error. Please report this at \u0027"},{"line_number":255,"context_line":"                \u0027http://bugs.launchpad.net/smuag/ and attach the\u0027"},{"line_number":256,"context_line":"                \u0027Smaug API log if possible.\\n%s\u0027) % type(exception_instance)"},{"line_number":257,"context_line":"        raise exc.HTTPInternalServerError(explanation\u003dmsg)"},{"line_number":258,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3afc51ec_235b0c30","line":255,"range":{"start_line":255,"start_character":61,"end_line":255,"end_character":64},"updated":"2016-03-14 06:26:00.000000000","message":"append a space character at line tail.","commit_id":"0d2a1d31bbfd83c5ef41b855ffe6617f9a208843"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"f39bf62a84e1fc5e3ba9c271dac319b2f4699fcf","unresolved":false,"context_lines":[{"line_number":252,"context_line":""},{"line_number":253,"context_line":"    def _raise_unknown_exception(self, exception_instance):"},{"line_number":254,"context_line":"        msg \u003d _(\u0027Unexpected API Error. Please report this at \u0027"},{"line_number":255,"context_line":"                \u0027http://bugs.launchpad.net/smuag/ and attach the\u0027"},{"line_number":256,"context_line":"                \u0027Smaug API log if possible.\\n%s\u0027) % type(exception_instance)"},{"line_number":257,"context_line":"        raise exc.HTTPInternalServerError(explanation\u003dmsg)"},{"line_number":258,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3afc51ec_e329248b","line":255,"range":{"start_line":255,"start_character":43,"end_line":255,"end_character":48},"updated":"2016-03-14 06:26:00.000000000","message":"smaug","commit_id":"0d2a1d31bbfd83c5ef41b855ffe6617f9a208843"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"1cf93ab8114b92fb05c5916ed2b24df3027154e6","unresolved":false,"context_lines":[{"line_number":252,"context_line":""},{"line_number":253,"context_line":"    def _raise_unknown_exception(self, exception_instance):"},{"line_number":254,"context_line":"        msg \u003d _(\u0027Unexpected API Error. Please report this at \u0027"},{"line_number":255,"context_line":"                \u0027http://bugs.launchpad.net/smuag/ and attach the\u0027"},{"line_number":256,"context_line":"                \u0027Smaug API log if possible.\\n%s\u0027) % type(exception_instance)"},{"line_number":257,"context_line":"        raise exc.HTTPInternalServerError(explanation\u003dmsg)"},{"line_number":258,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3afc51ec_9b216eb7","line":255,"range":{"start_line":255,"start_character":61,"end_line":255,"end_character":64},"in_reply_to":"3afc51ec_235b0c30","updated":"2016-03-15 03:26:33.000000000","message":"Done","commit_id":"0d2a1d31bbfd83c5ef41b855ffe6617f9a208843"},{"author":{"_account_id":18266,"name":"zengchen","email":"chenzeng2@huawei.com","username":"zengchen"},"change_message_id":"1cf93ab8114b92fb05c5916ed2b24df3027154e6","unresolved":false,"context_lines":[{"line_number":252,"context_line":""},{"line_number":253,"context_line":"    def _raise_unknown_exception(self, exception_instance):"},{"line_number":254,"context_line":"        msg \u003d _(\u0027Unexpected API Error. Please report this at \u0027"},{"line_number":255,"context_line":"                \u0027http://bugs.launchpad.net/smuag/ and attach the\u0027"},{"line_number":256,"context_line":"                \u0027Smaug API log if possible.\\n%s\u0027) % type(exception_instance)"},{"line_number":257,"context_line":"        raise exc.HTTPInternalServerError(explanation\u003dmsg)"},{"line_number":258,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3afc51ec_fb307203","line":255,"range":{"start_line":255,"start_character":43,"end_line":255,"end_character":48},"in_reply_to":"3afc51ec_e329248b","updated":"2016-03-15 03:26:33.000000000","message":"Done","commit_id":"0d2a1d31bbfd83c5ef41b855ffe6617f9a208843"}],"smaug/objects/scheduled_operation.py":[{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"c6e5b03a8d61319df8406e71783c807989aba7c3","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        \u0027trigger_id\u0027: fields.UUIDField(),\r"},{"line_number":41,"context_line":"        \u0027operation_definition\u0027: fields.DictOfStringsField(),\r"},{"line_number":42,"context_line":"\r"},{"line_number":43,"context_line":"        \u0027trigger\u0027: fields.ObjectField(\"Trigger\", nullable\u003dTrue)\r"},{"line_number":44,"context_line":"    }\r"},{"line_number":45,"context_line":"\r"},{"line_number":46,"context_line":"    INSTANCE_OPTIONAL_JOINED_FIELDS \u003d [\u0027trigger\u0027]\r"}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_8b5beb2d","line":43,"range":{"start_line":43,"start_character":49,"end_line":43,"end_character":62},"updated":"2016-03-02 17:35:48.000000000","message":"I am not sure why do we allow null Trigger Object","commit_id":"aaf0607f55ff3dc1fdcc9fbf16dd57df7357a2bd"}]}
