]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/tools/rbd/Utils.h
update sources to ceph Nautilus 14.2.1
[ceph.git] / ceph / src / tools / rbd / Utils.h
index 5b61109b1cb6e214cf0ff14ed46680d9739c61cc..81ea2c714302cb6fbba224949f7334cb6fee33c0 100644 (file)
@@ -92,61 +92,39 @@ void aio_context_callback(librbd::completion_t completion, void *arg);
 int read_string(int fd, unsigned max, std::string *out);
 
 int extract_spec(const std::string &spec, std::string *pool_name,
-                 std::string *image_name, std::string *snap_name,
-                 SpecValidation spec_validation);
-
-int extract_group_spec(const std::string &spec,
-                      std::string *pool_name,
-                      std::string *group_name);
-
-int extract_image_id_spec(const std::string &spec, std::string *pool_name,
-                          std::string *image_id);
+                 std::string *namespace_name, std::string *name,
+                 std::string *snap_name, SpecValidation spec_validation);
 
 std::string get_positional_argument(
     const boost::program_options::variables_map &vm, size_t index);
 
 std::string get_default_pool_name();
-std::string get_pool_name(const boost::program_options::variables_map &vm,
-                          size_t *arg_index);
+int get_pool_and_namespace_names(
+    const boost::program_options::variables_map &vm,
+    bool default_empty_pool_name, bool validate_pool_name,
+    std::string* pool_name, std::string* namespace_name, size_t *arg_index);
 
 int get_pool_image_snapshot_names(
     const boost::program_options::variables_map &vm,
     argument_types::ArgumentModifier mod, size_t *spec_arg_index,
-    std::string *pool_name, std::string *image_name, std::string *snap_name,
-    SnapshotPresence snapshot_presence, SpecValidation spec_validation,
-    bool image_required = true);
-
-int get_pool_snapshot_names(const boost::program_options::variables_map &vm,
-                            argument_types::ArgumentModifier mod,
-                            size_t *spec_arg_index, std::string *pool_name,
-                            std::string *snap_name,
-                            SnapshotPresence snapshot_presence,
-                            SpecValidation spec_validation);
-
-int get_special_pool_group_names(const boost::program_options::variables_map &vm,
-                                size_t *arg_index,
-                                std::string *group_pool_name,
-                                std::string *group_name);
-
-int get_special_pool_image_names(const boost::program_options::variables_map &vm,
-                                size_t *arg_index,
-                                std::string *image_pool_name,
-                                std::string *image_name);
-
-int get_pool_image_id(const boost::program_options::variables_map &vm,
-                     size_t *arg_index, std::string *image_pool_name,
-                     std::string *image_id);
+    std::string *pool_name, std::string *namespace_name,
+    std::string *image_name, std::string *snap_name, bool image_name_required,
+    SnapshotPresence snapshot_presence, SpecValidation spec_validation);
 
-int get_pool_group_names(const boost::program_options::variables_map &vm,
-                        argument_types::ArgumentModifier mod,
-                        size_t *spec_arg_index,
-                        std::string *pool_name,
-                        std::string *group_name);
-
-int get_pool_journal_names(
+int get_pool_generic_snapshot_names(
     const boost::program_options::variables_map &vm,
     argument_types::ArgumentModifier mod, size_t *spec_arg_index,
-    std::string *pool_name, std::string *journal_name);
+    const std::string& pool_key, std::string *pool_name,
+    std::string *namespace_name, const std::string& generic_key,
+    const std::string& generic_key_desc, std::string *generic_name,
+    std::string *snap_name, bool generic_name_required,
+    SnapshotPresence snapshot_presence, SpecValidation spec_validation);
+
+int get_pool_image_id(const boost::program_options::variables_map &vm,
+                      size_t *spec_arg_index,
+                      std::string *pool_name,
+                      std::string *namespace_name,
+                      std::string *image_id);
 
 int validate_snapshot_name(argument_types::ArgumentModifier mod,
                            const std::string &snap_name,
@@ -159,22 +137,29 @@ int get_image_options(const boost::program_options::variables_map &vm,
 int get_journal_options(const boost::program_options::variables_map &vm,
                        librbd::ImageOptions *opts);
 
+int get_flatten_option(const boost::program_options::variables_map &vm,
+                       librbd::ImageOptions *opts);
+
 int get_image_size(const boost::program_options::variables_map &vm,
                    uint64_t *size);
 
 int get_path(const boost::program_options::variables_map &vm,
-             const std::string &positional_path, std::string *path);
+             size_t *arg_index, std::string *path);
 
 int get_formatter(const boost::program_options::variables_map &vm,
                   argument_types::Format::Formatter *formatter);
 
 void init_context();
 
-int init(const std::string &pool_name, librados::Rados *rados,
-         librados::IoCtx *io_ctx);
+int init_rados(librados::Rados *rados);
 
+int init(const std::string &pool_name, const std::string& namespace_name,
+         librados::Rados *rados, librados::IoCtx *io_ctx);
 int init_io_ctx(librados::Rados &rados, const std::string &pool_name,
-                librados::IoCtx *io_ctx);
+                const std::string& namespace_name, librados::IoCtx *io_ctx);
+int set_namespace(const std::string& namespace_name, librados::IoCtx *io_ctx);
+
+void disable_cache();
 
 int open_image(librados::IoCtx &io_ctx, const std::string &image_name,
                bool read_only, librbd::Image *image);
@@ -183,6 +168,7 @@ int open_image_by_id(librados::IoCtx &io_ctx, const std::string &image_id,
                      bool read_only, librbd::Image *image);
 
 int init_and_open_image(const std::string &pool_name,
+                        const std::string &namespace_name,
                         const std::string &image_name,
                         const std::string &image_id,
                         const std::string &snap_name, bool read_only,
@@ -198,9 +184,8 @@ void calc_sparse_extent(const bufferptr &bp,
                         size_t *write_length,
                        bool *zeroed);
 
-bool check_if_image_spec_present(const boost::program_options::variables_map &vm,
-                                 argument_types::ArgumentModifier mod,
-                                 size_t spec_arg_index);
+bool is_not_user_snap_namespace(librbd::Image* image,
+                                const librbd::snap_info_t &snap_info);
 
 std::string image_id(librbd::Image& image);