From 1d838bf9da564e9557a8a56e432dd9e81b2f6830 Mon Sep 17 00:00:00 2001 From: runsisi Date: Fri, 21 Apr 2017 16:59:21 +0800 Subject: [PATCH] pybind/rbd: add support for image create timestamp Signed-off-by: runsisi --- src/pybind/rbd/rbd.pyx | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/pybind/rbd/rbd.pyx b/src/pybind/rbd/rbd.pyx index ec090dba861..8de6b3cab84 100644 --- a/src/pybind/rbd/rbd.pyx +++ b/src/pybind/rbd/rbd.pyx @@ -228,6 +228,7 @@ cdef extern from "rbd/librbd.h" nogil: uint8_t enabled) int rbd_get_stripe_unit(rbd_image_t image, uint64_t *stripe_unit) int rbd_get_stripe_count(rbd_image_t image, uint64_t *stripe_count) + int rbd_get_create_timestamp(rbd_image_t image, timespec *timestamp) int rbd_get_overlap(rbd_image_t image, uint64_t *overlap) int rbd_get_id(rbd_image_t image, char *id, size_t id_len) int rbd_get_block_name_prefix(rbd_image_t image, char *prefix, @@ -2166,6 +2167,18 @@ written." % (self.name, ret, length)) raise make_ex(ret, 'error getting stripe count for image %s' % (self.name)) return stripe_count + def create_timestamp(self): + """ + Returns the create timestamp for the image. + """ + cdef: + timespec timestamp + with nogil: + ret = rbd_get_create_timestamp(self.image, ×tamp) + if ret != 0: + raise make_ex(ret, 'error getting create timestamp for image: %s' % (self.name)) + return datetime.fromtimestamp(timestamp.tv_sec) + def flatten(self): """ Flatten clone image (copy all blocks from parent to child) -- 2.47.3