)]}'
{"gnocchi/storage/ceph.py":[{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"94463572619252887add1cd8d5eff0857c603672","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                        self.ioctx.rm_xattr(container, xattr)"},{"line_number":75,"context_line":"                # if no xattrs but object exists, it means it already"},{"line_number":76,"context_line":"                # migrated to v3 and now upgrade to use single object"},{"line_number":77,"context_line":"                else:"},{"line_number":78,"context_line":"                    with rados.ReadOpCtx() as op:"},{"line_number":79,"context_line":"                        omaps, ret \u003d self.ioctx.get_omap_vals(op, \"\", \"\", -1)"},{"line_number":80,"context_line":"                        self.ioctx.operate_read_op(op, container)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a3c09a3_7b274164","line":77,"range":{"start_line":77,"start_character":16,"end_line":77,"end_character":21},"updated":"2017-01-23 09:25:55.000000000","message":"Shoudn\u0027t we do both in a row when coming from v2 ?","commit_id":"37d84e40464e85cdb3a90ece6ff64fb60d1d02ac"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"453203691e4af5dfb09c367b67e5cc7f712846ab","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                        self.ioctx.rm_xattr(container, xattr)"},{"line_number":75,"context_line":"                # if no xattrs but object exists, it means it already"},{"line_number":76,"context_line":"                # migrated to v3 and now upgrade to use single object"},{"line_number":77,"context_line":"                else:"},{"line_number":78,"context_line":"                    with rados.ReadOpCtx() as op:"},{"line_number":79,"context_line":"                        omaps, ret \u003d self.ioctx.get_omap_vals(op, \"\", \"\", -1)"},{"line_number":80,"context_line":"                        self.ioctx.operate_read_op(op, container)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_aa349b49","line":77,"range":{"start_line":77,"start_character":16,"end_line":77,"end_character":21},"in_reply_to":"5a3905b3_c9e3c7a2","updated":"2017-01-23 18:59:33.000000000","message":"gotcha","commit_id":"37d84e40464e85cdb3a90ece6ff64fb60d1d02ac"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"8399164ccf34d7329a53286b4215852a3b292648","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                        self.ioctx.rm_xattr(container, xattr)"},{"line_number":75,"context_line":"                # if no xattrs but object exists, it means it already"},{"line_number":76,"context_line":"                # migrated to v3 and now upgrade to use single object"},{"line_number":77,"context_line":"                else:"},{"line_number":78,"context_line":"                    with rados.ReadOpCtx() as op:"},{"line_number":79,"context_line":"                        omaps, ret \u003d self.ioctx.get_omap_vals(op, \"\", \"\", -1)"},{"line_number":80,"context_line":"                        self.ioctx.operate_read_op(op, container)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a3905b3_c9e3c7a2","line":77,"range":{"start_line":77,"start_character":16,"end_line":77,"end_character":21},"in_reply_to":"7a3c09a3_7b274164","updated":"2017-01-23 13:58:14.000000000","message":"hmm... the logic should be\n\n1. check gnocchi_\u003cid\u003e_container object for xattr\n2a. if xattr exists, it\u0027s v2, so rewrite xattrs to gnocchi_\u003cid\u003e_none and delete xattrs\n2b. if no xattrs, its\u0027 v3, so rewrite omaps to gnocchi_\u003cid\u003e_none\n3. delete gnocchi_\u003cid\u003e_container\n\ni guess i don\u0027t need to delete xattrs in 2a since i\u0027m going to delete entire object anyways?","commit_id":"37d84e40464e85cdb3a90ece6ff64fb60d1d02ac"}]}
