]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
Merge pull request #9151 from fullerdj/wip-djf-15706
authorJason Dillaman <dillaman@redhat.com>
Thu, 16 Jun 2016 18:05:16 +0000 (14:05 -0400)
committerGitHub <noreply@github.com>
Thu, 16 Jun 2016 18:05:16 +0000 (14:05 -0400)
rbd: add methods to set and get snapshot limits

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
22 files changed:
1  2 
src/cls/rbd/cls_rbd.cc
src/cls/rbd/cls_rbd_client.cc
src/cls/rbd/cls_rbd_client.h
src/include/rbd/librbd.h
src/include/rbd/librbd.hpp
src/librbd/CMakeLists.txt
src/librbd/Makefile.am
src/librbd/Operations.cc
src/librbd/Operations.h
src/librbd/internal.cc
src/librbd/internal.h
src/librbd/journal/Replay.cc
src/librbd/librbd.cc
src/pybind/rbd/rbd.pyx
src/test/cli/rbd/help.t
src/test/cls_rbd/test_cls_rbd.cc
src/test/librbd/test_librbd.cc
src/test/pybind/test_rbd.py
src/tools/rbd/ArgumentTypes.cc
src/tools/rbd/ArgumentTypes.h
src/tools/rbd/action/Snap.cc
src/tracing/librbd.tp

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index bd676be5fd0df7096e395715d05eab6415f276d8,74f4b98dca9df25876d655ebf10bc8d4dbad0747..d115bfd489e135cae17501855d3e8e40ec3ee994
@@@ -135,9 -125,11 +135,11 @@@ namespace librbd 
    int is_exclusive_lock_owner(ImageCtx *ictx, bool *is_owner);
  
    int remove(librados::IoCtx& io_ctx, const char *imgname,
 -           ProgressContext& prog_ctx);
 +           ProgressContext& prog_ctx, bool force=false);
    int snap_list(ImageCtx *ictx, std::vector<snap_info_t>& snaps);
    int snap_exists(ImageCtx *ictx, const char *snap_name, bool *exists);
+   int snap_get_limit(ImageCtx *ictx, uint64_t *limit);
+   int snap_set_limit(ImageCtx *ictx, uint64_t limit);
    int snap_is_protected(ImageCtx *ictx, const char *snap_name,
                        bool *is_protected);
    int copy(ImageCtx *ictx, IoCtx& dest_md_ctx, const char *destname,
index c57202a0ba31b1dad9331a75900d58a496471606,4bc714ce9fefe26fde49b306e096af7d501cb86f..8576e2ab3c236ded4ebabafa2cca1eb745a5dcea
@@@ -86,15 -86,11 +86,19 @@@ struct ExecuteOp : public Context 
                                            on_op_complete);
    }
  
+   void execute(const journal::SnapLimitEvent &_) {
+     image_ctx.operations->execute_snap_set_limit(event.limit, on_op_complete);
+   }
    virtual void finish(int r) override {
 +    CephContext *cct = image_ctx.cct;
 +    if (r < 0) {
 +      lderr(cct) << "ExecuteOp: " << __func__ << ": r=" << r << dendl;
 +      on_op_complete->complete(r);
 +      return;
 +    }
 +
 +    ldout(cct, 20) << "ExecuteOp: " << __func__ << dendl;
      RWLock::RLocker owner_locker(image_ctx.owner_lock);
      execute(event);
    }
Simple merge
index 5b63c41d8810781f4acf0542cfcab383798f3773,ba8910ebfa6e12bc7d7cd453c74ce098a7cd1026..52727bf39e481f3ee5cbbe0e3e4f9a17b036d9f8
@@@ -38,9 -33,11 +38,12 @@@ cdef extern from "Python.h"
      char* PyBytes_AsString(PyObject *string) except NULL
      int _PyBytes_Resize(PyObject **string, Py_ssize_t newsize) except -1
  
 -ctypedef int (*librbd_progress_fn_t)(uint64_t offset, uint64_t total, void* ptr)
 +cdef extern from "time.h":
 +    ctypedef long int time_t
  
+ cdef extern from "limits.h":
+     cdef uint64_t INT64_MAX
  cdef extern from "rbd/librbd.h" nogil:
      enum:
          _RBD_FEATURE_LAYERING "RBD_FEATURE_LAYERING"
Simple merge
Simple merge
Simple merge
index e4ffaab9c80934f2e2d0104a88fb0bd0b50ddfc0,bc34b08406c326d99da7d3fde301b3c32de07e83..d91d3d9f376ca7d40f90ccbff73687831473b73c
@@@ -13,12 -12,9 +13,12 @@@ from rados import (Rados
                     LIBRADOS_OP_FLAG_FADVISE_RANDOM)
  from rbd import (RBD, Image, ImageNotFound, InvalidArgument, ImageExists,
                   ImageBusy, ImageHasSnapshots, ReadOnlyImage,
-                  FunctionNotSupported, ArgumentOutOfRange,
+                  FunctionNotSupported, ArgumentOutOfRange, DiskQuotaExceeded,
                   RBD_FEATURE_LAYERING, RBD_FEATURE_STRIPINGV2,
 -                 RBD_FEATURE_EXCLUSIVE_LOCK)
 +                 RBD_FEATURE_EXCLUSIVE_LOCK, RBD_FEATURE_JOURNALING,
 +                 RBD_MIRROR_MODE_DISABLED, RBD_MIRROR_MODE_IMAGE,
 +                 RBD_MIRROR_MODE_POOL, RBD_MIRROR_IMAGE_ENABLED,
 +                 RBD_MIRROR_IMAGE_DISABLED, MIRROR_IMAGE_STATUS_STATE_UNKNOWN)
  
  rados = None
  ioctx = None
Simple merge
Simple merge
Simple merge
Simple merge