monmaptool, osdmaptool: fix double-dash handling

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
This commit is contained in:
Colin Patrick McCabe 2011-09-06 11:34:21 -07:00
parent 1a1eab2303
commit 39538d73eb
4 changed files with 27 additions and 14 deletions

View File

@ -54,9 +54,6 @@ int main(int argc, const char **argv)
std::string val;
for (std::vector<const char*>::iterator i = args.begin(); i != args.end(); ) {
if (ceph_argparse_double_dash(args, i)) {
if (i != args.end()) {
fn = *i;
}
break;
} else if (ceph_argparse_flag(args, i, "-h", "--help", (char*)NULL)) {
usage();
@ -68,7 +65,8 @@ int main(int argc, const char **argv)
clobber = true;
} else if (ceph_argparse_flag(args, i, "--add", (char*)NULL)) {
string name = *i;
if (++i == args.end())
i = args.erase(i);
if (i == args.end())
usage();
entity_addr_t addr;
if (!addr.parse(*i)) {
@ -79,19 +77,23 @@ int main(int argc, const char **argv)
addr.set_port(CEPH_MON_PORT);
add[name] = addr;
modified = true;
++i;
i = args.erase(i);
} else if (ceph_argparse_witharg(args, i, &val, "--rm", (char*)NULL)) {
rm.push_back(val);
modified = true;
} else if (fn.empty()) {
fn = *i++;
} else {
cerr << "invalid argument: '" << *i << "'" << std::endl;
usage();
++i;
}
}
if (fn.empty())
if (args.size() < 1) {
cerr << me << ": must specify monmap filename" << std::endl;
usage();
}
else if (args.size() > 1) {
cerr << me << ": too many arguments" << std::endl;
usage();
}
fn = args[0];
MonMap monmap(ceph_clock_now(g_ceph_context));

View File

@ -117,16 +117,19 @@ int main(int argc, const char **argv)
test_map_object = val;
} else if (ceph_argparse_flag(args, i, "--test_crush", (char*)NULL)) {
test_crush = true;
} else if (fn.empty()) {
fn = *i++;
} else {
usage();
++i;
}
}
if (fn.empty()) {
if (args.size() < 1) {
cerr << me << ": must specify osdmap filename" << std::endl;
usage();
}
else if (args.size() > 1) {
cerr << me << ": too many arguments" << std::endl;
usage();
}
fn = args[0];
OSDMap osdmap;
bufferlist bl;

View File

@ -9,3 +9,10 @@
fsid [0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} (re)
last_changed \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d+ (re)
created \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d+ (re)
$ monmaptool --print -- mymonmap
monmaptool: monmap file mymonmap
epoch 1
fsid [0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} (re)
last_changed \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d+ (re)
created \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d+ (re)

View File

@ -1,3 +1,4 @@
$ monmaptool
monmaptool: must specify monmap filename
usage: [--print] [--create [--clobber]] [--add name 1.2.3.4:567] [--rm name] <mapfilename>
[1]