From aae16ab3554a717decf1f4a8e6bb917da194e60b Mon Sep 17 00:00:00 2001 From: Loic Dachary Date: Wed, 23 Apr 2014 21:55:57 +0200 Subject: [PATCH] mon: add ceph osd pool set auid 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 auid command to set it after it is created, and the matching get: ceph osd pool get auid Signed-off-by: Loic Dachary --- qa/workunits/cephtool/test.sh | 6 ++++++ src/mon/MonCommands.h | 4 ++-- src/mon/OSDMonitor.cc | 10 ++++++++++ src/test/pybind/test_ceph_argparse.py | 4 ++-- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/qa/workunits/cephtool/test.sh b/qa/workunits/cephtool/test.sh index 993798cd45c2b..d5e9cef486f60 100755 --- a/qa/workunits/cephtool/test.sh +++ b/qa/workunits/cephtool/test.sh @@ -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 diff --git a/src/mon/MonCommands.h b/src/mon/MonCommands.h index 9fb83e251731c..36f1e9fc7c4ec 100644 --- a/src/mon/MonCommands.h +++ b/src/mon/MonCommands.h @@ -552,11 +552,11 @@ COMMAND("osd pool rename " \ "rename to ", "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 ", "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 to ", "osd", "rw", "cli,rest") diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index fa3d9cfd5778e..78799d00ca6cd 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -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 &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; diff --git a/src/test/pybind/test_ceph_argparse.py b/src/test/pybind/test_ceph_argparse.py index 3b159eede8e5f..e5408ef189666 100755 --- a/src/test/pybind/test_ceph_argparse.py +++ b/src/test/pybind/test_ceph_argparse.py @@ -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', -- 2.39.5