]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
9 years agopybind: rados cleanup 7692/head
Mehdi Abaakouk [Thu, 18 Feb 2016 09:14:01 +0000 (10:14 +0100)]
pybind: rados cleanup

This change uses:
* a pystring to store ioctx state like other state attributes and like
  previous binding
* use __dealloc__ instead of __del__ to ensure Object are freed correctly

Signed-off-by: Mehdi Abaakouk <sileht@redhat.com>
9 years agoMerge pull request #7684 from ceph/wip-pybind-install
Gregory Farnum [Thu, 18 Feb 2016 00:45:10 +0000 (16:45 -0800)]
Merge pull request #7684 from ceph/wip-pybind-install

pybind: use correct subdir for rados install-exec rule

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
9 years agopybind: use correct subdir for rados install-exec rule 7684/head
Josh Durgin [Wed, 17 Feb 2016 23:44:45 +0000 (15:44 -0800)]
pybind: use correct subdir for rados install-exec rule

This fixes package builds and 'make install'

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
9 years agoMerge pull request #7621 from sileht/sileht/rados-cython
Josh Durgin [Wed, 17 Feb 2016 18:05:20 +0000 (10:05 -0800)]
Merge pull request #7621 from sileht/sileht/rados-cython

python binding of librados with cython

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
9 years agoUpdate the documentation 7621/head
Mehdi Abaakouk [Wed, 17 Feb 2016 09:13:31 +0000 (10:13 +0100)]
Update the documentation

Signed-off-by: Mehdi Abaakouk <sileht@redhat.com>
9 years agolibrbdpy: Use new rados lib
Mehdi Abaakouk [Tue, 16 Feb 2016 11:05:07 +0000 (12:05 +0100)]
librbdpy: Use new rados lib

Signed-off-by: Mehdi Abaakouk <sileht@redhat.com>
9 years agoceph.in: Use new python rados module
Mehdi Abaakouk [Mon, 15 Feb 2016 21:06:54 +0000 (22:06 +0100)]
ceph.in: Use new python rados module

This implements run_in_thread inside the ceph command itself.

And fixes the ceph command bootstrap when it run inside the
source tree to correctly load the new rados python module.

Signed-off-by: Mehdi Abaakouk <sileht@redhat.com>
9 years agoFix rpm/deb packaging
Mehdi Abaakouk [Tue, 16 Feb 2016 09:42:31 +0000 (08:42 -0100)]
Fix rpm/deb packaging

Signed-off-by: Mehdi Abaakouk <sileht@redhat.com>
9 years agoRemove old rados pybinding
Mehdi Abaakouk [Mon, 15 Feb 2016 08:53:08 +0000 (09:53 +0100)]
Remove old rados pybinding

Signed-off-by: Mehdi Abaakouk <sileht@redhat.com>
9 years agoCython Rados module
Mehdi Abaakouk [Fri, 12 Feb 2016 08:13:36 +0000 (09:13 +0100)]
Cython Rados module

Notable changes:

* run_in_thread have disapeared
* timeout argument of some methods are ignored
* rados_create_write_op/rados_create_read_op returns WriteOp/ReadOp
  instead of the pointer address
* rados_monitor_log callback 'arg' arguments was broken in previous python
  binding (callback was called with the pointer address instead pointed object)
* object attributes that was pointer addresses are now private and not accessible in python

Some tests have been added to cover all methods

Signed-off-by: Mehdi Abaakouk <sileht@redhat.com>
9 years agoMerge pull request #7603 from roidayan/xio_fixes
Kefu Chai [Wed, 17 Feb 2016 09:21:29 +0000 (17:21 +0800)]
Merge pull request #7603 from roidayan/xio_fixes

Xio fixes

Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
9 years agoMove pybind rbd module into it own directory
Mehdi Abaakouk [Thu, 11 Feb 2016 08:30:52 +0000 (09:30 +0100)]
Move pybind rbd module into it own directory

