)]}'
{"manila/share/drivers/glusterfs/heketiclient.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"04dceb0d25a227b52f83c571a380e9b17e6a3cb3","unresolved":false,"context_lines":[{"line_number":72,"context_line":"            elif resp.status_code \u003d\u003d 303:"},{"line_number":73,"context_line":"                return self.get(resp.headers[\u0027location\u0027])"},{"line_number":74,"context_line":"            elif resp.status_code \u003d\u003d 200:"},{"line_number":75,"context_line":"                if \u0027x-pending\u0027 not in resp.headers:"},{"line_number":76,"context_line":"                    return resp"},{"line_number":77,"context_line":"            else:"},{"line_number":78,"context_line":"                resp.raise_for_status()"},{"line_number":79,"context_line":"                raise exception.ShareBackendException(_("}],"source_content_type":"text/x-python","patch_set":14,"id":"7af24918_e220224c","line":76,"range":{"start_line":75,"start_character":16,"end_line":76,"end_character":31},"updated":"2016-03-01 17:59:20.000000000","message":"Is it intended that timeout for \"pending\" is absent?","commit_id":"9512de19d75d6678e7ee52849a275e3c6e15fce7"},{"author":{"_account_id":9521,"name":"Csaba Henk","email":"chenk@redhat.com","username":"chenk"},"change_message_id":"fbf22e63ca17d088a7593d9bc77607db4ece6760","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                return self.get(resp.headers[\u0027location\u0027])"},{"line_number":74,"context_line":"            elif resp.status_code \u003d\u003d 200:"},{"line_number":75,"context_line":"                if \u0027x-pending\u0027 not in resp.headers:"},{"line_number":76,"context_line":"                    return resp"},{"line_number":77,"context_line":"            else:"},{"line_number":78,"context_line":"                resp.raise_for_status()"},{"line_number":79,"context_line":"                raise exception.ShareBackendException(_("}],"source_content_type":"text/x-python","patch_set":14,"id":"7af24918_866a99ec","line":76,"in_reply_to":"7af24918_e220224c","updated":"2016-03-03 08:13:40.000000000","message":"The reference implementation:\n\nhttps://github.com/heketi/heketi/blob/1.0.2/client/api/go-client/client.go#L108-L148\n\nloops foreever.","commit_id":"9512de19d75d6678e7ee52849a275e3c6e15fce7"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"ca128831db9cb2a7e4bc5d2669761fad084e74f3","unresolved":false,"context_lines":[{"line_number":47,"context_line":"                path \u003d a[0]"},{"line_number":48,"context_line":"                path_stripped \u003d re.sub(\"\\A/+\", \"\", path)"},{"line_number":49,"context_line":"                req_url \u003d \"/\".join((self.__host__, path_stripped))"},{"line_number":50,"context_line":"                LOG.debug(\"Heketi request %(method)s to %(url)s\" % {"},{"line_number":51,"context_line":"                    \u0027method\u0027: attr.upper(), \u0027url\u0027: req_url})"},{"line_number":52,"context_line":"                resp \u003d attr_value(req_url, *a[1:], **kw)"},{"line_number":53,"context_line":"                LOG.debug(\"Heketi response: %s\" % repr(resp))"}],"source_content_type":"text/x-python","patch_set":17,"id":"9abb7d3a_bbabb71c","line":50,"range":{"start_line":50,"start_character":65,"end_line":50,"end_character":66},"updated":"2016-05-30 06:23:14.000000000","message":"Should use \u0027,\u0027 instead of \u0027%\u0027","commit_id":"d56c40811b3a2e2f18fdad4e98b8e1fbeb4d4849"},{"author":{"_account_id":9521,"name":"Csaba Henk","email":"chenk@redhat.com","username":"chenk"},"change_message_id":"aa4b725bc9245f76458934d15b1466a5703710f0","unresolved":false,"context_lines":[{"line_number":47,"context_line":"                path \u003d a[0]"},{"line_number":48,"context_line":"                path_stripped \u003d re.sub(\"\\A/+\", \"\", path)"},{"line_number":49,"context_line":"                req_url \u003d \"/\".join((self.__host__, path_stripped))"},{"line_number":50,"context_line":"                LOG.debug(\"Heketi request %(method)s to %(url)s\" % {"},{"line_number":51,"context_line":"                    \u0027method\u0027: attr.upper(), \u0027url\u0027: req_url})"},{"line_number":52,"context_line":"                resp \u003d attr_value(req_url, *a[1:], **kw)"},{"line_number":53,"context_line":"                LOG.debug(\"Heketi response: %s\" % repr(resp))"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_12151348","line":50,"in_reply_to":"9abb7d3a_bbabb71c","updated":"2016-08-01 13:01:29.000000000","message":"Done","commit_id":"d56c40811b3a2e2f18fdad4e98b8e1fbeb4d4849"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"ca128831db9cb2a7e4bc5d2669761fad084e74f3","unresolved":false,"context_lines":[{"line_number":50,"context_line":"                LOG.debug(\"Heketi request %(method)s to %(url)s\" % {"},{"line_number":51,"context_line":"                    \u0027method\u0027: attr.upper(), \u0027url\u0027: req_url})"},{"line_number":52,"context_line":"                resp \u003d attr_value(req_url, *a[1:], **kw)"},{"line_number":53,"context_line":"                LOG.debug(\"Heketi response: %s\" % repr(resp))"},{"line_number":54,"context_line":"                return resp"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        return _attr_value_host_injected"}],"source_content_type":"text/x-python","patch_set":17,"id":"9abb7d3a_5bac4b35","line":53,"range":{"start_line":53,"start_character":47,"end_line":53,"end_character":50},"updated":"2016-05-30 06:23:14.000000000","message":"Should use \u0027,\u0027 instead of \u0027%\u0027","commit_id":"d56c40811b3a2e2f18fdad4e98b8e1fbeb4d4849"},{"author":{"_account_id":9521,"name":"Csaba Henk","email":"chenk@redhat.com","username":"chenk"},"change_message_id":"aa4b725bc9245f76458934d15b1466a5703710f0","unresolved":false,"context_lines":[{"line_number":50,"context_line":"                LOG.debug(\"Heketi request %(method)s to %(url)s\" % {"},{"line_number":51,"context_line":"                    \u0027method\u0027: attr.upper(), \u0027url\u0027: req_url})"},{"line_number":52,"context_line":"                resp \u003d attr_value(req_url, *a[1:], **kw)"},{"line_number":53,"context_line":"                LOG.debug(\"Heketi response: %s\" % repr(resp))"},{"line_number":54,"context_line":"                return resp"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        return _attr_value_host_injected"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_d21edb6e","line":53,"in_reply_to":"9abb7d3a_5bac4b35","updated":"2016-08-01 13:01:29.000000000","message":"Done","commit_id":"d56c40811b3a2e2f18fdad4e98b8e1fbeb4d4849"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"ca128831db9cb2a7e4bc5d2669761fad084e74f3","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                    return resp"},{"line_number":77,"context_line":"            else:"},{"line_number":78,"context_line":"                resp.raise_for_status()"},{"line_number":79,"context_line":"                raise exception.ShareBackendException(_("},{"line_number":80,"context_line":"                    \u0027Unexpected Heketi async queue status %d\u0027"},{"line_number":81,"context_line":"                ) % resp.status_code)"},{"line_number":82,"context_line":"            time.sleep(retry_interval)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"9abb7d3a_f64d5673","line":81,"range":{"start_line":79,"start_character":16,"end_line":81,"end_character":37},"updated":"2016-05-30 06:23:14.000000000","message":"raise exception.ShareBackendException(msg\u003d....)","commit_id":"d56c40811b3a2e2f18fdad4e98b8e1fbeb4d4849"},{"author":{"_account_id":9521,"name":"Csaba Henk","email":"chenk@redhat.com","username":"chenk"},"change_message_id":"aa4b725bc9245f76458934d15b1466a5703710f0","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                resp.raise_for_status()"},{"line_number":79,"context_line":"                raise exception.ShareBackendException(_("},{"line_number":80,"context_line":"                    \u0027Unexpected Heketi async queue status %d\u0027"},{"line_number":81,"context_line":"                ) % resp.status_code)"},{"line_number":82,"context_line":"            time.sleep(retry_interval)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_922aa38e","line":81,"in_reply_to":"9abb7d3a_f64d5673","updated":"2016-08-01 13:01:29.000000000","message":"Done","commit_id":"d56c40811b3a2e2f18fdad4e98b8e1fbeb4d4849"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"ca128831db9cb2a7e4bc5d2669761fad084e74f3","unresolved":false,"context_lines":[{"line_number":85,"context_line":"def _heketi_log(f):"},{"line_number":86,"context_line":"    @six.wraps(f)"},{"line_number":87,"context_line":"    def logdebug_f(*args, **kwargs):"},{"line_number":88,"context_line":"        LOG.debug(\"Heketi op %(opname)s(*%(args)s, **%(kwargs)s)\" % {"},{"line_number":89,"context_line":"            \u0027opname\u0027: f.__name__, \u0027args\u0027: repr(args), \u0027kwargs\u0027: repr(kwargs)})"},{"line_number":90,"context_line":"        return f(*args, **kwargs)"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"9abb7d3a_1b3f63d7","line":88,"range":{"start_line":88,"start_character":66,"end_line":88,"end_character":67},"updated":"2016-05-30 06:23:14.000000000","message":"Should use \u0027,\u0027 instead of \u0027%\u0027","commit_id":"d56c40811b3a2e2f18fdad4e98b8e1fbeb4d4849"},{"author":{"_account_id":9521,"name":"Csaba Henk","email":"chenk@redhat.com","username":"chenk"},"change_message_id":"aa4b725bc9245f76458934d15b1466a5703710f0","unresolved":false,"context_lines":[{"line_number":85,"context_line":"def _heketi_log(f):"},{"line_number":86,"context_line":"    @six.wraps(f)"},{"line_number":87,"context_line":"    def logdebug_f(*args, **kwargs):"},{"line_number":88,"context_line":"        LOG.debug(\"Heketi op %(opname)s(*%(args)s, **%(kwargs)s)\" % {"},{"line_number":89,"context_line":"            \u0027opname\u0027: f.__name__, \u0027args\u0027: repr(args), \u0027kwargs\u0027: repr(kwargs)})"},{"line_number":90,"context_line":"        return f(*args, **kwargs)"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_f2195f89","line":88,"in_reply_to":"9abb7d3a_1b3f63d7","updated":"2016-08-01 13:01:29.000000000","message":"Done","commit_id":"d56c40811b3a2e2f18fdad4e98b8e1fbeb4d4849"}],"manila/share/drivers/glusterfs/layout_heketi.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"04dceb0d25a227b52f83c571a380e9b17e6a3cb3","unresolved":false,"context_lines":[{"line_number":321,"context_line":"        volid \u003d self.private_storage.get(share[\u0027id\u0027], \u0027heketi_volid\u0027)"},{"line_number":322,"context_line":"        if not volid:"},{"line_number":323,"context_line":"            raise exception.GlusterfsException(_("},{"line_number":324,"context_line":"                \"Cannot extend share backend which is not managed by Heketi.\")"},{"line_number":325,"context_line":"            )"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        voldesc \u003d self.heketi.info_volume(volid)"}],"source_content_type":"text/x-python","patch_set":14,"id":"7af24918_02042e15","line":324,"range":{"start_line":324,"start_character":31,"end_line":324,"end_character":37},"updated":"2016-03-01 17:59:20.000000000","message":"Better to specify ID of a share.","commit_id":"9512de19d75d6678e7ee52849a275e3c6e15fce7"},{"author":{"_account_id":9521,"name":"Csaba Henk","email":"chenk@redhat.com","username":"chenk"},"change_message_id":"fbf22e63ca17d088a7593d9bc77607db4ece6760","unresolved":false,"context_lines":[{"line_number":321,"context_line":"        volid \u003d self.private_storage.get(share[\u0027id\u0027], \u0027heketi_volid\u0027)"},{"line_number":322,"context_line":"        if not volid:"},{"line_number":323,"context_line":"            raise exception.GlusterfsException(_("},{"line_number":324,"context_line":"                \"Cannot extend share backend which is not managed by Heketi.\")"},{"line_number":325,"context_line":"            )"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        voldesc \u003d self.heketi.info_volume(volid)"}],"source_content_type":"text/x-python","patch_set":14,"id":"7af24918_66802d8c","line":324,"in_reply_to":"7af24918_02042e15","updated":"2016-03-03 08:13:40.000000000","message":"Done","commit_id":"9512de19d75d6678e7ee52849a275e3c6e15fce7"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"ca128831db9cb2a7e4bc5d2669761fad084e74f3","unresolved":false,"context_lines":[{"line_number":135,"context_line":"            share[\u0027id\u0027], \u0027volume\u0027))"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def _create_volume(self, size, **param):"},{"line_number":138,"context_line":"        volparam \u003d {\u0027snapshot\u0027: {"},{"line_number":139,"context_line":"            \u0027enable\u0027: True,"},{"line_number":140,"context_line":"            \u0027factor\u0027: self.configuration.glusterfs_heketi_snapshot_factor},"},{"line_number":141,"context_line":"            \u0027clusters\u0027: self.configuration.glusterfs_heketi_clusters,"},{"line_number":142,"context_line":"        }"},{"line_number":143,"context_line":"        replica \u003d self.configuration.glusterfs_heketi_volume_replica"},{"line_number":144,"context_line":"        if replica \u003c 2:"},{"line_number":145,"context_line":"            volparam[\u0027durability\u0027] \u003d {\u0027type\u0027: \"none\"}"}],"source_content_type":"text/x-python","patch_set":17,"id":"9abb7d3a_16a9fadf","line":142,"range":{"start_line":138,"start_character":8,"end_line":142,"end_character":9},"updated":"2016-05-30 06:23:14.000000000","message":"http://docs.openstack.org/developer/hacking/#dictionaries-lists","commit_id":"d56c40811b3a2e2f18fdad4e98b8e1fbeb4d4849"},{"author":{"_account_id":9521,"name":"Csaba Henk","email":"chenk@redhat.com","username":"chenk"},"change_message_id":"aa4b725bc9245f76458934d15b1466a5703710f0","unresolved":false,"context_lines":[{"line_number":139,"context_line":"            \u0027enable\u0027: True,"},{"line_number":140,"context_line":"            \u0027factor\u0027: self.configuration.glusterfs_heketi_snapshot_factor},"},{"line_number":141,"context_line":"            \u0027clusters\u0027: self.configuration.glusterfs_heketi_clusters,"},{"line_number":142,"context_line":"        }"},{"line_number":143,"context_line":"        replica \u003d self.configuration.glusterfs_heketi_volume_replica"},{"line_number":144,"context_line":"        if replica \u003c 2:"},{"line_number":145,"context_line":"            volparam[\u0027durability\u0027] \u003d {\u0027type\u0027: \"none\"}"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_320ad779","line":142,"in_reply_to":"9abb7d3a_16a9fadf","updated":"2016-08-01 13:01:29.000000000","message":"Done","commit_id":"d56c40811b3a2e2f18fdad4e98b8e1fbeb4d4849"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"ca128831db9cb2a7e4bc5d2669761fad084e74f3","unresolved":false,"context_lines":[{"line_number":157,"context_line":"            except Exception as exc:"},{"line_number":158,"context_line":"                resp \u003d getattr(exc, \u0027response\u0027, None)"},{"line_number":159,"context_line":"                if (resp is not None and"},{"line_number":160,"context_line":"                   resp.status_code \u003d\u003d 500 and"},{"line_number":161,"context_line":"                   resp.text.strip().lower() \u003d\u003d \u0027no space\u0027):"},{"line_number":162,"context_line":"                    size \u003c\u003c\u003d 1"},{"line_number":163,"context_line":"                    if size \u003c\u003d maxsize:"},{"line_number":164,"context_line":"                        continue"}],"source_content_type":"text/x-python","patch_set":17,"id":"9abb7d3a_b6910e9c","line":161,"range":{"start_line":160,"start_character":16,"end_line":161,"end_character":60},"updated":"2016-05-30 06:23:14.000000000","message":"It need 8 specs to indent.","commit_id":"d56c40811b3a2e2f18fdad4e98b8e1fbeb4d4849"},{"author":{"_account_id":9521,"name":"Csaba Henk","email":"chenk@redhat.com","username":"chenk"},"change_message_id":"aa4b725bc9245f76458934d15b1466a5703710f0","unresolved":false,"context_lines":[{"line_number":158,"context_line":"                resp \u003d getattr(exc, \u0027response\u0027, None)"},{"line_number":159,"context_line":"                if (resp is not None and"},{"line_number":160,"context_line":"                   resp.status_code \u003d\u003d 500 and"},{"line_number":161,"context_line":"                   resp.text.strip().lower() \u003d\u003d \u0027no space\u0027):"},{"line_number":162,"context_line":"                    size \u003c\u003c\u003d 1"},{"line_number":163,"context_line":"                    if size \u003c\u003d maxsize:"},{"line_number":164,"context_line":"                        continue"}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_92010309","line":161,"in_reply_to":"9abb7d3a_b6910e9c","updated":"2016-08-01 13:01:29.000000000","message":"Done","commit_id":"d56c40811b3a2e2f18fdad4e98b8e1fbeb4d4849"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"ca128831db9cb2a7e4bc5d2669761fad084e74f3","unresolved":false,"context_lines":[{"line_number":350,"context_line":"                gluster_mgr.set_quota(new_size)"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"        if xsize \u003e 0:"},{"line_number":353,"context_line":"                self.heketi.expand_volume(volid, xsize)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"    def ensure_share(self, context, share, share_server\u003dNone):"},{"line_number":356,"context_line":"        \"\"\"No op for Heketi.\"\"\""}],"source_content_type":"text/x-python","patch_set":17,"id":"9abb7d3a_b6ae2e83","line":353,"range":{"start_line":353,"start_character":0,"end_line":353,"end_character":16},"updated":"2016-05-30 06:23:14.000000000","message":"4 specs","commit_id":"d56c40811b3a2e2f18fdad4e98b8e1fbeb4d4849"},{"author":{"_account_id":9521,"name":"Csaba Henk","email":"chenk@redhat.com","username":"chenk"},"change_message_id":"aa4b725bc9245f76458934d15b1466a5703710f0","unresolved":false,"context_lines":[{"line_number":350,"context_line":"                gluster_mgr.set_quota(new_size)"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"        if xsize \u003e 0:"},{"line_number":353,"context_line":"                self.heketi.expand_volume(volid, xsize)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"    def ensure_share(self, context, share, share_server\u003dNone):"},{"line_number":356,"context_line":"        \"\"\"No op for Heketi.\"\"\""}],"source_content_type":"text/x-python","patch_set":17,"id":"bacf61ea_60059a0f","line":353,"in_reply_to":"9abb7d3a_b6ae2e83","updated":"2016-08-01 13:01:29.000000000","message":"Done","commit_id":"d56c40811b3a2e2f18fdad4e98b8e1fbeb4d4849"}]}
