From 918b3784934c8deb2ea0808f2f1e02d46d172d6b Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Sun, 8 Feb 2015 22:13:29 -0800 Subject: [PATCH] mon: have two COMMAND two COMMAND_WITH_FLAG macros This avoids 2 separate calls to define each item and keeps the blame info intact. Signed-off-by: Sage Weil --- src/mon/MonCommands.h | 195 ++------------------ src/mon/Monitor.cc | 8 +- src/mon/Monitor.h | 1 - src/test/common/get_command_descriptions.cc | 5 +- 4 files changed, 23 insertions(+), 186 deletions(-) diff --git a/src/mon/MonCommands.h b/src/mon/MonCommands.h index 2314b2f7a6f50..c3c4990bc6de8 100644 --- a/src/mon/MonCommands.h +++ b/src/mon/MonCommands.h @@ -104,71 +104,51 @@ * type, so the monitor is expected to know the type of each argument. * See cmdparse.cc/h for more details. * - * The flags parameter for COMMAND_FLAGS macro may be: + * The flag parameter for COMMAND_WITH_FLAGS macro may be: * - * NONE - no falgs * NOFORWARD - command may not be forwarded */ -#ifndef COMMAND_FLAGS -#define COMMAND_FLAGS(flags) -#endif - /* * pg commands PgMonitor.cc */ COMMAND("pg stat", "show placement group status.", "pg", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("pg getmap", "get binary pg map to -o/stdout", "pg", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("pg send_pg_creates", "trigger pg creates to be issued",\ "pg", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("pg dump " \ "name=dumpcontents,type=CephChoices,strings=all|summary|sum|delta|pools|osds|pgs|pgs_brief,n=N,req=false", \ "show human-readable versions of pg map (only 'all' valid with plain)", "pg", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("pg dump_json " \ "name=dumpcontents,type=CephChoices,strings=all|summary|sum|pools|osds|pgs,n=N,req=false", \ "show human-readable version of pg map in json only",\ "pg", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("pg dump_pools_json", "show pg pools info in json only",\ "pg", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("pg dump_stuck " \ "name=stuckops,type=CephChoices,strings=inactive|unclean|stale|undersized|degraded,n=N,req=false " \ "name=threshold,type=CephInt,req=false", "show information about stuck pgs",\ "pg", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("pg map name=pgid,type=CephPgid", "show mapping of pg to osds", \ "pg", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("pg scrub name=pgid,type=CephPgid", "start scrub on ", \ "pg", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("pg deep-scrub name=pgid,type=CephPgid", "start deep-scrub on ", \ "pg", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("pg repair name=pgid,type=CephPgid", "start repair on ", \ "pg", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("pg debug " \ "name=debugop,type=CephChoices,strings=unfound_objects_exist|degraded_pgs_exist", \ "show debug info about pgs", "pg", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("pg force_create_pg name=pgid,type=CephPgid", \ "force creation of pg ", "pg", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("pg set_full_ratio name=ratio,type=CephFloat,range=0.0|1.0", \ "set ratio at which pgs are considered full", "pg", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("pg set_nearfull_ratio name=ratio,type=CephFloat,range=0.0|1.0", \ "set ratio at which pgs are considered nearly full", \ "pg", "rw", "cli,rest") -COMMAND_FLAGS(NONE) /* * auth commands AuthMonitor.cc @@ -177,152 +157,117 @@ COMMAND_FLAGS(NONE) COMMAND("auth export name=entity,type=CephString,req=false", \ "write keyring for requested entity, or master keyring if none given", \ "auth", "rx", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("auth get name=entity,type=CephString", \ "write keyring file with requested key", "auth", "rx", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("auth get-key name=entity,type=CephString", "display requested key", \ "auth", "rx", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("auth print-key name=entity,type=CephString", "display requested key", \ "auth", "rx", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("auth print_key name=entity,type=CephString", "display requested key", \ "auth", "rx", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("auth list", "list authentication state", "auth", "rx", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("auth import", "auth import: read keyring file from -i ", \ "auth", "rwx", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("auth add " \ "name=entity,type=CephString " \ "name=caps,type=CephString,n=N,req=false", \ "add auth info for from input file, or random key if no " \ "input is given, and/or any caps specified in the command", "auth", "rwx", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("auth get-or-create-key " \ "name=entity,type=CephString " \ "name=caps,type=CephString,n=N,req=false", \ "get, or add, key for from system/caps pairs specified in the command. If key already exists, any given caps must match the existing caps for that key.", \ "auth", "rwx", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("auth get-or-create " \ "name=entity,type=CephString " \ "name=caps,type=CephString,n=N,req=false", \ "add auth info for from input file, or random key if no input given, and/or any caps specified in the command", \ "auth", "rwx", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("auth caps " \ "name=entity,type=CephString " \ "name=caps,type=CephString,n=N", \ "update caps for from caps specified in the command", \ "auth", "rwx", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("auth del " \ "name=entity,type=CephString", \ "delete all caps for ", \ "auth", "rwx", "cli,rest") -COMMAND_FLAGS(NONE) /* * Monitor commands (Monitor.cc) */ -COMMAND("compact", "cause compaction of monitor's leveldb storage", \ - "mon", "rw", "cli,rest") -COMMAND_FLAGS(NOFORWARD) +COMMAND_WITH_FLAG("compact", "cause compaction of monitor's leveldb storage", \ + "mon", "rw", "cli,rest", NOFORWARD) COMMAND("scrub", "scrub the monitor stores", "mon", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("fsid", "show cluster FSID/UUID", "mon", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("log name=logtext,type=CephString,n=N", \ "log supplied text to the monitor log", "mon", "rw", "cli,rest") -COMMAND_FLAGS(NONE) -COMMAND("injectargs " \ - "name=injected_args,type=CephString,n=N", \ - "inject config arguments into monitor", "mon", "rw", "cli,rest") -COMMAND_FLAGS(NOFORWARD) +COMMAND_WITH_FLAG("injectargs " \ + "name=injected_args,type=CephString,n=N", \ + "inject config arguments into monitor", "mon", "rw", "cli,rest", + NOFORWARD) COMMAND("status", "show cluster status", "mon", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("health name=detail,type=CephChoices,strings=detail,req=false", \ "show cluster health", "mon", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("df name=detail,type=CephChoices,strings=detail,req=false", \ "show cluster free space stats", "mon", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("report name=tags,type=CephString,n=N,req=false", \ "report full status of cluster, optional title tag strings", \ "mon", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("quorum_status", "report status of monitor quorum", \ "mon", "r", "cli,rest") -COMMAND_FLAGS(NONE) -COMMAND("mon_status", "report status of monitors", "mon", "r", "cli,rest") -COMMAND_FLAGS(NOFORWARD) +COMMAND_WITH_FLAG("mon_status", "report status of monitors", "mon", "r", "cli,rest", + NOFORWARD) COMMAND("sync force " \ "name=validate1,type=CephChoices,strings=--yes-i-really-mean-it,req=false " \ "name=validate2,type=CephChoices,strings=--i-know-what-i-am-doing,req=false", \ "force sync of and clear monitor store", "mon", "rw", "cli,rest") -COMMAND_FLAGS(NONE) -COMMAND("heap " \ - "name=heapcmd,type=CephChoices,strings=dump|start_profiler|stop_profiler|release|stats", \ - "show heap usage info (available only if compiled with tcmalloc)", \ - "mon", "rw", "cli,rest") -COMMAND_FLAGS(NOFORWARD) +COMMAND_WITH_FLAG("heap " \ + "name=heapcmd,type=CephChoices,strings=dump|start_profiler|stop_profiler|release|stats", \ + "show heap usage info (available only if compiled with tcmalloc)", \ + "mon", "rw", "cli,rest", NOFORWARD) COMMAND("quorum name=quorumcmd,type=CephChoices,strings=enter|exit,n=1", \ "enter or exit quorum", "mon", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("tell " \ "name=target,type=CephName " \ "name=args,type=CephString,n=N", \ "send a command to a specific daemon", "mon", "rw", "cli,rest") -COMMAND_FLAGS(NONE) -COMMAND("version", "show mon daemon version", "mon", "r", "cli,rest") -COMMAND_FLAGS(NOFORWARD) +COMMAND_WITH_FLAG("version", "show mon daemon version", "mon", "r", "cli,rest", + NOFORWARD) /* * MDS commands (MDSMonitor.cc) */ COMMAND("mds stat", "show MDS status", "mds", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("mds dump " "name=epoch,type=CephInt,req=false,range=0", \ "dump info, optionally from epoch", "mds", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("mds getmap " \ "name=epoch,type=CephInt,req=false,range=0", \ "get MDS map, optionally from epoch", "mds", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("mds tell " \ "name=who,type=CephString " \ "name=args,type=CephString,n=N", \ "send command to particular mds", "mds", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("mds compat show", "show mds compatibility settings", \ "mds", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("mds stop name=who,type=CephString", "stop mds", \ "mds", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("mds deactivate name=who,type=CephString", "stop mds", \ "mds", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("mds set_max_mds " \ "name=maxmds,type=CephInt,range=0", \ "set max MDS index", "mds", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("mds set " \ "name=var,type=CephChoices,strings=max_mds|max_file_size|allow_new_snaps|inline_data " \ "name=val,type=CephString " \ "name=confirm,type=CephString,req=false", \ "set mds parameter to ", "mds", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("mds setmap " \ "name=epoch,type=CephInt,range=0", \ "set mds map; must supply correct epoch number", "mds", "rw", "cli,rest") -COMMAND_FLAGS(NONE) // arbitrary limit 0-20 below; worth standing on head to make it // relate to actual state definitions? // #include "include/ceph_fs.h" @@ -330,68 +275,53 @@ COMMAND("mds set_state " \ "name=gid,type=CephInt,range=0 " \ "name=state,type=CephInt,range=0|20", \ "set mds state of to ", "mds", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("mds fail name=who,type=CephString", \ "force mds to status failed", "mds", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("mds rm " \ "name=gid,type=CephInt,range=0 " \ "name=who,type=CephName", \ "remove nonactive mds", "mds", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("mds rmfailed name=who,type=CephInt,range=0", "remove failed mds", \ "mds", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("mds cluster_down", "take MDS cluster down", "mds", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("mds cluster_up", "bring MDS cluster up", "mds", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("mds compat rm_compat " \ "name=feature,type=CephInt,range=0", \ "remove compatible feature", "mds", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("mds compat rm_incompat " \ "name=feature,type=CephInt,range=0", \ "remove incompatible feature", "mds", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("mds add_data_pool " \ "name=pool,type=CephString", \ "add data pool ", "mds", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("mds remove_data_pool " \ "name=pool,type=CephString", \ "remove data pool ", "mds", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("mds newfs " \ "name=metadata,type=CephInt,range=0 " \ "name=data,type=CephInt,range=0 " \ "name=sure,type=CephChoices,strings=--yes-i-really-mean-it,req=false", \ "make new filesystem using pools and ", \ "mds", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("fs new " \ "name=fs_name,type=CephString " \ "name=metadata,type=CephString " \ "name=data,type=CephString ", \ "make new filesystem using named pools and ", \ "fs", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("fs rm " \ "name=fs_name,type=CephString " \ "name=sure,type=CephChoices,strings=--yes-i-really-mean-it,req=false", \ "disable the named filesystem", \ "fs", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("fs reset " \ "name=fs_name,type=CephString " \ "name=sure,type=CephChoices,strings=--yes-i-really-mean-it,req=false", \ "disaster recovery only: reset to a single-MDS map", \ "fs", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("fs ls ", \ "list filesystems", \ "fs", "r", "cli,rest") -COMMAND_FLAGS(NONE) /* * Monmap commands */ @@ -399,210 +329,165 @@ COMMAND("mon dump " \ "name=epoch,type=CephInt,range=0,req=false", \ "dump formatted monmap (optionally from epoch)", \ "mon", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("mon stat", "summarize monitor status", "mon", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("mon getmap " \ "name=epoch,type=CephInt,range=0,req=false", \ "get monmap", "mon", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("mon add " \ "name=name,type=CephString " \ "name=addr,type=CephIPAddr", \ "add new monitor named at ", "mon", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("mon remove " \ "name=name,type=CephString", \ "remove monitor named ", "mon", "rw", "cli,rest") -COMMAND_FLAGS(NONE) /* * OSD commands */ COMMAND("osd stat", "print summary of OSD map", "osd", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd dump " \ "name=epoch,type=CephInt,range=0,req=false", "print summary of OSD map", "osd", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd tree " \ "name=epoch,type=CephInt,range=0,req=false", \ "print OSD tree", "osd", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd ls " \ "name=epoch,type=CephInt,range=0,req=false", \ "show all OSD ids", "osd", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd getmap " \ "name=epoch,type=CephInt,range=0,req=false", \ "get OSD map", "osd", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd getcrushmap " \ "name=epoch,type=CephInt,range=0,req=false", \ "get CRUSH map", "osd", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd perf", \ "print dump of OSD perf summary stats", \ "osd", \ "r", \ "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd blocked-by", \ "print histogram of which OSDs are blocking their peers", \ "osd", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd getmaxosd", "show largest OSD id", "osd", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd find " \ "name=id,type=CephInt,range=0", \ "find osd in the CRUSH map and show its location", \ "osd", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd metadata " \ "name=id,type=CephInt,range=0", \ "fetch metadata for osd ", \ "osd", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd map " \ "name=pool,type=CephPoolname " \ "name=object,type=CephObjectname", \ "find pg for in ", "osd", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd scrub " \ "name=who,type=CephString", \ "initiate scrub on osd ", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd deep-scrub " \ "name=who,type=CephString", \ "initiate deep scrub on osd ", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd repair " \ "name=who,type=CephString", \ "initiate repair on osd ", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd lspools " \ "name=auid,type=CephInt,req=false", \ "list pools", "osd", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd blacklist ls", "show blacklisted clients", "osd", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd crush rule list", "list crush rules", "osd", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd crush rule ls", "list crush rules", "osd", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd crush rule dump " \ "name=name,type=CephString,goodchars=[A-Za-z0-9-_.],req=false", \ "dump crush rule (default all)", \ "osd", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd crush dump", \ "dump crush map", \ "osd", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd setcrushmap", "set crush map from input file", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd crush set", "set crush map from input file", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd crush add-bucket " \ "name=name,type=CephString,goodchars=[A-Za-z0-9-_.] " \ "name=type,type=CephString", \ "add no-parent (probably root) crush bucket of type ", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd crush rename-bucket " \ "name=srcname,type=CephString,goodchars=[A-Za-z0-9-_.] " \ "name=dstname,type=CephString,goodchars=[A-Za-z0-9-_.]", \ "rename bucket to ", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd crush set " \ "name=id,type=CephOsdName " \ "name=weight,type=CephFloat,range=0.0 " \ "name=args,type=CephString,n=N,goodchars=[A-Za-z0-9-_.=]", \ "update crushmap position and weight for to with location ", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd crush add " \ "name=id,type=CephOsdName " \ "name=weight,type=CephFloat,range=0.0 " \ "name=args,type=CephString,n=N,goodchars=[A-Za-z0-9-_.=]", \ "add or update crushmap position and weight for with and location ", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd crush create-or-move " \ "name=id,type=CephOsdName " \ "name=weight,type=CephFloat,range=0.0 " \ "name=args,type=CephString,n=N,goodchars=[A-Za-z0-9-_.=]", \ "create entry or move existing entry for at/to location ", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd crush move " \ "name=name,type=CephString,goodchars=[A-Za-z0-9-_.] " \ "name=args,type=CephString,n=N,goodchars=[A-Za-z0-9-_.=]", \ "move existing entry for to location ", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd crush link " \ "name=name,type=CephString " \ "name=args,type=CephString,n=N,goodchars=[A-Za-z0-9-_.=]", \ "link existing entry for under location ", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd crush rm " \ "name=name,type=CephString,goodchars=[A-Za-z0-9-_.] " \ "name=ancestor,type=CephString,req=false,goodchars=[A-Za-z0-9-_.]", \ "remove from crush map (everywhere, or just at )",\ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd crush remove " \ "name=name,type=CephString,goodchars=[A-Za-z0-9-_.] " \ "name=ancestor,type=CephString,req=false,goodchars=[A-Za-z0-9-_.]", \ "remove from crush map (everywhere, or just at )", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd crush unlink " \ "name=name,type=CephString,goodchars=[A-Za-z0-9-_.] " \ "name=ancestor,type=CephString,req=false,goodchars=[A-Za-z0-9-_.]", \ "unlink from crush map (everywhere, or just at )", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd crush reweight-all", "recalculate the weights for the tree to ensure they sum correctly", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd crush reweight " \ "name=name,type=CephString,goodchars=[A-Za-z0-9-_.] " \ "name=weight,type=CephFloat,range=0.0", \ "change 's weight to in crush map", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd crush reweight-subtree " \ "name=name,type=CephString,goodchars=[A-Za-z0-9-_.] " \ "name=weight,type=CephFloat,range=0.0", \ "change all leaf items beneath to in crush map", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd crush tunables " \ "name=profile,type=CephChoices,strings=legacy|argonaut|bobtail|firefly|hammer|optimal|default", \ "set crush tunables values to ", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd crush set-tunable " \ "name=tunable,type=CephChoices,strings=straw_calc_version " \ "name=value,type=CephInt", "set crush tunable to ", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd crush get-tunable " \ "name=tunable,type=CephChoices,strings=straw_calc_version", "get crush tunable ", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd crush show-tunables", \ "show current crush tunables", "osd", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd crush rule create-simple " \ "name=name,type=CephString,goodchars=[A-Za-z0-9-_.] " \ "name=root,type=CephString,goodchars=[A-Za-z0-9-_.] " \ @@ -610,126 +495,99 @@ COMMAND("osd crush rule create-simple " \ "name=mode,type=CephChoices,strings=firstn|indep,req=false", "create crush rule to start from , replicate across buckets of type , using a choose mode of (default firstn; indep best for erasure pools)", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd crush rule create-erasure " \ "name=name,type=CephString,goodchars=[A-Za-z0-9-_.] " \ "name=profile,type=CephString,req=false,goodchars=[A-Za-z0-9-_.=]", \ "create crush rule for erasure coded pool created with (default default)", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd crush rule rm " \ "name=name,type=CephString,goodchars=[A-Za-z0-9-_.] ", \ "remove crush rule ", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd setmaxosd " \ "name=newmax,type=CephInt,range=0", \ "set new maximum osd value", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd pause", "pause osd", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd unpause", "unpause osd", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd erasure-code-profile set " \ "name=name,type=CephString,goodchars=[A-Za-z0-9-_.] " \ "name=profile,type=CephString,n=N,req=false", \ "create erasure code profile with [ ...] pairs. Add a --force at the end to override an existing profile (VERY DANGEROUS)", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd erasure-code-profile get " \ "name=name,type=CephString,goodchars=[A-Za-z0-9-_.]", \ "get erasure code profile ", \ "osd", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd erasure-code-profile rm " \ "name=name,type=CephString,goodchars=[A-Za-z0-9-_.]", \ "remove erasure code profile ", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd erasure-code-profile ls", \ "list all erasure code profiles", \ "osd", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd set " \ "name=key,type=CephChoices,strings=full|pause|noup|nodown|noout|noin|nobackfill|norebalance|norecover|noscrub|nodeep-scrub|notieragent", \ "set ", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd unset " \ "name=key,type=CephChoices,strings=full|pause|noup|nodown|noout|noin|nobackfill|norebalance|norecover|noscrub|nodeep-scrub|notieragent", \ "unset ", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd cluster_snap", "take cluster snapshot (disabled)", \ "osd", "r", "") -COMMAND_FLAGS(NONE) COMMAND("osd down " \ "type=CephString,name=ids,n=N", \ "set osd(s) [...] down", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd out " \ "name=ids,type=CephString,n=N", \ "set osd(s) [...] out", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd in " \ "name=ids,type=CephString,n=N", \ "set osd(s) [...] in", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd rm " \ "name=ids,type=CephString,n=N", \ "remove osd(s) [...] in", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd reweight " \ "name=id,type=CephInt,range=0 " \ "type=CephFloat,name=weight,range=0.0|1.0", \ "reweight osd to 0.0 < < 1.0", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd pg-temp " \ "name=pgid,type=CephPgid " \ "name=id,type=CephString,n=N,req=false", \ "set pg_temp mapping pgid:[ [...]] (developers only)", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd primary-temp " \ "name=pgid,type=CephPgid " \ "name=id,type=CephString", \ "set primary_temp mapping pgid:|-1 (developers only)", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd primary-affinity " \ "name=id,type=CephOsdName " \ "type=CephFloat,name=weight,range=0.0|1.0", \ "adjust osd primary-affinity from 0.0 <= <= 1.0", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd lost " \ "name=id,type=CephInt,range=0 " \ "name=sure,type=CephChoices,strings=--yes-i-really-mean-it,req=false", \ "mark osd as permanently lost. THIS DESTROYS DATA IF NO MORE REPLICAS EXIST, BE CAREFUL", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd create " \ "name=uuid,type=CephUUID,req=false", \ "create new osd (with optional UUID)", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd blacklist " \ "name=blacklistop,type=CephChoices,strings=add|rm " \ "name=addr,type=CephEntityAddr " \ "name=expire,type=CephFloat,range=0.0,req=false", \ "add (optionally until seconds from now) or remove from blacklist", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd pool mksnap " \ "name=pool,type=CephPoolname " \ "name=snap,type=CephString", \ "make snapshot in ", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd pool rmsnap " \ "name=pool,type=CephPoolname " \ "name=snap,type=CephString", \ "remove snapshot from ", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd pool ls " \ "name=detail,type=CephChoices,strings=detail,req=false", \ "list pools", "osd", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd pool create " \ "name=pool,type=CephPoolname " \ "name=pg_num,type=CephInt,range=0 " \ @@ -739,31 +597,26 @@ COMMAND("osd pool create " \ "name=ruleset,type=CephString,req=false " \ "name=expected_num_objects,type=CephInt,req=false", \ "create pool", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd pool delete " \ "name=pool,type=CephPoolname " \ "name=pool2,type=CephPoolname,req=false " \ "name=sure,type=CephChoices,strings=--yes-i-really-really-mean-it,req=false", \ "delete pool", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd pool rename " \ "name=srcpool,type=CephPoolname " \ "name=destpool,type=CephPoolname", \ "rename to ", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) 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|auid|target_max_objects|target_max_bytes|cache_target_dirty_ratio|cache_target_full_ratio|cache_min_flush_age|cache_min_evict_age|erasure_code_profile|min_read_recency_for_promote|write_fadvise_dontneed", \ "get pool parameter ", "osd", "r", "cli,rest") -COMMAND_FLAGS(NONE) 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|nodelete|nopgchange|nosizechange|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|min_read_recency_for_promote|write_fadvise_dontneed " \ "name=val,type=CephString " \ "name=force,type=CephChoices,strings=--yes-i-really-mean-it,req=false", \ "set pool parameter to ", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) // 'val' is a CephString because it can include a unit. Perhaps // there should be a Python type for validation/conversion of strings // with units. @@ -772,36 +625,29 @@ COMMAND("osd pool set-quota " \ "name=field,type=CephChoices,strings=max_objects|max_bytes " \ "name=val,type=CephString", "set object or byte limit on pool", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd pool get-quota " \ "name=pool,type=CephPoolname ", "obtain object or byte limits for pool", "osd", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd pool stats " \ "name=name,type=CephString,req=false", "obtain stats from all pools, or from specified pool", "osd", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd reweight-by-utilization " \ "name=oload,type=CephInt,range=100,req=false", \ "reweight OSDs by utilization [overload-percentage-for-consideration, default 120]", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd reweight-by-pg " \ "name=oload,type=CephInt,range=100 " \ "name=pools,type=CephPoolname,n=N,req=false", \ "reweight OSDs by PG distribution [overload-percentage-for-consideration, default 120]", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd thrash " \ "name=num_epochs,type=CephInt,range=0", \ "thrash OSDs for ", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd df " \ "name=output_method,type=CephChoices,strings=plain|tree,req=false", \ "show OSD utilization", "osd", "r", "cli,rest") -COMMAND_FLAGS(NONE) // tiering COMMAND("osd tier add " \ @@ -810,27 +656,22 @@ COMMAND("osd tier add " \ "name=force_nonempty,type=CephChoices,strings=--force-nonempty,req=false", "add the tier (the second one) to base pool (the first one)", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd tier remove " \ "name=pool,type=CephPoolname " \ "name=tierpool,type=CephPoolname", "remove the tier (the second one) from base pool (the first one)", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd tier cache-mode " \ "name=pool,type=CephPoolname " \ "name=mode,type=CephChoices,strings=none|writeback|forward|readonly|readforward|readproxy", \ "specify the caching mode for cache tier ", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd tier set-overlay " \ "name=pool,type=CephPoolname " \ "name=overlaypool,type=CephPoolname", \ "set the overlay pool for base pool to be ", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd tier remove-overlay " \ "name=pool,type=CephPoolname ", \ "remove the overlay pool for base pool ", "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("osd tier add-cache " \ "name=pool,type=CephPoolname " \ @@ -838,7 +679,6 @@ COMMAND("osd tier add-cache " \ "name=size,type=CephInt,range=0", \ "add a cache (the second one) of size to existing pool (the first one)", \ "osd", "rw", "cli,rest") -COMMAND_FLAGS(NONE) /* * mon/ConfigKeyService.cc @@ -847,19 +687,14 @@ COMMAND_FLAGS(NONE) COMMAND("config-key get " \ "name=key,type=CephString", \ "get ", "config-key", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("config-key put " \ "name=key,type=CephString " \ "name=val,type=CephString,req=false", \ "put , value ", "config-key", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("config-key del " \ "name=key,type=CephString", \ "delete ", "config-key", "rw", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("config-key exists " \ "name=key,type=CephString", \ "check for 's existence", "config-key", "r", "cli,rest") -COMMAND_FLAGS(NONE) COMMAND("config-key list ", "list keys", "config-key", "r", "cli,rest") -COMMAND_FLAGS(NONE) diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index f9448c7e4bb7b..f1e4282d307ee 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -97,12 +97,12 @@ const string Monitor::MONITOR_STORE_PREFIX = "monitor_store"; #undef COMMAND -#undef COMMAND_FLAGS +#undef COMMAND_WITH_FLAG MonCommand mon_commands[] = { #define COMMAND(parsesig, helptext, modulename, req_perms, avail) \ - {parsesig, helptext, modulename, req_perms, avail, -#define COMMAND_FLAGS(flag) \ - MonCommand::FLAG_##flag}, + {parsesig, helptext, modulename, req_perms, avail, 0}, +#define COMMAND_WITH_FLAG(parsesig, helptext, modulename, req_perms, avail, flag) \ + {parsesig, helptext, modulename, req_perms, avail, MonCommand::FLAG_##flag}, #include }; #undef COMMAND diff --git a/src/mon/Monitor.h b/src/mon/Monitor.h index 3541232b050b0..0d3978a5e7831 100644 --- a/src/mon/Monitor.h +++ b/src/mon/Monitor.h @@ -938,7 +938,6 @@ struct MonCommand { // MonCommand flags enum { - FLAG_NONE = (0 << 0), FLAG_NOFORWARD = (1 << 0), }; diff --git a/src/test/common/get_command_descriptions.cc b/src/test/common/get_command_descriptions.cc index 56d5359deaa64..7cc5b6ab1dec8 100644 --- a/src/test/common/get_command_descriptions.cc +++ b/src/test/common/get_command_descriptions.cc @@ -54,9 +54,12 @@ static void json_print(const MonCommand *mon_commands, int size) static void all() { #undef COMMAND +#undef COMMAND_WITH_FLAG MonCommand mon_commands[] = { #define COMMAND(parsesig, helptext, modulename, req_perms, avail) \ - {parsesig, helptext, modulename, req_perms, avail}, + {parsesig, helptext, modulename, req_perms, avail, 0}, +#define COMMAND_WITH_FLAG(parsesig, helptext, modulename, req_perms, avail, flag) \ + {parsesig, helptext, modulename, req_perms, avail, MonCommand::FLAG_##flag}, #include }; -- 2.39.5