Kefu Chai [Sun, 9 Jun 2019 09:33:19 +0000 (17:33 +0800)]
debian/control: remove "libnl-3-dev" from build dependencies
what we need is "libnl-genl-3-dev", libnl-3-dev should be a dependency
of "libnl-genl-3-dev". the only reason we would have added it, is if
the package maintainer of "libnl-genl-3-dev" fails to do so. and
the packages of "libnl-genl-3-dev" on both debian and ubuntu just look
correct in this perspective.
Kefu Chai [Sun, 9 Jun 2019 09:12:27 +0000 (17:12 +0800)]
cmake: rewrite Findgenl to support components argument
* rename genl to nl:
"genl" is not very specific without more context. and libnl is actually
a library suite. so it would be better if we can rename the library to
be found to "libnl", and by following the naming convention of CMake,
in this change, Findgenl.cmake is renamed to Findnl.cmake
* Findnl.cmake: support the component argument, in our specific case,
what we want is "libnl-genl" library, which is one of the libraries
offered by libnl. so let's just make it a component.
* Findnl.cmake: should pass the names of the required variables instead of
their values to `find_package_handle_standard_args()`. before this
change, we pass `GENL_LIBRARIES` to this function. it was correct at the
first glance. but it is not able to handle the case where case where
libnl-genl is not installed. so the fix is to pass all the names of
required library paths to this function. in this change, their name
are concatenated to a single variable -- `nl_LIBRARIES`, and the
value of this variable is passed to
`find_package_handle_standard_args()`. and the error message would
be more specific this way if libnl-genl is not found:
Could NOT find nl (missing: nl_genl_LIBRARY)
* Findnl.cmake: add nl::<component> as imported library, it helps the
consumer of these libraries to import them -- no need to
specify the `target_include_directories()` separately anymore.
* move the find_package() code to where it is used. it helps to improve
the readability.
* remove `HAVE_GENL` variable: it's not used anywhere.
* drop the messages of "Not using foobar", they do not help.
Lenz Grimmer [Wed, 19 Jun 2019 13:07:39 +0000 (15:07 +0200)]
mgr/dashboard: Ensure E2E tests can be run independently (#28592)
mgr/dashboard: Ensure E2E tests can be run independently
Reviewed-by: Adam King <adking@redhat.com> Reviewed-by: Laura Paduano <lpaduano@suse.com> Reviewed-by: Nathan Weinberg <nweinber@redhat.com> Reviewed-by: Rafael Quintero <rquinter@redhat.com> Reviewed-by: Tiago Melo <tmelo@suse.com>
Sage Weil [Tue, 18 Jun 2019 15:02:40 +0000 (10:02 -0500)]
Merge PR #28229 into master
* refs/pull/28229/head:
os/bluestore: do garbage collection if blob count is too high.
common/perf_conters: make dump_formatted_xxx funcs as const.
os/bluestore: store extents for GC within WriteContext.
os/bluestore: GC class, make some members local.
os/bluestore: vector -> interval set in GC to track extents to collect.
tests/store_test: many-many spanning blobs test case
Patrick Nawracay [Mon, 17 Jun 2019 09:36:53 +0000 (11:36 +0200)]
mgr/dashboard: Ensure E2E tests can be run independently
Introduces the PageHelper.
- Reads class attributes from Helpers to reduce boilerplace code for
navigation.
- The PageHelper is supposed to be the new class for code that's reused
across all Helpers for page related code.
- The Helper class is by now meant to be used for non-page specific
helper code, like used in the `checkConsole` method.
- The Helper class will act as central registry to enable all other
tests to use helper functions of all derived PageHelper tests.
Example:
`Helper.pools.create('foobar', ...);`
Fixes: http://tracker.ceph.com/issues/40397 Signed-off-by: Patrick Nawracay <pnawracay@suse.com>
xie xingguo [Tue, 18 Jun 2019 12:05:31 +0000 (20:05 +0800)]
mgr, osd: 'ceph osd df' by pool
Our test admin has been asking for this for the past few years:-)
Besides, this is also useful for operating on large Ceph clusters with
mutliple storage pools possibly spanning over all osds.
Patrick Donnelly [Fri, 14 Jun 2019 21:51:07 +0000 (14:51 -0700)]
Merge PR #28082 into master
* refs/pull/28082/head:
mgr / volumes: improve error handling
py / cephfs: invoke base class Error::__init__() from OSError::__init__()
mgr / volumes: carve out subvolume operations as a separate class
mgr / volumes: introduce subvolume specification class
mgr / volumes: carve of volume as a separate class
Stephan Müller [Wed, 17 Apr 2019 12:17:44 +0000 (14:17 +0200)]
mgr/dashboard: OSD custom action button removal
Now the custom action dropdown is removed from the OSD component. It was
nearly a clone of the table actions button component, but it had a
different behavior as it did not show the main action inside the dropdown.
Fixes: https://tracker.ceph.com/issues/39702 Signed-off-by: Stephan Müller <smueller@suse.com>
Kefu Chai [Fri, 14 Jun 2019 06:57:55 +0000 (14:57 +0800)]
crimson/osd: ignore exception when stopping osd
OSD::stop() is a top-level method in the sense that it will be called
directly when engine stops. so it should not throw any exceptions.
instead, we will print out the error and ignore the exception if any.
Venky Shankar [Sun, 19 May 2019 17:34:57 +0000 (13:34 -0400)]
mgr / volumes: improve error handling
This cleans up lots of return-fu statements and make the source
look much more pythonic. Functions should raise an instance of
VolumeException() class wherever necessary (error handling).
Venky Shankar [Fri, 17 May 2019 05:40:37 +0000 (01:40 -0400)]
mgr / volumes: carve out subvolume operations as a separate class
Move (and refactor) subvolume specific operations from main module
source to SubVolume class in a new subvolume source. Also, provide
hooks in VolumeClient to forward subvolume specific opertaions to
this class.
Venky Shankar [Thu, 16 May 2019 05:54:12 +0000 (01:54 -0400)]
mgr / volumes: introduce subvolume specification class
Specifications class that represents a unique subvolume
identified by (subvolume-id, group-id) tuple. Provide
heleper functions for fetching various subvolume specific
attributes such as subvolume path, group path etc.
Kefu Chai [Thu, 13 Jun 2019 08:28:29 +0000 (16:28 +0800)]
debian/: use ceph-osd for packaging crimson-osd
* debian/: remove ceph-crimson-osd package.
* debian/control: set `CEPH_OSD_BASENAME` env variable, which
will be consumed by `ceph-osd.install`. alternatively, we could
rename crimson-osd to ceph-osd in `override_dh_auto_install`,
but let's go with this way at this moment, unless `mv` in
`override_dh_auto_install` is proved to be better.
* ceph-osd.install: replace ceph-osd with crimson-osd if
`CEPH_EXTRA_CMAKE_ARGS` has `WITH_SEASTAR` in it. this only
happens when we are packaging the "crimson" flavor packages from
jenkins.
* ceph-osd.install: `chmod +x` this file, as we need to use
`/usr/bin/dh-exec` as the interpreter of it to perform variable
substitution and install.
Kefu Chai [Wed, 12 Jun 2019 08:32:55 +0000 (16:32 +0800)]
cmake: disable isal and vhost support of SPDK
* isal needs nasm, which is a new dependency. so let's disable it
at this moment.
* vhost requires DPDK compiled with vhost enabled. but it's disabled
when we compile DPDK.
Mykola Golub [Thu, 13 Jun 2019 11:05:17 +0000 (12:05 +0100)]
journal: wait for in flight advance sets on stopping recorder
Before object overflow detection optimization (83461c42b) the
overflow was detected when trying to send data, so when an object
set was advanced we always had some data and flush always
completed later. But now we detect overflow on client side, it
may happen when buffer is empty and flush may complete
when "advance object set" is still in flight.