To allow to create a autonomous rados module with cython.
We move the current librbdpy to the rbd sub directory.

Signed-off-by: Mehdi Abaakouk <sileht@redhat.com>
9 years agoMerge pull request #7520 from renhwsky/renhw-wip-mon-monitor
Kefu Chai [Tue, 16 Feb 2016 14:04:24 +0000 (22:04 +0800)]
Merge pull request #7520 from renhwsky/renhw-wip-mon-monitor

mon/monitor: some clean up

Reviewed-by: Joao Eduardo Luis <joao@suse.de>
Reviewed-by: Kefu Chai <kchai@redhat.com>
9 years agoMerge pull request #7629 from ceph/wip-14750-op-timeouts
Gregory Farnum [Tue, 16 Feb 2016 04:39:55 +0000 (20:39 -0800)]
Merge pull request #7629 from ceph/wip-14750-op-timeouts

Objecter: detect laggy ops with objecter_timeout, not osd_timeout

Reviewed-by: Adam C. Emerson <aemerson@redhat.com>
9 years agoMerge pull request #7655 from gregsfortytwo/wip-metarequest-lock
Gregory Farnum [Tue, 16 Feb 2016 04:36:47 +0000 (20:36 -0800)]
Merge pull request #7655 from gregsfortytwo/wip-metarequest-lock

client: removed unused Mutex from MetaRequest

Reviewed-by: Yan, Zheng <zyan@redhat.com>
9 years agoMerge pull request #7616 from gregsfortytwo/wip-timer-14697
Gregory Farnum [Tue, 16 Feb 2016 04:35:32 +0000 (20:35 -0800)]
Merge pull request #7616 from gregsfortytwo/wip-timer-14697

mds: don't double-shutdown the timer when suiciding

Reviewed-by: John Spray <john.spray@redhat.com>
9 years agoMerge pull request #7490 from x11562/mds_mdstype_ref
Gregory Farnum [Tue, 16 Feb 2016 04:34:43 +0000 (20:34 -0800)]
Merge pull request #7490 from x11562/mds_mdstype_ref

mds: function parameter 'df' should be passed by reference

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
9 years agoMerge pull request #7610 from dillaman/wip-bit-vector
Dan Mick [Tue, 16 Feb 2016 01:07:39 +0000 (17:07 -0800)]
Merge pull request #7610 from dillaman/wip-bit-vector

common/bit_vector: use hard-coded value for block size

Reviewed-by: Dan Mick <dmick@redhat.com>
9 years agoMerge pull request #7653 from dillaman/wip-librbd-race-conditions
Josh Durgin [Mon, 15 Feb 2016 23:25:28 +0000 (15:25 -0800)]
Merge pull request #7653 from dillaman/wip-librbd-race-conditions

librbd: several race conditions discovered under single CPU environment

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
9 years agoMerge pull request #7408 from ceph/wip-14549
Orit Wasserman [Mon, 15 Feb 2016 21:12:54 +0000 (22:12 +0100)]
Merge pull request #7408 from ceph/wip-14549

rgw: don't use s->bucket for metadata api path entry

Reviewed-by: Orit Wasserman <owasserm@redhat.com>
9 years agoMerge pull request #7633 from zaitcev/cleanup-various-1
Orit Wasserman [Mon, 15 Feb 2016 20:57:01 +0000 (21:57 +0100)]
Merge pull request #7633 from zaitcev/cleanup-various-1

rgw: cleanups to comments and messages

Reviewed-by: Orit Wasserman <owasserm@redhat.com>
9 years agolibrados_test_stub: watch_flush should block until notifies complete 7653/head
Jason Dillaman [Mon, 15 Feb 2016 17:30:41 +0000 (12:30 -0500)]
librados_test_stub: watch_flush should block until notifies complete

It shouldn't block until all the acks are received as that is not
how librados handles the method.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
9 years agolibrbd: lock notifications should be executed outside librados thread
Jason Dillaman [Fri, 12 Feb 2016 18:24:10 +0000 (13:24 -0500)]
librbd: lock notifications should be executed outside librados thread

