list_objects() now uses parse_raw_oid(), so that it can set the correct
namespace. It only affects users of the function that want to get all
objects in bucket, regardless to the namespace associated with it. This
makes it so that the orphan code actually works now with namespaced
objects, and with special named objects (namely, start with underscore).
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
So far doesn't do much, iterate through all objects in a specific pool
data, store it in a sharded index.
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
I put in doc/rados/api/python.rst line numbers on every code samples in
order to make them look all the same.
Fixes: #12174
Signed off: Pierre Chaumont pierre.chaumont31@gmail.com
Before this patch, the command 'logrotate -f /etc/logrotate.d/ceph'
was generating an error "Failed to reload ceph.target: Job type reload is not
applicable for unit ceph.target".
Before we issue systemctl reload, check that there is at least
one active ceph-* service. (The hyphen is significant.)
Since we use grep, make the grep package a dependency.
http://tracker.ceph.com/issues/12173Fixes: #12173
Signed-off-by: Tim Serong <tserong@suse.com>
Signed-off-by: Lars Marowsky-Bree <lmb@suse.com>
Signed-off-by: Nathan Cutler <ncutler@suse.com>
Fixes: #12146
Config parameter added for no of parts limit in multipart upload and checked while
completing multipart upload
Signed-off-by: Abhishek Dixit <dixitabhi@gmail.com>
It's possible for librbd's watch of the header object to be reset by
connection issues just prior to the image being removed. This will
causes an assertion failure which assumes at least one watcher on the
image.
Fixes: #12176
Backport: hammer, firefly
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Swift sends Content-Type HTTP header even if the response
doesn't contain body. We have this behaviour implemented
until applying some changes in end_header() function.
Unfortunately, lack of Content-Type causes early exits in
many Tempest's tests for Swift API verification.
Fixes: #12157
Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
argparse is a widely-used Python module for parsing command-line arguments.
Ceph makes heavy use of Python scripts, both in the build environment and on
cluster nodes and clients.
Until Python 2.6, argparse was distributed separately from Python proper.
As of 2.7 it is part of the Python standard library.
Although the python package in a given distro may or may not Provide:
python-argparse, this cannot be relied upon.
Therefore, this commit puts appropriate conditionals around Requires:
python-argparse and BuildRequires: python-argparse. It does so for Red
Hat/CentOS and SUSE only, because the last Fedora version with Python 2.6
was Fedora 13, which is EOL.
argparse is required by both the ceph and ceph-common packages, but since ceph
requires ceph-common, the argparse Requires and BuildRequires need only appear
once, under ceph-common.
http://tracker.ceph.com/issues/12034Fixes: #12034
Signed-off-by: Nathan Cutler <ncutler@suse.com>
Fixes: #11851
The civetweb mg_write() doesn't return error when it can't flush all data
to the user, it just sends the total number of bytes written. Modified the
client io to return total number of bytes and return an error if didn't
send anything.
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
Object map updates were being canceled in-flight when the exclusive lock
is released. This resulted in an ERESTART error code bubbling up to
AioRequest.
Fixes: 12165
Backport: hammer
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
First, the terms "common" and "specific" are vague. Second,
"common" can easily be confused with the ceph-common subpackage.
Fix this by rephrasing to "distro-unconditional dependencies" and
"distro-conditional dependencies", respectively.
Third, move the "distro-unconditional dependencies" header so it
is above the part where these dependencies are actually defined.
Signed-off-by: Nathan Cutler <ncutler@suse.com>
We must join threads before completing ::shutdown,
because otherwise these threads might try to use
torn-down resources like the objecter.
The replay/recovery threads may be blocking on
journaler calls like wait_for_readable, so we
must signal them using Journaler::shutdown. In
order for that to be safe, we must also protect
the assignment of ::journaler from the threads
using the mds_lock.
Fixes: #11985
Signed-off-by: John Spray <john.spray@redhat.com>
`stopping` is true once the MDS has entered suicide(). During
this phase, any MDSIOContexts that are called (e.g. from objecter,
journaler) become no-ops.
Signed-off-by: John Spray <john.spray@redhat.com>
Add a ::stopping flag, set at start of suicide(),
that other contexts must inspect after taking
mds_lock.
This guards against the possibility of multiple
threads entering suicide, and more generally
against the possibility of other procedures
starting while we're in the middle of shutting down.
Signed-off-by: John Spray <john.spray@redhat.com>
Because consumers may be blocked on the on_readable
condition, it is necessary for Journaler to have
an explicit shutdown method that fires the completion
Signed-off-by: John Spray <john.spray@redhat.com>
Given ceph's reputation for voluminous logs, it makes sense for
logrotate to be a hard dependency for all distros.
Signed-off-by: Nathan Cutler <ncutler@suse.com>
So that we can decode it from tests. This should go away
at some point when encoding of these raw-encoded structures
is modernized.
Signed-off-by: John Spray <john.spray@redhat.com>