Commit Graph

29438 Commits

Author SHA1 Message Date
Noah Watkins
b28b64a0b6 pybind: use find_library for libcephfs and librbd
Use find_library to avoid assumptions about platform shared library
naming conventions.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2013-10-28 14:37:07 -07:00
Alan Somers
e5efc2929d test: Use a portable syntax for seq(1)
Use a portable syntax for seq(1).  GNU seq has a default INCR of 1, but
BSD seq has a default INCR of either +1 or -1, depending on the other
arguments.  INCR must be explicitly specified for portability.

This bug is the reason that I was running into the segfaults whose
fix I reported as BUG #6510.

Signed-off-by: Alan Somers <asomers@gmail.com>
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2013-10-28 11:50:50 -07:00
Alan Somers
fbabd42494 test: Change interpreter from /bin/bash to /bin/sh
Change interpreter from /bin/bash to /bin/sh.  bash is not guaranteed
to be installed on all Unix systems, and it's not guaranteed to be
installed into /bin either.

There are other scripts that specify /bin/bash; they need to be
examined one by one to look for bashisms.  This was the only one I had
to modify to get unit tests working.

Signed-off-by: Alan Somers <asomers@gmail.com>
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2013-10-28 11:50:49 -07:00
Alan Somers
0a1579d841 test: Use portable arguments to /usr/bin/env
Don't use the "--ignore-environment" option to env.  It is a
nonstandard GNU extension.  The standard version is "-i".

Signed-off-by: Alan Somers <asomers@gmail.com>
Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2013-10-28 11:50:49 -07:00
Noah Watkins
b926930f36 pybind: use find_library to look for librados
Uses find_library to search for librados, rather than using the soname.
For instance, on OSX librados is named librados.2.dylib.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2013-10-28 11:50:03 -07:00
Sage Weil
19d01606ba doc/release-notes: v0.72 draft release notes
Signed-off-by: Sage Weil <sage@inktank.com>
2013-10-28 10:36:44 -07:00
Yehuda Sadeh
5cba83855a Merge pull request #672 from liammonahan/wip-defer-to-bucket-acls
Add a configurable to allow bucket perms to be checked before key perms

Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
2013-10-26 19:24:59 -07:00
Sage Weil
6681668565 Merge pull request #770 from dachary/master
packages: ceph.spec.in is missing make as a build dependency

Reviewed-by: Sage Weil <sage@inktank.com>
2013-10-25 16:00:35 -07:00
Loic Dachary
284b73bb41 packages: ceph.spec.in is missing make as a build dependency
On a virgin centos-6.4, after yum-builddep ceph and following
http://ceph.com/docs/next/install/building-ceph/ instructions to:

cd ceph
./autogen.sh
./configure
make

it fails because make is not installed. It probably is not a problem for
most people because there are few developers who did not install make.

Signed-off-by: Loic Dachary <loic@dachary.org>
2013-10-26 00:46:32 +02:00
Sage Weil
289b790340 Merge remote-tracking branch 'gh/next' 2013-10-24 15:23:19 -07:00
Adam Twardowski
0388b712b4 Update init-rbdmap
Add a chkconfig line for RHEL based distros to make chkconfig start rbdmap earlier on boot and stop later on shutdown.  This will help prevent shutdown/reboot from hanging your system forever in the event that some daemon has a file held open on an rbd mounted filesystem.

Signed-off-by: Adam Twardowski <adam.twardowski@gmail.com>(cherry picked from commit 80384a1a24)
2013-10-24 14:49:53 -07:00
Sage Weil
9d7b0d47ea Merge pull request #762 from atwardowski/patch-2
add redhat settings to rbdmap init script

Backport: emperor
Reviewed-by: Sage Weil <sage@inktank.com>
2013-10-24 14:41:37 -07:00
Greg Farnum
0d326c3fa5 ceph: tolerate commands without any child args
Signed-off-by: Greg Farnum <greg@inktank.com>
Reviewed-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-10-24 12:35:47 -07:00
Josh Durgin
9fa9ed122e Merge branch 'wip-rgw-sync-next' into next
Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
2013-10-24 11:45:06 -07:00
Josh Durgin
cfe845115b rgw: eliminate one unnecessary case statement
0x21 '!' is the first character that doesn't need encoding, so we can
expand the lower bound check.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2013-10-24 11:37:07 -07:00
Adam Twardowski
80384a1a24 Update init-rbdmap
Add a chkconfig line for RHEL based distros to make chkconfig start rbdmap earlier on boot and stop later on shutdown.  This will help prevent shutdown/reboot from hanging your system forever in the event that some daemon has a file held open on an rbd mounted filesystem.