Otherwise it's possible that the notification will be blocked if
the librados AIO thread isn't available to invoke the notification
handler.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
9 years agolibrbd: potential race on image close
Jason Dillaman [Mon, 15 Feb 2016 17:10:17 +0000 (12:10 -0500)]
librbd: potential race on image close

If multiple states are pending, it's possible for an image to
be closed while the state lock is unlocked during the callback.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
9 years agolibrbd: potential deadlock during AIO image re-open
Jason Dillaman [Mon, 15 Feb 2016 15:50:33 +0000 (10:50 -0500)]
librbd: potential deadlock during AIO image re-open

The AIO image open might complete under the librados AIO callback.
Attempting to close the old image handle under that thread will
deadlock under the new librados_test_stub flush handling.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
9 years agolibrados_test_stub: ensure AIO callback is also flushed
Jason Dillaman [Mon, 15 Feb 2016 15:49:17 +0000 (10:49 -0500)]
librados_test_stub: ensure AIO callback is also flushed

There are sporadic librbd unit test failures due to the
mock being destroyed while an active librados_test_stub
AIO callback is completing.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
9 years agoMerge branch 'wip-commit_position-tests' of git://github.com/trociny/ceph
Jason Dillaman [Mon, 15 Feb 2016 14:40:37 +0000 (09:40 -0500)]
Merge branch 'wip-commit_position-tests' of git://github.com/trociny/ceph

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
9 years agotests: librbd: commit position updated after journal replay
Mykola Golub [Thu, 5 Nov 2015 14:01:45 +0000 (16:01 +0200)]
tests: librbd: commit position updated after journal replay

Signed-off-by: Mykola Golub <mgolub@mirantis.com>
9 years agocommon/bit_vector: use hard-coded value for block size 7610/head
Jason Dillaman [Thu, 11 Feb 2016 15:33:40 +0000 (10:33 -0500)]
common/bit_vector: use hard-coded value for block size

The CEPH_PAGE_SIZE is not actually a constant. On aarch64 platforms
the page size is 64K instead of the assumed 4K.  The CRC block
computations require a true constant.

Fixes: #14747
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
9 years agoMerge pull request #7646 from dachary/wip-ceph-disk-flake8
Kefu Chai [Mon, 15 Feb 2016 07:19:56 +0000 (15:19 +0800)]
Merge pull request #7646 from dachary/wip-ceph-disk-flake8

ceph-disk: flake8 fixes

Reviewed-by: Kefu Chai <kchai@redhat.com>
9 years agoceph-disk: flake8 fixes 7646/head
Loic Dachary [Mon, 15 Feb 2016 05:43:36 +0000 (12:43 +0700)]
ceph-disk: flake8 fixes

Signed-off-by: Loic Dachary <loic@dachary.org>
9 years agorgw: cleanups to comments and messages 7633/head
Pete Zaitcev [Fri, 12 Feb 2016 22:07:06 +0000 (15:07 -0700)]
rgw: cleanups to comments and messages

These are minor cleanups that do not affect the code in a
material way:
- Forgot to add --tenant to usage message
- Make the help slightly less misleading
- Fix a strange error message "could not add remove caps"
- Spelling in a comment
- The vstart.sh can be run with civetweb

Signed-off-by: Pete Zaitcev <zaitcev@redhat.com>
9 years agoclient: removed unused Mutex from MetaRequest 7655/head
Greg Farnum [Sat, 13 Feb 2016 00:06:20 +0000 (16:06 -0800)]
client: removed unused Mutex from MetaRequest

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
9 years agoMerge pull request #7634 from ceph/rgw-nfs-5
Yehuda Sadeh [Fri, 12 Feb 2016 22:51:59 +0000 (14:51 -0800)]
Merge pull request #7634 from ceph/rgw-nfs-5

