)]}'
{"mistral/engine/rpc/delivery_types.py":[{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"0a23e67f8ee454988be17ccf15c3363369a9041a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 Intel Corporation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_2d77723c","line":1,"updated":"2016-07-11 05:04:11.000000000","message":"Soft: How about renaming the module to ack_types.py? It would be more consistent with parameter name we use (ack_type).","commit_id":"423aac2a7dde8f9e07d4f66f4d2e51d918e22d5a"},{"author":{"_account_id":19206,"name":"Dawid Deja","email":"dawdej@gmail.com","username":"ddeja"},"change_message_id":"a815a15904476a1bed97fd5bbdae0eb3e9186ee6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2016 Intel Corporation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_23682321","line":1,"in_reply_to":"1aa78d24_2d77723c","updated":"2016-07-11 07:31:45.000000000","message":"I\u0027ve renamed it to \u0027ack_patterns\u0027, since this is the parameter name.","commit_id":"423aac2a7dde8f9e07d4f66f4d2e51d918e22d5a"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"0a23e67f8ee454988be17ccf15c3363369a9041a","unresolved":false,"context_lines":[{"line_number":16,"context_line":"PROCESS_THEN_ACK \u003d \u0027process_then_ack\u0027"},{"line_number":17,"context_line":"ACK_THEN_PROCESS \u003d \u0027ack_then_process\u0027"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"ALL_ACK_PATTERNS \u003d ["},{"line_number":20,"context_line":"    PROCESS_THEN_ACK,"},{"line_number":21,"context_line":"    ACK_THEN_PROCESS"},{"line_number":22,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_0d827600","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":16},"updated":"2016-07-11 05:04:11.000000000","message":"We usually just use ALL, it is kind of a standard reserved word for such cases.","commit_id":"423aac2a7dde8f9e07d4f66f4d2e51d918e22d5a"},{"author":{"_account_id":19206,"name":"Dawid Deja","email":"dawdej@gmail.com","username":"ddeja"},"change_message_id":"a815a15904476a1bed97fd5bbdae0eb3e9186ee6","unresolved":false,"context_lines":[{"line_number":16,"context_line":"PROCESS_THEN_ACK \u003d \u0027process_then_ack\u0027"},{"line_number":17,"context_line":"ACK_THEN_PROCESS \u003d \u0027ack_then_process\u0027"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"ALL_ACK_PATTERNS \u003d ["},{"line_number":20,"context_line":"    PROCESS_THEN_ACK,"},{"line_number":21,"context_line":"    ACK_THEN_PROCESS"},{"line_number":22,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_63722b13","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":16},"in_reply_to":"1aa78d24_0d827600","updated":"2016-07-11 07:31:45.000000000","message":"Done","commit_id":"423aac2a7dde8f9e07d4f66f4d2e51d918e22d5a"}],"mistral/engine/rpc/kombu/kombu_client.py":[{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"a7ec47ecf7a8612f7f7aac111e0f128e10f73eb2","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        self.virtual_host \u003d conf.get(\u0027virtual_host\u0027, \u0027/\u0027)"},{"line_number":47,"context_line":"        self.durable_queue \u003d conf.get(\u0027durable_queues\u0027, False)"},{"line_number":48,"context_line":"        self.auto_delete \u003d conf.get(\u0027auto_delete\u0027, False)"},{"line_number":49,"context_line":"        self.process_type \u003d conf.get("},{"line_number":50,"context_line":"            \u0027process_type\u0027,"},{"line_number":51,"context_line":"            rpc_utils.ACK_THEN_PROCESS"},{"line_number":52,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_b9e012ce","line":49,"range":{"start_line":49,"start_character":13,"end_line":49,"end_character":25},"updated":"2016-07-08 05:49:32.000000000","message":"\"process_type\" seems a little bit too broad to me. How about \"ack_type\" or \"ack_pattern\"?","commit_id":"c48abd4bc59644a2f64d8cfc60f78c31daf54217"},{"author":{"_account_id":19206,"name":"Dawid Deja","email":"dawdej@gmail.com","username":"ddeja"},"change_message_id":"a372dbf0f8ebf9484973ac3c930d2268bf5cc706","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        self.virtual_host \u003d conf.get(\u0027virtual_host\u0027, \u0027/\u0027)"},{"line_number":47,"context_line":"        self.durable_queue \u003d conf.get(\u0027durable_queues\u0027, False)"},{"line_number":48,"context_line":"        self.auto_delete \u003d conf.get(\u0027auto_delete\u0027, False)"},{"line_number":49,"context_line":"        self.process_type \u003d conf.get("},{"line_number":50,"context_line":"            \u0027process_type\u0027,"},{"line_number":51,"context_line":"            rpc_utils.ACK_THEN_PROCESS"},{"line_number":52,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_180948de","line":49,"range":{"start_line":49,"start_character":13,"end_line":49,"end_character":25},"in_reply_to":"1aa78d24_b9e012ce","updated":"2016-07-08 15:17:01.000000000","message":"Done","commit_id":"c48abd4bc59644a2f64d8cfc60f78c31daf54217"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"a7ec47ecf7a8612f7f7aac111e0f128e10f73eb2","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        :param async: bool value means whether the request is"},{"line_number":148,"context_line":"            asynchronous or not."},{"line_number":149,"context_line":"        :return: result of the method or None if async."},{"line_number":150,"context_line":"        \"\"\""},{"line_number":151,"context_line":"        process_type \u003d process_type if ("},{"line_number":152,"context_line":"            process_type is not None"},{"line_number":153,"context_line":"        ) else self.process_type"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_79ffcaaa","line":150,"range":{"start_line":150,"start_character":8,"end_line":150,"end_character":11},"updated":"2016-07-08 05:49:32.000000000","message":"Missing docstring for \"process_type\" param.","commit_id":"c48abd4bc59644a2f64d8cfc60f78c31daf54217"},{"author":{"_account_id":19206,"name":"Dawid Deja","email":"dawdej@gmail.com","username":"ddeja"},"change_message_id":"a372dbf0f8ebf9484973ac3c930d2268bf5cc706","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        :param async: bool value means whether the request is"},{"line_number":148,"context_line":"            asynchronous or not."},{"line_number":149,"context_line":"        :return: result of the method or None if async."},{"line_number":150,"context_line":"        \"\"\""},{"line_number":151,"context_line":"        process_type \u003d process_type if ("},{"line_number":152,"context_line":"            process_type is not None"},{"line_number":153,"context_line":"        ) else self.process_type"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_78aa0c87","line":150,"range":{"start_line":150,"start_character":8,"end_line":150,"end_character":11},"in_reply_to":"1aa78d24_79ffcaaa","updated":"2016-07-08 15:17:01.000000000","message":"Done","commit_id":"c48abd4bc59644a2f64d8cfc60f78c31daf54217"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"1f44638eada5e85eb8bb721db952ab9e61c68fc5","unresolved":false,"context_lines":[{"line_number":149,"context_line":"            asynchronous or not."},{"line_number":150,"context_line":"        :return: result of the method or None if async."},{"line_number":151,"context_line":"        \"\"\""},{"line_number":152,"context_line":"        ack_pattern \u003d ack_pattern if ("},{"line_number":153,"context_line":"            ack_pattern is not None"},{"line_number":154,"context_line":"        ) else self.ack_pattern"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        utils.set_thread_local(CORR_ID, utils.generate_unicode_uuid())"},{"line_number":157,"context_line":"        utils.set_thread_local(IS_RECEIVED, False)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_8eff0465","line":154,"range":{"start_line":152,"start_character":0,"end_line":154,"end_character":31},"updated":"2016-07-13 05:25:16.000000000","message":"why not use:\n\n    ack_pattern \u003d ack_pattern or self.ack_pattern","commit_id":"43a69bf04db0be351fa5924d60e8cdaafd497cb9"}],"mistral/engine/rpc/kombu/kombu_server.py":[{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"a7ec47ecf7a8612f7f7aac111e0f128e10f73eb2","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        if process_method is None:"},{"line_number":139,"context_line":"            message.ack()"},{"line_number":140,"context_line":"            self.publish_message("},{"line_number":141,"context_line":"                \"Kombu can\u0027t process message in mode {}.\".format(process_type),"},{"line_number":142,"context_line":"                message.properties[\u0027reply_to\u0027],"},{"line_number":143,"context_line":"                message.properties[\u0027correlation_id\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_59e64e17","line":140,"range":{"start_line":140,"start_character":12,"end_line":140,"end_character":16},"updated":"2016-07-08 05:49:32.000000000","message":"Soft: blank line after ack to split different logical units.","commit_id":"c48abd4bc59644a2f64d8cfc60f78c31daf54217"},{"author":{"_account_id":19206,"name":"Dawid Deja","email":"dawdej@gmail.com","username":"ddeja"},"change_message_id":"a372dbf0f8ebf9484973ac3c930d2268bf5cc706","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        if process_method is None:"},{"line_number":139,"context_line":"            message.ack()"},{"line_number":140,"context_line":"            self.publish_message("},{"line_number":141,"context_line":"                \"Kombu can\u0027t process message in mode {}.\".format(process_type),"},{"line_number":142,"context_line":"                message.properties[\u0027reply_to\u0027],"},{"line_number":143,"context_line":"                message.properties[\u0027correlation_id\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_b8947444","line":140,"range":{"start_line":140,"start_character":12,"end_line":140,"end_character":16},"in_reply_to":"1aa78d24_59e64e17","updated":"2016-07-08 15:17:01.000000000","message":"Done","commit_id":"c48abd4bc59644a2f64d8cfc60f78c31daf54217"}],"mistral/engine/rpc/oslo/oslo_client.py":[{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"a7ec47ecf7a8612f7f7aac111e0f128e10f73eb2","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        )"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def _check_process_type(self, process_type):"},{"line_number":62,"context_line":"        # TODO(ddeja): Decide what to do in case process type is not valid -"},{"line_number":63,"context_line":"        # just log it or raise an exception."},{"line_number":64,"context_line":"        if process_type not in ["},{"line_number":65,"context_line":"            rpc_utils.ACK_THEN_PROCESS,"},{"line_number":66,"context_line":"            rpc_utils.PROCESS_THEN_ACK,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_59cdae85","line":63,"range":{"start_line":62,"start_character":10,"end_line":63,"end_character":44},"updated":"2016-07-08 05:49:32.000000000","message":"Since this is a very important fundamental parameter we need to be conservative here and raise an exception as soon as possible (fail fast behavior) w/o trying to handle it silently. User should clearly understand these config options or use default.","commit_id":"c48abd4bc59644a2f64d8cfc60f78c31daf54217"},{"author":{"_account_id":19206,"name":"Dawid Deja","email":"dawdej@gmail.com","username":"ddeja"},"change_message_id":"a372dbf0f8ebf9484973ac3c930d2268bf5cc706","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        )"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def _check_process_type(self, process_type):"},{"line_number":62,"context_line":"        # TODO(ddeja): Decide what to do in case process type is not valid -"},{"line_number":63,"context_line":"        # just log it or raise an exception."},{"line_number":64,"context_line":"        if process_type not in ["},{"line_number":65,"context_line":"            rpc_utils.ACK_THEN_PROCESS,"},{"line_number":66,"context_line":"            rpc_utils.PROCESS_THEN_ACK,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_d8722049","line":63,"range":{"start_line":62,"start_character":10,"end_line":63,"end_character":44},"in_reply_to":"1aa78d24_59cdae85","updated":"2016-07-08 15:17:01.000000000","message":"OK. It will be rasing an exception","commit_id":"c48abd4bc59644a2f64d8cfc60f78c31daf54217"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"a7ec47ecf7a8612f7f7aac111e0f128e10f73eb2","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            rpc_utils.PROCESS_THEN_ACK,"},{"line_number":67,"context_line":"            None"},{"line_number":68,"context_line":"        ]:"},{"line_number":69,"context_line":"            pass"},{"line_number":70,"context_line":"        elif process_type not in [rpc_utils.ACK_THEN_PROCESS, None]:"},{"line_number":71,"context_line":"            msg \u003d ("},{"line_number":72,"context_line":"                \"Message processing type \u0027{}\u0027 is not supported by oslo \""}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_79c4ea5e","line":69,"range":{"start_line":69,"start_character":12,"end_line":69,"end_character":16},"updated":"2016-07-08 05:49:32.000000000","message":"This \"pass\" looks slightly weird )","commit_id":"c48abd4bc59644a2f64d8cfc60f78c31daf54217"},{"author":{"_account_id":19206,"name":"Dawid Deja","email":"dawdej@gmail.com","username":"ddeja"},"change_message_id":"a372dbf0f8ebf9484973ac3c930d2268bf5cc706","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            rpc_utils.PROCESS_THEN_ACK,"},{"line_number":67,"context_line":"            None"},{"line_number":68,"context_line":"        ]:"},{"line_number":69,"context_line":"            pass"},{"line_number":70,"context_line":"        elif process_type not in [rpc_utils.ACK_THEN_PROCESS, None]:"},{"line_number":71,"context_line":"            msg \u003d ("},{"line_number":72,"context_line":"                \"Message processing type \u0027{}\u0027 is not supported by oslo \""}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_b8a2b498","line":69,"range":{"start_line":69,"start_character":12,"end_line":69,"end_character":16},"in_reply_to":"1aa78d24_79c4ea5e","updated":"2016-07-08 15:17:01.000000000","message":"It was there so this code would not be merged before we resolved the TODO comment","commit_id":"c48abd4bc59644a2f64d8cfc60f78c31daf54217"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"a7ec47ecf7a8612f7f7aac111e0f128e10f73eb2","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                \"Message processing type \u0027{}\u0027 is not supported by oslo \""},{"line_number":73,"context_line":"                \"driver. Message would be processed in \u0027{}\u0027 mode.\""},{"line_number":74,"context_line":"            ).format(process_type, rpc_utils.ACK_THEN_PROCESS)"},{"line_number":75,"context_line":"            LOG.warning(msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_b9a492b9","line":75,"range":{"start_line":75,"start_character":16,"end_line":75,"end_character":23},"updated":"2016-07-08 05:49:32.000000000","message":"Soft: blank line before logging.","commit_id":"c48abd4bc59644a2f64d8cfc60f78c31daf54217"},{"author":{"_account_id":19206,"name":"Dawid Deja","email":"dawdej@gmail.com","username":"ddeja"},"change_message_id":"a372dbf0f8ebf9484973ac3c930d2268bf5cc706","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                \"Message processing type \u0027{}\u0027 is not supported by oslo \""},{"line_number":73,"context_line":"                \"driver. Message would be processed in \u0027{}\u0027 mode.\""},{"line_number":74,"context_line":"            ).format(process_type, rpc_utils.ACK_THEN_PROCESS)"},{"line_number":75,"context_line":"            LOG.warning(msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_f8ac3c8e","line":75,"range":{"start_line":75,"start_character":16,"end_line":75,"end_character":23},"in_reply_to":"1aa78d24_b9a492b9","updated":"2016-07-08 15:17:01.000000000","message":"Done","commit_id":"c48abd4bc59644a2f64d8cfc60f78c31daf54217"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"0a23e67f8ee454988be17ccf15c3363369a9041a","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        if ack_pattern not in delivery_types.ALL_ACK_PATTERNS + [None]:"},{"line_number":64,"context_line":"            msg \u003d ("},{"line_number":65,"context_line":"                \"Invalid message processing type. Valid processing types are:\""},{"line_number":66,"context_line":"                \" {}\".format(delivery_types.ALL_ACK_PATTERNS)"},{"line_number":67,"context_line":"            )"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_8dadc68a","line":65,"range":{"start_line":65,"start_character":25,"end_line":65,"end_character":72},"updated":"2016-07-11 05:04:11.000000000","message":"Let\u0027s use \"message acknowledgement type\" here instead of \"processing type\".","commit_id":"423aac2a7dde8f9e07d4f66f4d2e51d918e22d5a"},{"author":{"_account_id":19206,"name":"Dawid Deja","email":"dawdej@gmail.com","username":"ddeja"},"change_message_id":"a815a15904476a1bed97fd5bbdae0eb3e9186ee6","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        if ack_pattern not in delivery_types.ALL_ACK_PATTERNS + [None]:"},{"line_number":64,"context_line":"            msg \u003d ("},{"line_number":65,"context_line":"                \"Invalid message processing type. Valid processing types are:\""},{"line_number":66,"context_line":"                \" {}\".format(delivery_types.ALL_ACK_PATTERNS)"},{"line_number":67,"context_line":"            )"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_c35f9f73","line":65,"range":{"start_line":65,"start_character":25,"end_line":65,"end_character":72},"in_reply_to":"1aa78d24_8dadc68a","updated":"2016-07-11 07:31:45.000000000","message":"I\u0027ve changed it to \u0027message acknowledgement pattern\u0027","commit_id":"423aac2a7dde8f9e07d4f66f4d2e51d918e22d5a"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"1f44638eada5e85eb8bb721db952ab9e61c68fc5","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def sync_call(self, ctx, method, target\u003dNone,"},{"line_number":42,"context_line":"                  ack_pattern\u003dNone, **kwargs):"},{"line_number":43,"context_line":"        self._check_ack_pattern(ack_pattern)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        return self._client.prepare(topic\u003dself.topic, server\u003dtarget).call("},{"line_number":46,"context_line":"            ctx,"}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_ae8120c5","line":43,"range":{"start_line":43,"start_character":8,"end_line":43,"end_character":44},"updated":"2016-07-13 05:25:16.000000000","message":"The ack_pattern param will do nothing for oslo client, why not just ignore it?","commit_id":"43a69bf04db0be351fa5924d60e8cdaafd497cb9"}],"mistral/utils/rpc_utils.py":[{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"a7ec47ecf7a8612f7f7aac111e0f128e10f73eb2","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"CONF \u003d cfg.CONF"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"PROCESS_THEN_ACK \u003d \u0027process_then_ack\u0027"},{"line_number":22,"context_line":"ACK_THEN_PROCESS \u003d \u0027ack_then_process\u0027"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"def get_rpc_info_from_oslo(additional_conf\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_39c6e249","line":22,"range":{"start_line":21,"start_character":0,"end_line":22,"end_character":37},"updated":"2016-07-08 05:49:32.000000000","message":"I would suggest we create a separate module called acknowledgement_types or messaging_types or delivery_types (similar to workflow.states) devoted purely to these variables. This module should also include ALL \u003d [..] which can be useful whenever we need to list all available options (in config help strings etc.)","commit_id":"c48abd4bc59644a2f64d8cfc60f78c31daf54217"},{"author":{"_account_id":19206,"name":"Dawid Deja","email":"dawdej@gmail.com","username":"ddeja"},"change_message_id":"a372dbf0f8ebf9484973ac3c930d2268bf5cc706","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"CONF \u003d cfg.CONF"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"PROCESS_THEN_ACK \u003d \u0027process_then_ack\u0027"},{"line_number":22,"context_line":"ACK_THEN_PROCESS \u003d \u0027ack_then_process\u0027"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"def get_rpc_info_from_oslo(additional_conf\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_78afac7d","line":22,"range":{"start_line":21,"start_character":0,"end_line":22,"end_character":37},"in_reply_to":"1aa78d24_39c6e249","updated":"2016-07-08 15:17:01.000000000","message":"Done","commit_id":"c48abd4bc59644a2f64d8cfc60f78c31daf54217"}]}