Signed-off-by: Adam Twardowski <adam.twardowski@gmail.com>
2013-10-24 12:24:11 -04:00
Josh Durgin
f9a6d71904 radosgw-admin: remove unused function escape_str()
This was added before formatters were used for dumping logs.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2013-10-24 08:59:07 -07:00
Josh Durgin
ec45b3b88c rgw: escape bucket and object names in StreamReadRequests
This fixes copy operations for objects that contain unsafe characters,
like a newline, which would return a 403 otherwise, since the GET to
the source rgw would be unable to verify the signature on a partially
valid bucket name.

Fixes: #6604
Backport: dumpling
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2013-10-24 08:58:59 -07:00
Josh Durgin
dd308cd481 rgw: move url escaping to a common place
This is useful outside of the s3 interface. Rename url_escape()
url_encode() for consistency with the exsting common url_decode()
function. This is in preparation for the next commit, which needs
to escape url-unsafe characters in another place.

Backport: dumpling
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2013-10-24 08:58:48 -07:00
Josh Durgin
e0e8fb1b2b rgw: update metadata log list to match data log list
Send the last marker whether the log is truncated in the same format
as data log list, so clients don't have more needless complexity
handling the difference.  Keep bucket index logs the same, since they
contain the marker already, and are not used in exactly the same way
metadata and data logs are.

Backport: dumpling
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2013-10-24 08:56:48 -07:00
Josh Durgin
c275912509 rgw: include marker and truncated flag in data log list api
Consumers of this api need to know their position in the log. It's
readily available when fetching the log, so return it.  Without the
marker in this call, a client could not easily or efficiently figure
out its position in the log, since it would require getting the global
last marker in the log, and then reading all the log entries.

This would be slow for large logs, and would be subject to races that
would cause potentially very expensive duplicate work.

Returning this atomically while fetching the log entries simplifies
all of this.

Fixes: #6615
Backport: dumpling
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2013-10-24 08:56:45 -07:00
Josh Durgin
e74776f417 cls_log: always return final marker from log_list
There's no reason to restrict returning the marker to the case where
less than the whole log is returned, since there's already a truncated
flag to tell the client what happened.

Giving the client the last marker makes it easy to consume when the
log entries do not contain their own marker. If the last marker is not
returned, the client cannot get the last marker without racing with
updates to the log.

Backport: dumpling
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2013-10-24 08:56:07 -07:00
Josh Durgin
ea816c1c2f rgw: skip read_policy checks for system_users
A system user should still be able to examine suspended buckets, and
get -ENOENT instead of -EACCESS for a deleted object.

Fixes: #6616
Backport: dumpling
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
2013-10-24 08:56:02 -07:00
Liam Monahan
1d7c204182 Add a configurable to allow bucket perms to be checked before key perms
through rgw_defer_to_bucket_acls config option.  This configurable defaults
to an empty string.  Option values include:

  - recurse: If requesting perm PERM on a key, allow if user has
    PERM on the
    bucket to which the key belongs.

  - full_control: If requesting perm PERM on a key, allow if user
    has
    FULL_CONTROL on the bucket to which the key belongs.

This allows users to give someone full bucket perms and be able to
operate on the keys in the bucket without modifying the perms of every
key in the bucket.  This breaks S3 compatability, but that's why
it's a configurable!

Signed-off-by: Liam Monahan <liam@umiacs.umd.edu>
2013-10-24 11:43:53 -04:00
Gregory Farnum
fde43fb256 Merge pull request #750 from ceph/wip-backtrace
Reviewed-by: Greg Farnum <greg@inktank.com>
2013-10-23 17:43:41 -07:00
Sage Weil
71d1a28806 Merge pull request #761 from ceph/wip-6620
mds: MDSMap: adjust buffer size for uint64 values with more than 5 chars

Backport: dumpling, cuttlefish
2013-10-23 16:24:23 -07:00
Joao Eduardo Luis
0e8182edd8 mds: MDSMap: adjust buffer size for uint64 values with more than 5 chars
Fixes: #6620

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
2013-10-24 00:17:45 +01:00
Sage Weil
8e1635c8da Merge pull request #758 from hjwsm1989/master
rename test_arch.c --> test_arch.cc to avoid undefined reference to `...
2013-10-23 15:06:08 -07:00
Sage Weil
246b27422c Merge pull request #759 from jcfischer/master
doc: clarify that mons must have qurorum during deploy
2013-10-23 15:05:00 -07:00
Jens-Christian Fischer
af1dee5a29 doc: clarify that mons must have qurorum during deploy
If multiple mons are specified in 'ceph-deploy new', but less than
those necessary for quorum are started with 'ceph-deploy mon create',
later steps (like 'ceph-deploy gatherkeys') will fail.
2013-10-23 14:40:32 +02:00
huangjun
4c8be795d6 rename test_arch.c --> test_arch.cc to avoid undefined reference to `__gxx_personality_v0' error.
Signed-off-by: huangjun  <hjwsm1989@gmail.com>
2013-10-23 13:38:10 +08:00
João Eduardo Luís
c2cf8489bc Merge pull request #730 from ceph/wip-monc-ping
mon: MonClient: ping monitors without authenticating