nfs for rgw (Matt Benjamin, Orit Wasserman)

Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
9 years agoObjecter: detect laggy ops with objecter_timeout, not osd_timeout 7629/head
Greg Farnum [Fri, 12 Feb 2016 18:55:43 +0000 (10:55 -0800)]
Objecter: detect laggy ops with objecter_timeout, not osd_timeout

Fixes: 14750
Signed-off-by: Greg Farnum <gfarnum@redhat.com>
9 years agoMerge pull request #7350 from ddiss/tracker14499_enotconn_rados_monitor_log
Sage Weil [Fri, 12 Feb 2016 20:45:37 +0000 (15:45 -0500)]
Merge pull request #7350 from ddiss/tracker14499_enotconn_rados_monitor_log

librados: check connection state in rados_monitor_log

Reviewed-by: Sage Weil <sage@redhat.com>
9 years agoMerge pull request #7584 from ifed01/wip-14511
Sage Weil [Fri, 12 Feb 2016 20:40:33 +0000 (15:40 -0500)]
Merge pull request #7584 from ifed01/wip-14511

osd: fix lack of object unblock when flush fails

Reviewed-by: Sage Weil <sage@redhat.com>
9 years agoMerge pull request #7593 from ifed01/wip-no-blockedpromote-return-fix
Sage Weil [Fri, 12 Feb 2016 20:39:58 +0000 (15:39 -0500)]
Merge pull request #7593 from ifed01/wip-no-blockedpromote-return-fix

osd: fix return value from maybe_handle_cache_detail()

Reviewed-by: Sage Weil <sage@redhat.com>
9 years agoMerge pull request #7587 from cbodley/wip-pageset-align
Sage Weil [Fri, 12 Feb 2016 20:39:30 +0000 (15:39 -0500)]
Merge pull request #7587 from cbodley/wip-pageset-align

osd: memstore: fix alignment of Page for test_pageset

Reviewed-by: Dan Mick <dmick@redhat.com>
9 years agoMerge pull request #7595 from liewegas/wip-hobject-stringify
Sage Weil [Fri, 12 Feb 2016 20:38:18 +0000 (15:38 -0500)]
Merge pull request #7595 from liewegas/wip-hobject-stringify

osd: ghobject_t: use ! instead of @ as a separator

9 years agoMerge pull request #7596 from dachary/wip-erasure-code-corpus
Sage Weil [Fri, 12 Feb 2016 20:37:31 +0000 (15:37 -0500)]
Merge pull request #7596 from dachary/wip-erasure-code-corpus

tests: sync ceph-erasure-code-corpus for mktemp -d

Reviewed-by: Sage Weil <sage@redhat.com>
9 years agoMerge pull request #7608 from liewegas/wip-warnings
Sage Weil [Fri, 12 Feb 2016 20:36:35 +0000 (15:36 -0500)]
Merge pull request #7608 from liewegas/wip-warnings

tests: fix a few build warnings

Reviewed-by: Kefu Chai <kchai@redhat.com>
9 years agolibrgw: fix rpm packaging 7634/head
Matt Benjamin [Thu, 11 Feb 2016 20:34:03 +0000 (15:34 -0500)]
librgw: fix rpm packaging

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: fix new Debian control entries
Matt Benjamin [Wed, 10 Feb 2016 01:57:31 +0000 (20:57 -0500)]
librgw: fix new Debian control entries

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: remove junk files
Matt Benjamin [Mon, 8 Feb 2016 15:43:43 +0000 (10:43 -0500)]
librgw: remove junk files

Files accidentally added.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: don't compare a string_ref with "" (use empty())
Matt Benjamin [Fri, 5 Feb 2016 20:24:05 +0000 (15:24 -0500)]
librgw: don't compare a string_ref with "" (use empty())

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: fix boost::basic_string_ref template instantiation
Matt Benjamin [Wed, 3 Feb 2016 23:02:49 +0000 (18:02 -0500)]
librgw: fix boost::basic_string_ref template instantiation

