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();
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)) {
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));
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;
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)