)]}'
{"rally/osclients.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"967c01f4806714ee01719ac1ef4009374ab8f3e4","unresolved":false,"context_lines":[{"line_number":751,"context_line":"        \"\"\"Return watcher client.\"\"\""},{"line_number":752,"context_line":"        from watcherclient import client as watcher_client"},{"line_number":753,"context_line":"        kc \u003d self.keystone()"},{"line_number":754,"context_line":"        watcher_api_url \u003d self._get_endpoint(service_type)"},{"line_number":755,"context_line":"        client \u003d watcher_client.Client("},{"line_number":756,"context_line":"            self.choose_version(version),"},{"line_number":757,"context_line":"            watcher_api_url,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_3f91469a","line":754,"range":{"start_line":754,"start_character":45,"end_line":754,"end_character":57},"updated":"2016-07-11 11:59:56.000000000","message":"please, use here `self.choose_service_type(service_type)`. It adds ability to setup non default service_type via api_versions context(http://rally.readthedocs.io/en/latest/plugin/plugin_reference.html#api-versions-context)","commit_id":"499722ce886f69e504469bddc62f977c17516faa"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"611bbf20985b3ad0a3424385e93fe17ac718b4b0","unresolved":false,"context_lines":[{"line_number":751,"context_line":"        \"\"\"Return watcher client.\"\"\""},{"line_number":752,"context_line":"        from watcherclient import client as watcher_client"},{"line_number":753,"context_line":"        kc \u003d self.keystone()"},{"line_number":754,"context_line":"        watcher_api_url \u003d self._get_endpoint(service_type)"},{"line_number":755,"context_line":"        client \u003d watcher_client.Client("},{"line_number":756,"context_line":"            self.choose_version(version),"},{"line_number":757,"context_line":"            watcher_api_url,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_9585bb08","line":754,"range":{"start_line":754,"start_character":45,"end_line":754,"end_character":57},"in_reply_to":"1aa78d24_3f91469a","updated":"2016-07-11 12:42:05.000000000","message":"Done","commit_id":"499722ce886f69e504469bddc62f977c17516faa"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"50c04d02df3a6b38f0b83e38d31fca9a8a7ea532","unresolved":false,"context_lines":[{"line_number":760,"context_line":"            timeout\u003dCONF.openstack_client_http_timeout,"},{"line_number":761,"context_line":"            insecure\u003dself.credential.insecure,"},{"line_number":762,"context_line":"            ca_file\u003dself.credential.cacert)"},{"line_number":763,"context_line":"        return client"},{"line_number":764,"context_line":""},{"line_number":765,"context_line":""},{"line_number":766,"context_line":"class Clients(object):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_a8e2e6d2","line":763,"updated":"2016-07-12 10:38:05.000000000","message":"I have tried to use watcher client but got error http://paste.openstack.org/show/530808/\nIs it the same behavior for you?","commit_id":"909b59febc6c8ce3b51fd792cd1a60208f4e08cc"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"3ff946f4212ff268839bd04cb79514339a05b5f9","unresolved":false,"context_lines":[{"line_number":760,"context_line":"            timeout\u003dCONF.openstack_client_http_timeout,"},{"line_number":761,"context_line":"            insecure\u003dself.credential.insecure,"},{"line_number":762,"context_line":"            ca_file\u003dself.credential.cacert)"},{"line_number":763,"context_line":"        return client"},{"line_number":764,"context_line":""},{"line_number":765,"context_line":""},{"line_number":766,"context_line":"class Clients(object):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_cbd00c56","line":763,"in_reply_to":"1aa78d24_a8e2e6d2","updated":"2016-07-12 10:46:36.000000000","message":"This is something wrong from my side...","commit_id":"909b59febc6c8ce3b51fd792cd1a60208f4e08cc"}],"rally/plugins/openstack/cleanup/resources.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"967c01f4806714ee01719ac1ef4009374ab8f3e4","unresolved":false,"context_lines":[{"line_number":766,"context_line":""},{"line_number":767,"context_line":"# WATCHER"},{"line_number":768,"context_line":""},{"line_number":769,"context_line":"_watcher_order \u003d get_order(1500)"},{"line_number":770,"context_line":""},{"line_number":771,"context_line":""},{"line_number":772,"context_line":"@base.resource(\"watcher\", \"audit_template\", order\u003d_watcher_order,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_1f68ca86","line":769,"range":{"start_line":769,"start_character":17,"end_line":769,"end_character":32},"updated":"2016-07-11 11:59:56.000000000","message":"you don\u0027t need to use this method, you can set order\u003d1500 directly","commit_id":"499722ce886f69e504469bddc62f977c17516faa"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"611bbf20985b3ad0a3424385e93fe17ac718b4b0","unresolved":false,"context_lines":[{"line_number":766,"context_line":""},{"line_number":767,"context_line":"# WATCHER"},{"line_number":768,"context_line":""},{"line_number":769,"context_line":"_watcher_order \u003d get_order(1500)"},{"line_number":770,"context_line":""},{"line_number":771,"context_line":""},{"line_number":772,"context_line":"@base.resource(\"watcher\", \"audit_template\", order\u003d_watcher_order,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_f5951f40","line":769,"range":{"start_line":769,"start_character":17,"end_line":769,"end_character":32},"in_reply_to":"1aa78d24_1f68ca86","updated":"2016-07-11 12:42:05.000000000","message":"Done","commit_id":"499722ce886f69e504469bddc62f977c17516faa"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"484a63b48aabae795c0883148cbbda68ccca8ce1","unresolved":false,"context_lines":[{"line_number":766,"context_line":""},{"line_number":767,"context_line":"# WATCHER"},{"line_number":768,"context_line":""},{"line_number":769,"context_line":"_watcher_order \u003d get_order(1500)"},{"line_number":770,"context_line":""},{"line_number":771,"context_line":""},{"line_number":772,"context_line":"@base.resource(\"watcher\", \"audit_template\", order\u003d_watcher_order,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_bfe7f6e2","line":769,"range":{"start_line":769,"start_character":17,"end_line":769,"end_character":32},"in_reply_to":"1aa78d24_1f68ca86","updated":"2016-07-11 12:02:10.000000000","message":"if you create _watcher_order for future resources, you need to use order\u003dnext(_watcher_order) , since get_order returns generator and order argument of base.resource accepts int value.","commit_id":"499722ce886f69e504469bddc62f977c17516faa"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"611bbf20985b3ad0a3424385e93fe17ac718b4b0","unresolved":false,"context_lines":[{"line_number":766,"context_line":""},{"line_number":767,"context_line":"# WATCHER"},{"line_number":768,"context_line":""},{"line_number":769,"context_line":"_watcher_order \u003d get_order(1500)"},{"line_number":770,"context_line":""},{"line_number":771,"context_line":""},{"line_number":772,"context_line":"@base.resource(\"watcher\", \"audit_template\", order\u003d_watcher_order,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_d590e350","line":769,"range":{"start_line":769,"start_character":17,"end_line":769,"end_character":32},"in_reply_to":"1aa78d24_bfe7f6e2","updated":"2016-07-11 12:42:05.000000000","message":"Done","commit_id":"499722ce886f69e504469bddc62f977c17516faa"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"967c01f4806714ee01719ac1ef4009374ab8f3e4","unresolved":false,"context_lines":[{"line_number":769,"context_line":"_watcher_order \u003d get_order(1500)"},{"line_number":770,"context_line":""},{"line_number":771,"context_line":""},{"line_number":772,"context_line":"@base.resource(\"watcher\", \"audit_template\", order\u003d_watcher_order,"},{"line_number":773,"context_line":"               tenant_resource\u003dTrue)"},{"line_number":774,"context_line":"class WatcherTemplate(SynchronizedDeletion, base.ResourceManager):"},{"line_number":775,"context_line":""},{"line_number":776,"context_line":"    def id(self):"},{"line_number":777,"context_line":"        return self.raw_resource.uuid"},{"line_number":778,"context_line":""},{"line_number":779,"context_line":"    def is_deleted(self):"},{"line_number":780,"context_line":"        from watcherclient.common.apiclient import exceptions"},{"line_number":781,"context_line":"        try:"},{"line_number":782,"context_line":"            self._manager().get(self.id())"},{"line_number":783,"context_line":"            return False"},{"line_number":784,"context_line":"        except exceptions.NotFound:"},{"line_number":785,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_9f295a3a","line":785,"range":{"start_line":772,"start_character":0,"end_line":785,"end_character":23},"updated":"2016-07-11 11:59:56.000000000","message":"NIT: let\u0027s put this resource before keystone classes","commit_id":"499722ce886f69e504469bddc62f977c17516faa"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"611bbf20985b3ad0a3424385e93fe17ac718b4b0","unresolved":false,"context_lines":[{"line_number":769,"context_line":"_watcher_order \u003d get_order(1500)"},{"line_number":770,"context_line":""},{"line_number":771,"context_line":""},{"line_number":772,"context_line":"@base.resource(\"watcher\", \"audit_template\", order\u003d_watcher_order,"},{"line_number":773,"context_line":"               tenant_resource\u003dTrue)"},{"line_number":774,"context_line":"class WatcherTemplate(SynchronizedDeletion, base.ResourceManager):"},{"line_number":775,"context_line":""},{"line_number":776,"context_line":"    def id(self):"},{"line_number":777,"context_line":"        return self.raw_resource.uuid"},{"line_number":778,"context_line":""},{"line_number":779,"context_line":"    def is_deleted(self):"},{"line_number":780,"context_line":"        from watcherclient.common.apiclient import exceptions"},{"line_number":781,"context_line":"        try:"},{"line_number":782,"context_line":"            self._manager().get(self.id())"},{"line_number":783,"context_line":"            return False"},{"line_number":784,"context_line":"        except exceptions.NotFound:"},{"line_number":785,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_b5b0b7de","line":785,"range":{"start_line":772,"start_character":0,"end_line":785,"end_character":23},"in_reply_to":"1aa78d24_9f295a3a","updated":"2016-07-11 12:42:05.000000000","message":"Done","commit_id":"499722ce886f69e504469bddc62f977c17516faa"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"88b598ce1380d415da710637390e13d81c831c11","unresolved":false,"context_lines":[{"line_number":726,"context_line":"            self._manager().get(self.id())"},{"line_number":727,"context_line":"            return False"},{"line_number":728,"context_line":"        except exceptions.NotFound:"},{"line_number":729,"context_line":"            return True"},{"line_number":730,"context_line":""},{"line_number":731,"context_line":""},{"line_number":732,"context_line":"# KEYSTONE"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_ee2b5be9","line":729,"updated":"2016-07-12 09:48:07.000000000","message":"We should override list https://github.com/openstack/python-watcherclient/blob/master/watcherclient/v1/audit_template.py#L47 better to set it to 0 Otherwise we will get at most 1000 items https://github.com/openstack/watcher/blob/4fc33075256f561a7408f1d2abcab7b05aa47ac1/watcher/api/app.py#L36","commit_id":"909b59febc6c8ce3b51fd792cd1a60208f4e08cc"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"72fdecbdae63513d299d4947c745bfa8bb946728","unresolved":false,"context_lines":[{"line_number":726,"context_line":"            self._manager().get(self.id())"},{"line_number":727,"context_line":"            return False"},{"line_number":728,"context_line":"        except exceptions.NotFound:"},{"line_number":729,"context_line":"            return True"},{"line_number":730,"context_line":""},{"line_number":731,"context_line":""},{"line_number":732,"context_line":"# KEYSTONE"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_d98d8732","line":729,"in_reply_to":"1aa78d24_ee2b5be9","updated":"2016-07-12 10:52:56.000000000","message":"Done","commit_id":"909b59febc6c8ce3b51fd792cd1a60208f4e08cc"}],"rally/plugins/openstack/types.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"88b598ce1380d415da710637390e13d81c831c11","unresolved":false,"context_lines":[{"line_number":168,"context_line":"                name\u003dresource_config.get(\"name\")))"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"@plugin.configure(name\u003d\"watcher_strategy\")"},{"line_number":172,"context_line":"class WatcherStrategy(types.ResourceType):"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    @classmethod"},{"line_number":175,"context_line":"    def transform(cls, clients, resource_config):"},{"line_number":176,"context_line":"        \"\"\"Transform the resource config to id."},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        :param clients: openstack admin client handles"},{"line_number":179,"context_line":"        :param resource_config: scenario config with `id`, `name` or `regex`"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        :returns: id matching resource"},{"line_number":182,"context_line":"        \"\"\""},{"line_number":183,"context_line":"        resource_id \u003d resource_config.get(\"id\")"},{"line_number":184,"context_line":"        if not resource_id:"},{"line_number":185,"context_line":"            watcherclient \u003d clients.watcher()"},{"line_number":186,"context_line":"            resource_id \u003d types._id_from_name("},{"line_number":187,"context_line":"                resource_config\u003dresource_config,"},{"line_number":188,"context_line":"                resources\u003dwatcherclient.strategy.list(),"},{"line_number":189,"context_line":"                typename\u003d\"strategy\","},{"line_number":190,"context_line":"                id_attr\u003d\"uuid\")"},{"line_number":191,"context_line":"        return resource_id"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"@plugin.configure(name\u003d\"watcher_goal\")"},{"line_number":195,"context_line":"class WatcherGoal(types.ResourceType):"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    @classmethod"},{"line_number":198,"context_line":"    def transform(cls, clients, resource_config):"},{"line_number":199,"context_line":"        \"\"\"Transform the resource config to id."},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"        :param clients: openstack admin client handles"},{"line_number":202,"context_line":"        :param resource_config: scenario config with `id`, `name` or `regex`"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        :returns: id matching resource"},{"line_number":205,"context_line":"        \"\"\""},{"line_number":206,"context_line":"        resource_id \u003d resource_config.get(\"id\")"},{"line_number":207,"context_line":"        if not resource_id:"},{"line_number":208,"context_line":"            watcherclient \u003d clients.watcher()"},{"line_number":209,"context_line":"            resource_id \u003d types._id_from_name("},{"line_number":210,"context_line":"                resource_config\u003dresource_config,"},{"line_number":211,"context_line":"                resources\u003dwatcherclient.goal.list(),"},{"line_number":212,"context_line":"                typename\u003d\"goal\","},{"line_number":213,"context_line":"                id_attr\u003d\"uuid\")"},{"line_number":214,"context_line":"        return resource_id"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_4294088a","line":214,"range":{"start_line":171,"start_character":0,"end_line":214,"end_character":26},"updated":"2016-07-12 09:48:07.000000000","message":"Transform changes better to cover by functional tests. I mean to use them with scenarios. But at the stage of adding the client we can\u0027t say work it or not except unit tests. So I think it would be better to take away transform changes from that patch","commit_id":"909b59febc6c8ce3b51fd792cd1a60208f4e08cc"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"72fdecbdae63513d299d4947c745bfa8bb946728","unresolved":false,"context_lines":[{"line_number":168,"context_line":"                name\u003dresource_config.get(\"name\")))"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"@plugin.configure(name\u003d\"watcher_strategy\")"},{"line_number":172,"context_line":"class WatcherStrategy(types.ResourceType):"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    @classmethod"},{"line_number":175,"context_line":"    def transform(cls, clients, resource_config):"},{"line_number":176,"context_line":"        \"\"\"Transform the resource config to id."},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        :param clients: openstack admin client handles"},{"line_number":179,"context_line":"        :param resource_config: scenario config with `id`, `name` or `regex`"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        :returns: id matching resource"},{"line_number":182,"context_line":"        \"\"\""},{"line_number":183,"context_line":"        resource_id \u003d resource_config.get(\"id\")"},{"line_number":184,"context_line":"        if not resource_id:"},{"line_number":185,"context_line":"            watcherclient \u003d clients.watcher()"},{"line_number":186,"context_line":"            resource_id \u003d types._id_from_name("},{"line_number":187,"context_line":"                resource_config\u003dresource_config,"},{"line_number":188,"context_line":"                resources\u003dwatcherclient.strategy.list(),"},{"line_number":189,"context_line":"                typename\u003d\"strategy\","},{"line_number":190,"context_line":"                id_attr\u003d\"uuid\")"},{"line_number":191,"context_line":"        return resource_id"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"@plugin.configure(name\u003d\"watcher_goal\")"},{"line_number":195,"context_line":"class WatcherGoal(types.ResourceType):"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    @classmethod"},{"line_number":198,"context_line":"    def transform(cls, clients, resource_config):"},{"line_number":199,"context_line":"        \"\"\"Transform the resource config to id."},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"        :param clients: openstack admin client handles"},{"line_number":202,"context_line":"        :param resource_config: scenario config with `id`, `name` or `regex`"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        :returns: id matching resource"},{"line_number":205,"context_line":"        \"\"\""},{"line_number":206,"context_line":"        resource_id \u003d resource_config.get(\"id\")"},{"line_number":207,"context_line":"        if not resource_id:"},{"line_number":208,"context_line":"            watcherclient \u003d clients.watcher()"},{"line_number":209,"context_line":"            resource_id \u003d types._id_from_name("},{"line_number":210,"context_line":"                resource_config\u003dresource_config,"},{"line_number":211,"context_line":"                resources\u003dwatcherclient.goal.list(),"},{"line_number":212,"context_line":"                typename\u003d\"goal\","},{"line_number":213,"context_line":"                id_attr\u003d\"uuid\")"},{"line_number":214,"context_line":"        return resource_id"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_3955abc1","line":214,"range":{"start_line":171,"start_character":0,"end_line":214,"end_character":26},"in_reply_to":"1aa78d24_4294088a","updated":"2016-07-12 10:52:56.000000000","message":"Done","commit_id":"909b59febc6c8ce3b51fd792cd1a60208f4e08cc"}],"rally/task/utils.py":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"075b29fda9615ed3c607b8a01e199a064ea14b73","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    error_statuses \u003d error_statuses or [\"ERROR\"]"},{"line_number":71,"context_line":"    error_statuses \u003d map(lambda str: str.upper(), error_statuses)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def _get_from_manager(resource, id_attr\u003d\"id\"):"},{"line_number":74,"context_line":"        # catch client side errors"},{"line_number":75,"context_line":"        try:"},{"line_number":76,"context_line":"            res \u003d resource.manager.get(getattr(resource, id_attr))"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_541e7e0c","line":73,"updated":"2016-07-12 10:47:10.000000000","message":"I would recommend to move changes in rally.task.utils into separate patch","commit_id":"909b59febc6c8ce3b51fd792cd1a60208f4e08cc"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"88b598ce1380d415da710637390e13d81c831c11","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        try:"},{"line_number":213,"context_line":"            if id_attr \u003d\u003d \"id\":"},{"line_number":214,"context_line":"                resource \u003d update_resource(resource)"},{"line_number":215,"context_line":"            elif id_attr \u003d\u003d \"uuid\":"},{"line_number":216,"context_line":"                resource \u003d update_resource(resource, id_attr\u003did_attr)"},{"line_number":217,"context_line":"        except exceptions.GetResourceNotFound:"},{"line_number":218,"context_line":"            if check_deletion:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_eed07b55","line":215,"range":{"start_line":215,"start_character":31,"end_line":215,"end_character":32},"updated":"2016-07-12 09:48:07.000000000","message":"looks like here should be just else statement","commit_id":"909b59febc6c8ce3b51fd792cd1a60208f4e08cc"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"72fdecbdae63513d299d4947c745bfa8bb946728","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        try:"},{"line_number":213,"context_line":"            if id_attr \u003d\u003d \"id\":"},{"line_number":214,"context_line":"                resource \u003d update_resource(resource)"},{"line_number":215,"context_line":"            elif id_attr \u003d\u003d \"uuid\":"},{"line_number":216,"context_line":"                resource \u003d update_resource(resource, id_attr\u003did_attr)"},{"line_number":217,"context_line":"        except exceptions.GetResourceNotFound:"},{"line_number":218,"context_line":"            if check_deletion:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_b9e4fb3b","line":215,"range":{"start_line":215,"start_character":31,"end_line":215,"end_character":32},"in_reply_to":"1aa78d24_eed07b55","updated":"2016-07-12 10:52:56.000000000","message":"Done","commit_id":"909b59febc6c8ce3b51fd792cd1a60208f4e08cc"}]}