The commit adding Seastar sstring.h replaced a part of the interface
which used an internal string-view type, with an equivalent using
basic_string_ref from Boost.  I relied on a default template argument
not present in older versions.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: add debian and rpm packaging
Matt Benjamin [Wed, 3 Feb 2016 22:44:02 +0000 (17:44 -0500)]
librgw: add debian and rpm packaging

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: consolidate S3 bucket name validation
Matt Benjamin [Tue, 2 Feb 2016 14:38:51 +0000 (09:38 -0500)]
librgw: consolidate S3 bucket name validation

There is more cleanup potential here, but it is intrusive, as the
validators for bucket and object names have been factored through
the handler inheritance hierarchy.

This change just deletes the S3 validate_bucket_name for now, as
that method was large.  The corresponding object name validator was
not defined in RGWHandler_REST_S3, so I've left it as is, for now.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agoMerge pull request #7626 from tchaikov/wip-fix-automake
Kefu Chai [Fri, 12 Feb 2016 17:33:12 +0000 (01:33 +0800)]
Merge pull request #7626 from tchaikov/wip-fix-automake

Makefile: workaround an automake bug for "make check"

Reviewed-by: Loic Dachary <ldachary@redhat.com>
9 years agolibrgw: fix copyright in src/include/rados/rgw_file.h
Matt Benjamin [Mon, 1 Feb 2016 20:57:00 +0000 (15:57 -0500)]
librgw: fix copyright in src/include/rados/rgw_file.h

This file originated at Red Hat.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: initialize RGWLib pointer members
Yehuda Sadeh [Mon, 1 Feb 2016 20:39:43 +0000 (15:39 -0500)]
librgw: initialize RGWLib pointer members

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: remove slo, dlo, and supplied-md5 logic in RGWWriteRequest
Matt Benjamin [Mon, 1 Feb 2016 20:16:46 +0000 (15:16 -0500)]
librgw: remove slo, dlo, and supplied-md5 logic in RGWWriteRequest

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: remove RGWLibRequest "magic" numbers added for debugging
Matt Benjamin [Mon, 1 Feb 2016 19:45:48 +0000 (14:45 -0500)]
librgw: remove RGWLibRequest "magic" numbers added for debugging

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: comment rgw_nfs config_ops.h tunables
Matt Benjamin [Mon, 1 Feb 2016 17:56:32 +0000 (12:56 -0500)]
librgw: comment rgw_nfs config_ops.h tunables

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agocohort_lru: remove #if 0 section
Matt Benjamin [Mon, 1 Feb 2016 17:48:30 +0000 (12:48 -0500)]
cohort_lru: remove #if 0 section

The declaration being skipped was meant as a placeholder for future
optimization work, moved to a comment.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years ago{rgw,common}/Makefile.am: add a few more missing .h files
Yehuda Sadeh [Fri, 29 Jan 2016 18:39:59 +0000 (10:39 -0800)]
{rgw,common}/Makefile.am: add a few more missing .h files

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agocommon: add xxhash.h to Makefile.am
Yehuda Sadeh [Fri, 29 Jan 2016 16:19:01 +0000 (08:19 -0800)]
common: add xxhash.h to Makefile.am

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agorgw: fix null dereference
Yehuda Sadeh [Wed, 3 Feb 2016 05:43:18 +0000 (00:43 -0500)]
rgw: fix null dereference

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw/rgw: fix librgw.la linkage
Matt Benjamin [Fri, 29 Jan 2016 04:29:35 +0000 (23:29 -0500)]
librgw/rgw: fix librgw.la linkage

Ensure that key symbols from global are satisfied in the library.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw/rgw: reorganize autotools linkage
Matt Benjamin [Thu, 28 Jan 2016 17:37:03 +0000 (12:37 -0500)]
librgw/rgw: reorganize autotools linkage

