Positional arguments:
<command>
bench Simple benchmark.
- children Display children of snapshot.
+ children Display children of an image or its
+ snapshot.
clone Clone a snapshot into a CoW child image.
config global get Get a global-level configuration override.
config global list (... ls) List global-level configuration overrides.
usage: rbd children [--pool <pool>] [--namespace <namespace>]
[--image <image>] [--snap <snap>] [--snap-id <snap-id>]
[--all] [--format <format>] [--pretty-format]
- <snap-spec>
+ <image-or-snap-spec>
- Display children of snapshot.
+ Display children of an image or its snapshot.
Positional arguments
- <snap-spec> snapshot specification
- (example:
- [<pool-name>/[<namespace-name>/]]<image-name>@<snapshot-n
- ame>)
+ <image-or-snap-spec> image or snapshot specification
+ (example:
+ [<pool-name>/[<namespace-name>/]]<image-name>[@<snap-nam
+ e>])
Optional arguments
- -p [ --pool ] arg pool name
- --namespace arg namespace name
- --image arg image name
- --snap arg snapshot name
- --snap-id arg snapshot id
- -a [ --all ] list all children of snapshot (include trash)
- --format arg output format (plain, json, or xml) [default: plain]
- --pretty-format pretty formatting (json and xml)
+ -p [ --pool ] arg pool name
+ --namespace arg namespace name
+ --image arg image name
+ --snap arg snapshot name
+ --snap-id arg snapshot id
+ -a [ --all ] list all children (include trash)
+ --format arg output format (plain, json, or xml) [default: plain]
+ --pretty-format pretty formatting (json and xml)
rbd help clone
usage: rbd clone [--pool <pool>] [--namespace <namespace>] [--image <image>]
void get_arguments(po::options_description *positional,
po::options_description *options) {
- at::add_snap_spec_options(positional, options, at::ARGUMENT_MODIFIER_NONE);
+ at::add_image_or_snap_spec_options(positional, options,
+ at::ARGUMENT_MODIFIER_NONE);
at::add_snap_id_option(options);
options->add_options()
- ("all,a", po::bool_switch(), "list all children of snapshot (include trash)");
+ ("all,a", po::bool_switch(), "list all children (include trash)");
at::add_format_options(options);
}
int execute(const po::variables_map &vm,
const std::vector<std::string> &ceph_global_init_args) {
uint64_t snap_id = LIBRADOS_SNAP_HEAD;
- auto snap_presence = utils::SNAPSHOT_PRESENCE_REQUIRED;
if (vm.count(at::SNAPSHOT_ID)) {
snap_id = vm[at::SNAPSHOT_ID].as<uint64_t>();
- snap_presence = utils::SNAPSHOT_PRESENCE_PERMITTED;
}
size_t arg_index = 0;
std::string snap_name;
int r = utils::get_pool_image_snapshot_names(
vm, at::ARGUMENT_MODIFIER_NONE, &arg_index, &pool_name, &namespace_name,
- &image_name, &snap_name, true, snap_presence, utils::SPEC_VALIDATION_NONE);
+ &image_name, &snap_name, true, utils::SNAPSHOT_PRESENCE_PERMITTED,
+ utils::SPEC_VALIDATION_NONE);
if (r < 0) {
return r;
}
return r;
}
- if (snap_id == LIBRADOS_SNAP_HEAD) {
+ if (!snap_name.empty()) {
r = image.snap_set(snap_name.c_str());
- } else {
+ } else if (snap_id != LIBRADOS_SNAP_HEAD) {
r = image.snap_set_by_id(snap_id);
}
if (r == -ENOENT) {
}
Shell::Action action(
- {"children"}, {}, "Display children of snapshot.", "", &get_arguments,
- &execute);
+ {"children"}, {}, "Display children of an image or its snapshot.", "",
+ &get_arguments, &execute);
} // namespace children
} // namespace action