]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/librbd/api/Migration.h
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / librbd / api / Migration.h
index 8d24e310d81365d7ed141bfd4bdf9b997907f458..dd70dcc238e3c7dee609f874ded0640f6b97e473 100644 (file)
@@ -23,6 +23,10 @@ public:
   static int prepare(librados::IoCtx& io_ctx, const std::string &image_name,
                      librados::IoCtx& dest_io_ctx,
                      const std::string &dest_image_name, ImageOptions& opts);
+  static int prepare_import(const std::string& source_spec,
+                            librados::IoCtx& dest_io_ctx,
+                            const std::string &dest_image_name,
+                            ImageOptions& opts);
   static int execute(librados::IoCtx& io_ctx, const std::string &image_name,
                      ProgressContext &prog_ctx);
   static int abort(librados::IoCtx& io_ctx, const std::string &image_name,
@@ -32,15 +36,13 @@ public:
   static int status(librados::IoCtx& io_ctx, const std::string &image_name,
                     image_migration_status_t *status);
 
+  static int get_source_spec(ImageCtxT* image_ctx, std::string* source_spec);
+
 private:
   CephContext* m_cct;
-  ImageCtxT *m_src_image_ctx;
-  librados::IoCtx m_src_io_ctx;
-  librados::IoCtx &m_dst_io_ctx;
-  bool m_src_old_format;
-  std::string m_src_image_name;
-  std::string m_src_image_id;
-  std::string m_src_header_oid;
+  ImageCtx* m_src_image_ctx;
+  ImageCtx* m_dst_image_ctx;
+  librados::IoCtx m_dst_io_ctx;
   std::string m_dst_image_name;
   std::string m_dst_image_id;
   std::string m_dst_header_oid;
@@ -53,44 +55,46 @@ private:
   cls::rbd::MigrationSpec m_src_migration_spec;
   cls::rbd::MigrationSpec m_dst_migration_spec;
 
-  Migration(ImageCtxT *image_ctx, librados::IoCtx& dest_io_ctx,
-            const std::string &dest_image_name, const std::string &dst_image_id,
-            ImageOptions& opts, bool flatten, bool mirroring,
-            cls::rbd::MirrorImageMode mirror_image_mode,
-            cls::rbd::MigrationState state, const std::string &state_desc,
-            ProgressContext *prog_ctx);
+  Migration(ImageCtx* src_image_ctx, ImageCtx* dst_image_ctx,
+            const cls::rbd::MigrationSpec& dst_migration_spec,
+            ImageOptions& opts, ProgressContext *prog_ctx);
 
   int prepare();
+  int prepare_import();
   int execute();
   int abort();
   int commit();
   int status(image_migration_status_t *status);
 
+  int set_state(ImageCtxT* image_ctx, const std::string& image_description,
+                cls::rbd::MigrationState state,
+                const std::string &description);
   int set_state(cls::rbd::MigrationState state, const std::string &description);
 
-  int list_src_snaps(std::vector<librbd::snap_info_t> *snaps);
-  int validate_src_snaps();
-  int disable_mirroring(ImageCtxT *image_ctx, bool *was_enabled,
+  int list_src_snaps(ImageCtxT* image_ctx,
+                     std::vector<librbd::snap_info_t> *snaps);
+  int validate_src_snaps(ImageCtxT* image_ctx);
+  int disable_mirroring(ImageCtxT* image_ctx, bool *was_enabled,
                         cls::rbd::MirrorImageMode *mirror_image_mode);
-  int enable_mirroring(ImageCtxT *image_ctx, bool was_enabled,
+  int enable_mirroring(ImageCtxTimage_ctx, bool was_enabled,
                        cls::rbd::MirrorImageMode mirror_image_mode);
-  int set_migration();
-  int unlink_src_image();
-  int relink_src_image();
-  int create_dst_image();
-  int remove_group(ImageCtxT *image_ctx, group_info_t *group_info);
-  int add_group(ImageCtxT *image_ctx, group_info_t &group_info);
+  int set_src_migration(ImageCtxT* image_ctx);
+  int unlink_src_image(ImageCtxT* image_ctx);
+  int relink_src_image(ImageCtxT* image_ctx);
+  int create_dst_image(ImageCtxT** image_ctx);
+  int remove_group(ImageCtxTimage_ctx, group_info_t *group_info);
+  int add_group(ImageCtxTimage_ctx, group_info_t &group_info);
   int update_group(ImageCtxT *from_image_ctx, ImageCtxT *to_image_ctx);
-  int remove_migration(ImageCtxT *image_ctx);
+  int remove_migration(ImageCtxTimage_ctx);
   int relink_children(ImageCtxT *from_image_ctx, ImageCtxT *to_image_ctx);
-  int remove_src_image();
-
-  int v1_set_migration();
-  int v2_set_migration();
-  int v1_unlink_src_image();
-  int v2_unlink_src_image();
-  int v1_relink_src_image();
-  int v2_relink_src_image();
+  int remove_src_image(ImageCtxT** image_ctx);
+
+  int v1_set_src_migration(ImageCtxT* image_ctx);
+  int v2_set_src_migration(ImageCtxT* image_ctx);
+  int v1_unlink_src_image(ImageCtxT* image_ctx);
+  int v2_unlink_src_image(ImageCtxT* image_ctx);
+  int v1_relink_src_image(ImageCtxT* image_ctx);
+  int v2_relink_src_image(ImageCtxT* image_ctx);
 
   int relink_child(ImageCtxT *from_image_ctx, ImageCtxT *to_image_ctx,
                    const librbd::snap_info_t &src_snap,