Adds the RGW-NFS library to the radosgw build, with unit tests.
Adds -fPIC to compile flags to satisfy the linker, but should have
been evident to automake/libtool.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: call obj_rec::sync() on dirs1_b
Matt Benjamin [Wed, 27 Jan 2016 21:40:43 +0000 (16:40 -0500)]
librgw: call obj_rec::sync() on dirs1_b

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw_file_nfsns: create readf_out_name, if needed
Matt Benjamin [Wed, 27 Jan 2016 21:20:53 +0000 (16:20 -0500)]
librgw_file_nfsns: create readf_out_name, if needed

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: remove deprecated/unused librgw personality
Matt Benjamin [Wed, 27 Jan 2016 16:48:58 +0000 (11:48 -0500)]
librgw: remove deprecated/unused librgw personality

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: properly detect RGWRados init failure
Matt Benjamin [Wed, 27 Jan 2016 16:40:52 +0000 (11:40 -0500)]
librgw: properly detect RGWRados init failure

Unit tests correctly see fail result from librgw_create.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: remove deprecated librgw methods
Matt Benjamin [Wed, 27 Jan 2016 03:20:08 +0000 (22:20 -0500)]
librgw: remove deprecated librgw methods

Remove unused routines:

 * librgw_acl_bin2xml
 * librgw_free_xml
 * librgw_acl_xml2bin
 * librgw_free_bin(librgw_t rgw, char* bin)

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: temporary fix RGWWrite
Matt Benjamin [Sun, 17 Jan 2016 22:30:06 +0000 (17:30 -0500)]
librgw: temporary fix RGWWrite

The current behavior of put_data_and_throttle leads to data
curruption, because the supplied buffer is apparently still being
written when the call returns--regardless of the value of
need_to_wait.

For now, do a buffer::copy of the supplied buffer, rather than the
original buffer::static, since that will at least be released
when no longer needed.

Probably this improves apparent rgw_write performance, but is not
what was originally intended.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: cleanup rgw_write
Matt Benjamin [Sun, 17 Jan 2016 21:46:05 +0000 (16:46 -0500)]
librgw: cleanup rgw_write

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: add new rgw_write unit test
Matt Benjamin [Sun, 17 Jan 2016 21:45:18 +0000 (16:45 -0500)]
librgw: add new rgw_write unit test

WRITEF1 writes back data wread in READF1.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: fix RGWReadRequest send_response_data
Matt Benjamin [Sun, 17 Jan 2016 19:33:03 +0000 (14:33 -0500)]
librgw: fix RGWReadRequest send_response_data

In hindsight, it seems clear how to consume the available bytes and
account for the bytes written into the caller's buffer.

Verified by unit test on data from S3, with a 6M file read in 1M
chunks, the preferred max read in modern Linux kernel NFS.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: add cross-bucket rgw_rename test
Matt Benjamin [Fri, 15 Jan 2016 22:54:43 +0000 (17:54 -0500)]
librgw: add cross-bucket rgw_rename test

It passes.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: fix intra-bucket rename
Matt Benjamin [Fri, 15 Jan 2016 22:42:55 +0000 (17:42 -0500)]
librgw: fix intra-bucket rename

Avoid hopeless fail due to binding const::std::string& to a
temporary.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: add support for rgw_rename tests
Matt Benjamin [Fri, 15 Jan 2016 21:44:54 +0000 (16:44 -0500)]
librgw: add support for rgw_rename tests

Implements intra-bucket rgw_rename test, which unfortunately fails
currently.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: fix rgw_unlink and delete atomicity
Matt Benjamin [Fri, 15 Jan 2016 17:45:58 +0000 (12:45 -0500)]
librgw: fix rgw_unlink and delete atomicity

Move internal unlink logic into new RGWLibFS::unlink method, fix
logic for files and directories.

Use RGWFileHandle::mtx and  RGWFileHandle::FLAG_DELETED to ensure
atomicity of handle creates and deletes.

Remove handles for unlinked objects from cache.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: implement object rename
Matt Benjamin [Thu, 14 Jan 2016 22:40:17 +0000 (17:40 -0500)]
librgw: implement object rename