* add support on the monitor to reply to MPing messages with the contents of
  'mon_status' and 'health', regardless of a client having authenticated beforehand.

* add support on the MonClient to send a MPing message to a randomly picked
  monitor (it was easier this way, '-m ip:port' allows for targeted ping) and block
  waiting for a reply.

* add support on librados, pybind/rados.py and the 'ceph' tool to send pings to
  monitors.

Resolves: #5984

Reviewed-by: Greg Farnum <greg@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Reviewed-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
2013-10-22 19:18:55 -07:00
Joao Eduardo Luis
7ba4bc4ab7 cli: ceph: add support to ping monitors
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
2013-10-23 03:04:23 +01:00
Joao Eduardo Luis
400cb18bbc pybind: rados: ping a monitor via librados
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
2013-10-23 02:54:40 +01:00
Joao Eduardo Luis
1a2e0ebaf1 pybind: rados: support ETIMEDOUT on make_ex()
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
2013-10-23 02:54:34 +01:00
Joao Eduardo Luis
2d7ccab382 librados: support pinging a monitor without auth via RadosClient
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
2013-10-23 02:52:01 +01:00
Joao Eduardo Luis
6a4b196a5b mon: MonClient: allow pinging a monitor without authenticating first
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
2013-10-23 02:52:01 +01:00
Joao Eduardo Luis
c521ba78b1 mon: MonClient: adjust whitespaces
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
2013-10-23 02:52:01 +01:00
Joao Eduardo Luis
5e4652eb8c mon: Monitor: reply to ping messages, letting them know we're alive
Fixes: #5984

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
2013-10-23 02:52:01 +01:00
Joao Eduardo Luis
4ca1407fd9 mon: Monitor: do not flush formatter at end of _mon_status()
Delegate that to the caller so that we can combine the result of
_mon_status() with the result of other functions.

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
2013-10-23 02:52:01 +01:00
Sage Weil
dbbf9938e3 Merge remote-tracking branch 'gh/wip-6242-b' into next
Reviewed-by: Greg Farnum <greg@inktank.com>
Reviewed-by: Dan Mick <dan.mick@inktank.com>
2013-10-22 13:32:01 -07:00
Sage Weil
1821ad781b pybind/rados: create InterruptedOrTimeoutError exception
Signed-off-by: Sage Weil <sage@inktank.com>
2013-10-22 13:12:59 -07:00
Sage Weil
12308862f7 ceph: move timeout
Signed-off-by: Sage Weil <sage@inktank.com>
2013-10-22 13:02:22 -07:00
Sage Weil
8baeac0df9 ceph: catch exceptions thrown during the rados handle init
In my case, making ceph.conf unreadable triggers an exception here:

Traceback (most recent call last):
  File "./ceph", line 802, in <module>
    sys.exit(main())
  File "./ceph", line 575, in main
    conf_defaults=conf_defaults, conffile=conffile)
  File "/home/sage/src/ceph/src/pybind/rados.py", line 221, in __init__
    self.conf_read_file(conffile)
  File "/home/sage/src/ceph/src/pybind/rados.py", line 272, in conf_read_file
    raise make_ex(ret, "error calling conf_read_file")
rados.Error: error calling conf_read_file: errno EACCES

Signed-off-by: Sage Weil <sage@inktank.com>
2013-10-22 12:54:09 -07:00
Sage Weil
d60e532e28 ceph: show basic help before initializing cluster connection
That way we still get help if there is an error.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-10-22 12:53:30 -07:00
Sage Weil
b33c3158d4 ceph: default 5 second timeout for -h
Signed-off-by: Sage Weil <sage@inktank.com>
2013-10-22 12:35:06 -07:00
Sage Weil
15de2c48a1 ceph: add --connect-timeout option
Signed-off-by: Sage Weil <sage@inktank.com>
2013-10-22 12:34:53 -07:00
Sage Weil
e9224755e2 ceph: print basic options before connecting
This will let you control-c if the mon is unresponsive.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-10-22 12:34:41 -07:00
Greg Farnum
445e8c9860 ceph: fixup do_help() function connection check
We might have cluster_handle defined, but not have
successfully connected. Instead, check if it's in
the connected state.

Signed-off-by: Greg Farnum <greg@inktank.com>
2013-10-22 12:33:03 -07:00
Sage Weil
32a23c5bba ceph.in: add emacs modeline
Signed-off-by: Sage Weil <sage@inktank.com>
2013-10-22 12:33:03 -07:00