]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: add ceph osd pool set <pool> auid 1717/head
authorLoic Dachary <loic@dachary.org>
Wed, 23 Apr 2014 19:55:57 +0000 (21:55 +0200)
committerLoic Dachary <loic@dachary.org>
Wed, 23 Apr 2014 20:20:42 +0000 (22:20 +0200)
When a pool is created with ceph osd pool create, the auid is not
inferred from the session auid and is set to zero. Add the

  ceph osd pool set <pool> auid <int>

command to set it after it is created, and the matching get:

  ceph osd pool get <pool> auid

Signed-off-by: Loic Dachary <loic@dachary.org>
qa/workunits/cephtool/test.sh
src/mon/MonCommands.h
src/mon/OSDMonitor.cc
src/test/pybind/test_ceph_argparse.py

index 993798cd45c2b745d0c8375116f6a581b48b17f7..d5e9cef486f6099dfc28dd52e6296c18a95d40f7 100755 (executable)
@@ -457,6 +457,12 @@ ceph osd pool set pool_erasure size 4444 2>$TMPFILE
 check_response 'not change the size'
 set -e
 
+auid=5555
+ceph osd pool set data auid $auid
+ceph osd pool get data auid | grep $auid
+ceph --format=xml osd pool get data auid | grep $auid
+ceph osd pool set data auid 0
+
 ceph osd pool set data hashpspool true
 ceph osd pool set data hashpspool false
 ceph osd pool set data hashpspool 0
index 9fb83e251731c061da4763a383fbdd672acf4688..36f1e9fc7c4ecb24a35faaab7dc2187997c7f1bb 100644 (file)
@@ -552,11 +552,11 @@ COMMAND("osd pool rename " \
        "rename <srcpool> to <destpool>", "osd", "rw", "cli,rest")
 COMMAND("osd pool get " \
        "name=pool,type=CephPoolname " \
-       "name=var,type=CephChoices,strings=size|min_size|crash_replay_interval|pg_num|pgp_num|crush_ruleset|hit_set_type|hit_set_period|hit_set_count|hit_set_fpp", \
+       "name=var,type=CephChoices,strings=size|min_size|crash_replay_interval|pg_num|pgp_num|crush_ruleset|hit_set_type|hit_set_period|hit_set_count|hit_set_fpp|auid", \
        "get pool parameter <var>", "osd", "r", "cli,rest")
 COMMAND("osd pool set " \
        "name=pool,type=CephPoolname " \
-       "name=var,type=CephChoices,strings=size|min_size|crash_replay_interval|pg_num|pgp_num|crush_ruleset|hashpspool|hit_set_type|hit_set_period|hit_set_count|hit_set_fpp|debug_fake_ec_pool|target_max_bytes|target_max_objects|cache_target_dirty_ratio|cache_target_full_ratio|cache_min_flush_age|cache_min_evict_age " \
+       "name=var,type=CephChoices,strings=size|min_size|crash_replay_interval|pg_num|pgp_num|crush_ruleset|hashpspool|hit_set_type|hit_set_period|hit_set_count|hit_set_fpp|debug_fake_ec_pool|target_max_bytes|target_max_objects|cache_target_dirty_ratio|cache_target_full_ratio|cache_min_flush_age|cache_min_evict_age|auid " \
        "name=val,type=CephString " \
        "name=force,type=CephChoices,strings=--yes-i-really-mean-it,req=false", \
        "set pool parameter <var> to <val>", "osd", "rw", "cli,rest")
index fa3d9cfd5778e70633e65dfd84db2d3cc44ac3f7..78799d00ca6cd188d1868ffeec4863ee3f573509 100644 (file)
@@ -2457,6 +2457,8 @@ bool OSDMonitor::preprocess_command(MMonCommand *m)
         f->dump_int("pg_num", p->get_pg_num());
       } else if (var == "pgp_num") {
         f->dump_int("pgp_num", p->get_pgp_num());
+      } else if (var == "auid") {
+        f->dump_int("auid", p->get_auid());
       } else if (var == "size") {
         f->dump_int("size", p->get_size());
       } else if (var == "min_size") {
@@ -2490,6 +2492,8 @@ bool OSDMonitor::preprocess_command(MMonCommand *m)
         ss << "pg_num: " << p->get_pg_num();
       } else if (var == "pgp_num") {
         ss << "pgp_num: " << p->get_pgp_num();
+      } else if (var == "auid") {
+        ss << "auid: " << p->get_auid();
       } else if (var == "size") {
         ss << "size: " << p->get_size();
       } else if (var == "min_size") {
@@ -3330,6 +3334,12 @@ int OSDMonitor::prepare_command_pool_set(map<string,cmd_vartype> &cmdmap,
       return -EINVAL;
     }
     p.min_size = n;
+  } else if (var == "auid") {
+    if (interr.length()) {
+      ss << "error parsing integer value '" << val << "': " << interr;
+      return -EINVAL;
+    }
+    p.auid = n;
   } else if (var == "crash_replay_interval") {
     if (interr.length()) {
       ss << "error parsing integer value '" << val << "': " << interr;
index 3b159eede8e5fe871b0ff0c2d29fe4962e142425..e5408ef1896666f33cc2e62f58f913cffc8f65a0 100755 (executable)
@@ -998,7 +998,7 @@ class TestOSD(TestArgparse):
 
     def test_pool_get(self):
         for var in ('size', 'min_size', 'crash_replay_interval',
-                    'pg_num', 'pgp_num', 'crush_ruleset'):
+                    'pg_num', 'pgp_num', 'crush_ruleset', 'auid'):
             self.assert_valid_command(['osd', 'pool', 'get', 'poolname', var])
         assert_equal({}, validate_command(sigdict, ['osd', 'pool']))
         assert_equal({}, validate_command(sigdict, ['osd', 'pool',
@@ -1015,7 +1015,7 @@ class TestOSD(TestArgparse):
     def test_pool_set(self):
         for var in ('size', 'min_size', 'crash_replay_interval',
                     'pg_num', 'pgp_num', 'crush_ruleset',
-                    'hashpspool'):
+                    'hashpspool', 'auid'):
             self.assert_valid_command(['osd', 'pool',
                                        'set', 'poolname', var, 'value'])
         assert_equal({}, validate_command(sigdict, ['osd', 'pool',