The implementation uses currently does a copy, followed by a
delete operation (if successful).

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: fix timestamp on create (another case)
Matt Benjamin [Thu, 14 Jan 2016 22:25:45 +0000 (17:25 -0500)]
librgw: fix timestamp on create (another case)

In the rgw_create regular file case, the timestamp and size update
logic (though present) was being bypassed because the "FLAG_CREATE"
indicator which formerly propagated up from RGWLibFS::lookup_fh
was lost in the LRU change, which refactored the code for creating
new RGWFileHandle objects.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: cleanup, move 3 prints to log channel
Matt Benjamin [Thu, 14 Jan 2016 17:42:08 +0000 (12:42 -0500)]
librgw: cleanup, move 3 prints to log channel

Save a pointer to CephContext in RGWProcess for use by logger--
using the existing pointer in ThreadPool would be an intrusive
change.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: add missing RGWFileHandle::stat in rgw_mkdir
Matt Benjamin [Thu, 14 Jan 2016 16:38:24 +0000 (11:38 -0500)]
librgw: add missing RGWFileHandle::stat in rgw_mkdir

The lack of stat here induced a serious memory corruption, due to
the organization of Ganesha file attributes (and their reliance on
the FSAL to initialize the memory).

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: fix leading-slash special case, again
Matt Benjamin [Tue, 12 Jan 2016 23:21:56 +0000 (18:21 -0500)]
librgw: fix leading-slash special case, again

Fix boilerplate to sanitize relative_object_name() in rgw_create
as well as the RGWStatObjRequest case of RGWLibFS::stat_leaf.
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: disable name-cache lookups w/CREATE
Matt Benjamin [Tue, 12 Jan 2016 22:51:03 +0000 (17:51 -0500)]
librgw: disable name-cache lookups w/CREATE

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: fix a prefix bug and bucket timestamp bug
Matt Benjamin [Tue, 12 Jan 2016 22:14:05 +0000 (17:14 -0500)]
librgw: fix a prefix bug and bucket timestamp bug

The fix for missing bucket.creation_time in RGWStatBucket is not
complete--we're not carrying all the info over.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: ignore "/" as a common_prefix
Matt Benjamin [Tue, 12 Jan 2016 18:04:27 +0000 (13:04 -0500)]
librgw: ignore "/" as a common_prefix

This happens commonly, apparently when a parent object name ends
with '/' (as all explicit directories do).

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: rgw_getattr refactor, RGWLibFS::stat_leaf (object)
Matt Benjamin [Tue, 12 Jan 2016 01:57:14 +0000 (20:57 -0500)]
librgw: rgw_getattr refactor, RGWLibFS::stat_leaf (object)

Rewrite rgw_getattr to just dispatch into RGWLibFS::getattr, where
we can better use RGWFileHandle and RGWLibFS internals.

Initially, this change intended to dispatch a new RGWStatObjRequest
in the file case, but during implementation, discovered that in
(apparently) all file cases, it has already been done--but the path
had stopped working with the naming change.

Current GETATTR_DIRS1 unit test, when repeated so relying on lookup
(rather than saving size after rgw_write/rgw_close), passes.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: fix rgw_read, add unit test
Matt Benjamin [Mon, 11 Jan 2016 22:51:15 +0000 (17:51 -0500)]
librgw: fix rgw_read, add unit test

rgw_read had been trivially broken by the relative path change,
fixed.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: add rgw_getattr tests
Matt Benjamin [Mon, 11 Jan 2016 21:50:01 +0000 (16:50 -0500)]
librgw: add rgw_getattr tests

Re-implement rgw_getattr to just dispatch into RGWFileHandle::stat,
we expect all objects to stat correctly for their type.

The size of file objects is currently reporting as 0, where we expect
a small, positive size (reviewing).

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: re-implement rgw_create
Matt Benjamin [Mon, 11 Jan 2016 19:50:48 +0000 (14:50 -0500)]
librgw: re-implement rgw_create

