since we are able to build the python bindings using the stub
implementation of C binding, let's enable the API docs build.
Signed-off-by: Kefu Chai <kchai@redhat.com>
also define a stub for rados.Rados right in cephfs.pyx, so the cython
compiler needs it. but it's cubersome to copy rados.pxd from rados
python binding when building cephfs python binding. because, if we
install a local python package using requirement.txt, pip does not allow
us to specify the include-directory for Cython. and cephfs/setup.py is
located out of the source tree when it is being built by pip, and unlike
in our CMake based build, which specifies --cython-include-dirs with
absolute directory, we don't have access to the root directory of
project in Read the Docs environment, so it's impossible for us to
locate pybind/rados in setup.py.
we could pass "--global-option" as part of package specifier in
requirements.txt, like:
cephfs --global-option="build_ext" --global-option="--for-doc"
or
cephfs --global-option="build_doc"
but then we will have to override or create a command
for interpreting the command line options.
Signed-off-by: Kefu Chai <kchai@redhat.com>
so it'd be simpler if we want to parse and generate the stub
for these declarations when building document where where the
annotations are used.
ctime.pxd is extracted so the time related declarations can be shared by
c_rbd.pxd and rbd.pyx.
Signed-off-by: Kefu Chai <kchai@redhat.com>
when compile a pure python cythonized binding, bool is not defined
because, i think, Cython does not include <stdbool.h> by default.
so use bint indead.
Signed-off-by: Kefu Chai <kchai@redhat.com>
so it'd be simpler if we want to parse and generate the stub
for these declarations when building document where where the
annotations are used.
Signed-off-by: Kefu Chai <kchai@redhat.com>
* setup.py: inject "BUILD_DOC" into cython build context if "BUILD_DOC"
env variable is set, this helps us to do conditional compilation.
for instance, if we are building document, there is no need to
use the header files or link against librados.so for building
the python bindings.
* mock_rados.pxi: implement the mock functinons for their C counterparts
in librados, so we can use them when building librados python
binding for creating the document. Sphinx's autodoc extension
reads annotation of the python package whose document is being
built, after importing the python package into python runtime.
but since we use Cython for creating our python binding,
we have to provide the implementation of those referenced
librados C API symbols. mock_rados.pxi implements them using Cython.
the downside of this solution is that we need to mirror every
function used by the Python binding by repeating them in both
c_rados.pxd and mock_rados.pxi. the same will apply to other
Ceph python bindings as long as they use C APIs not offered by
libc or python runtime. so next step is to develop a simple
parser which can be run at build time to create mock_*.pxi from
c_*.pxd.
* rados.pyx: use mock_rados.pxi if BUILD_DOC, otherwise use
c_rados.pyd. the latter requires a librados.so at runtime.
Signed-off-by: Kefu Chai <kchai@redhat.com>
so it'd be simpler if we want to parse and generate the stub
for these declarations when building document where where the annotations
are used, but importable python bindgs of rados,ceph,rbd,cephfs are required.
also move the time.h declarations into ctime.pxd, are they can be shared
by the stub implementation and the non-stub one.
Signed-off-by: Kefu Chai <kchai@redhat.com>
The cmake search for a local package has lagged in regard to our usage
of it.
Fixes: https://tracker.ceph.com/issues/48453
Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
All the implemented commands read or write the self.crashes structure.
We need to serialize them to avoid the threads from stepping over each
other toes.
This also makes sure that the main thread (serve method) does not
interfere with the commands.
Signed-off-by: Boris Ranto <branto@redhat.com>
With this, we can pass a list of mount options to the kclient that will
be added onto the default ones. This is necessary to support testing
with fscache enabled (and other features activated by mount options).
Fixes: https://tracker.ceph.com/issues/6373
Signed-off-by: Jeff Layton <jlayton@redhat.com>
This feature was mistakenly removed while making a single allocator
for main device (https://github.com/ceph/ceph/pull/30838).
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
1) Do not differentiate all-flash and hybrid(ssd+hdd) deployments since
they both bound to SSD drive backing DB volume.
2) Drop osd_delete_sleep_hybrid from 2s to 1s
3) Raise osd_delete_sleep_ssd to 1s since 0 is a way too low - having
it that low tend to cause a significant negative imact on OSD's regular
operation.
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
mgr/dashboard: Fix for misleading "Orchestrator is not available" error
Reviewed-by: Alfonso Martínez <almartin@redhat.com>
Reviewed-by: Kiefer Chang <kiefer.chang@suse.com>
Reviewed-by: Laura Paduano <lpaduano@suse.com>
It was possible that before image1 was closed, both quiesce2 and
quiesce3 requests were received and the test got stuck on
create_snap1.join() waiting for the image1 to be closed, while
the close was waiting for quiesce3 to be completed.
Signed-off-by: Mykola Golub <mgolub@suse.com>
This PR removes the following people from the
CLT. They've left the CLT:
* Lenz Grimmer
* Alfredo Deza
* Zack Cerza
This commit also adds:
* Ernesto Puerta
Fixes: https://tracker.ceph.com/issues/48436
Signed-off-by: Zac Dover <zac.dover@gmail.com>