]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph_manager: list_pg_missing
authorSage Weil <sage@newdream.net>
Fri, 24 Feb 2012 17:22:03 +0000 (09:22 -0800)
committerSage Weil <sage@newdream.net>
Fri, 24 Feb 2012 20:42:39 +0000 (12:42 -0800)
List missing objects for the given pgid.

teuthology/task/ceph_manager.py

index a49ce8aae86069cf46a540c831a6037d84d1abbb..cf4065d1c0ffa4355c75ef3256b91dc1e1ed377b 100644 (file)
@@ -197,6 +197,26 @@ class CephManager:
                 "\d* pgs:",
                 status).group(0).split()[0])
 
+    def list_pg_missing(self, pgid):
+        r = None
+        offset = {}
+        while True:
+            out = self.raw_cluster_cmd('--', 'pg',pgid,'list_missing',
+                                       json.dumps(offset))
+            j = json.loads('\n'.join(out.split('\n')[1:]))
+            if r is None:
+                r = j
+            else:
+                r['objects'].extend(j['objects'])
+            if not 'more' in j:
+                break
+            if j['more'] == 0:
+                break
+            offset = j['objects'][-1]['oid']
+        if 'more' in r:
+            del r['more']
+        return r
+
     def get_pg_stats(self):
         out = self.raw_cluster_cmd('--', 'pg','dump','--format=json')
         j = json.loads('\n'.join(out.split('\n')[1:]))