rgw_create hadn't been re-implemented for NFS namespace behavior,
where we expect it to create empty file objects.

It needs to do a full name conflict check with prefix-matching,
to catch conflicts within object names.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: update rgw_* api calls so that all take a flags arg
Matt Benjamin [Mon, 11 Jan 2016 18:20:38 +0000 (13:20 -0500)]
librgw: update rgw_* api calls so that all take a flags arg

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: normalize obj_rec::sync calls, fix signedness of refcnt asserts
Matt Benjamin [Mon, 11 Jan 2016 16:39:25 +0000 (11:39 -0500)]
librgw: normalize obj_rec::sync calls, fix signedness of refcnt asserts

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: partial getattrs/gc checks
Matt Benjamin [Sun, 10 Jan 2016 23:32:54 +0000 (18:32 -0500)]
librgw: partial getattrs/gc checks

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: fix handle type in rgw_mkdir, finish dirs1 create tests
Matt Benjamin [Sun, 10 Jan 2016 21:28:42 +0000 (16:28 -0500)]
librgw: fix handle type in rgw_mkdir, finish dirs1 create tests

Fixes handle type after rgw_mkdir.

Add handle type checks to nfsns unit tests.  Adds tests to create
files and directories with non-bucket parent.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: set directory ctime and mtime
Matt Benjamin [Sun, 10 Jan 2016 18:44:52 +0000 (13:44 -0500)]
librgw: set directory ctime and mtime

Adds method to RGWStatBucketRequest to access the creation_time of
the returned bucket.

(For now, that's the only timestamp we have.)

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: refactor nfsns dirs1 and fix a "bad unlink" case
Matt Benjamin [Sun, 10 Jan 2016 17:09:37 +0000 (12:09 -0500)]
librgw: refactor nfsns dirs1 and fix a "bad unlink" case

Fix the error returns from rgw_unlink.  This is sufficient to
catch the errors that arise from operation failure.

We won't notice attempts to remove interior directories--and for
various reasons, that may be problematic (skip for now).

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: incremental bucket-object 2-level tests
Matt Benjamin [Sun, 10 Jan 2016 02:02:32 +0000 (21:02 -0500)]
librgw: incremental bucket-object 2-level tests

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: enforce S3 object name restrictions
Matt Benjamin [Sun, 10 Jan 2016 00:07:28 +0000 (19:07 -0500)]
librgw: enforce S3 object name restrictions

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: enforce S3 bucket name restrictions
Matt Benjamin [Sat, 9 Jan 2016 22:45:45 +0000 (17:45 -0500)]
librgw: enforce S3 bucket name restrictions

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: FLAG_CREATE cleanup
Matt Benjamin [Sat, 9 Jan 2016 22:02:07 +0000 (17:02 -0500)]
librgw: FLAG_CREATE cleanup

Split the transiently-creating concept (CREATING) from the request
to create objects used in lookup_fh.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: nfsns dirs1 delete, make hier1 conditional
Matt Benjamin [Sat, 9 Jan 2016 21:59:27 +0000 (16:59 -0500)]
librgw: nfsns dirs1 delete, make hier1 conditional

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: incr. fix various nfs ops (REBASEME)
Matt Benjamin [Fri, 8 Jan 2016 20:38:24 +0000 (15:38 -0500)]
librgw: incr. fix various nfs ops (REBASEME)

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: reorg SETUP_ENUMERATE test
Matt Benjamin [Fri, 8 Jan 2016 19:39:50 +0000 (14:39 -0500)]
librgw: reorg SETUP_ENUMERATE test

Stat nfsroot bucket, create it only if !exist && do_create.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
9 years agolibrgw: conditionally send '.' and '..' (rgw_readdir)
Matt Benjamin [Fri, 8 Jan 2016 17:40:48 +0000 (12:40 -0500)]
librgw: conditionally send '.' and '..' (rgw_readdir)

Ganesha traditionally does not expect them, but they may be needed
when bypassing the MDCACHE (2.4).

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>