]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
unittest_osdmap: create an ec pool in test osdmap
authorSage Weil <sage@redhat.com>
Fri, 15 Aug 2014 21:04:05 +0000 (14:04 -0700)
committerSage Weil <sage@redhat.com>
Fri, 15 Aug 2014 21:04:05 +0000 (14:04 -0700)
This is part of 7294e8c4df6df9d0898f82bb6e0839ed98149310.

Signed-off-by: Sage Weil <sage@redhat.com>
src/test/osd/TestOSDMap.cc

index 0ff12c80be721d9c9415926458f0675d54b6e430..274e17c019328daaa7866e6ea76a65fa7caa32ab 100644 (file)
@@ -50,13 +50,23 @@ public:
     }
     osdmap.apply_incremental(pending_inc);
 
-    // kludge to get an erasure coding rule and pool
+    // Create an EC ruleset and a pool using it
     int r = osdmap.crush->add_simple_ruleset("erasure", "default", "osd",
                                             "indep", pg_pool_t::TYPE_ERASURE,
                                             &cerr);
-    pg_pool_t *p = (pg_pool_t *)osdmap.get_pg_pool(2);
+
+    OSDMap::Incremental new_pool_inc(osdmap.get_epoch() + 1);
+    new_pool_inc.new_pool_max = osdmap.get_pool_max();
+    new_pool_inc.fsid = osdmap.get_fsid();
+    pg_pool_t empty;
+    uint64_t pool_id = ++new_pool_inc.new_pool_max;
+    pg_pool_t *p = new_pool_inc.get_new_pool(pool_id, &empty);
+    p->size = 3;
+    p->set_pg_num(64);
+    p->set_pgp_num(64);
     p->type = pg_pool_t::TYPE_ERASURE;
     p->crush_ruleset = r;
+    osdmap.apply_incremental(new_pool_inc);
   }
   unsigned int get_num_osds() { return num_osds; }