Commit Graph

125308 Commits

Author SHA1 Message Date
Patrick Donnelly
4ee63174e6
Merge PR #42431 into master
* refs/pull/42431/head:
	cmake: add "mypy" back to tox envlist of "qa""
	qa/tasks/vstart_runner: add optional "sudo" param to _run_python()

Reviewed-by: Sebastian Wagner <swagner@suse.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2021-07-22 07:56:40 -07:00
Patrick Donnelly
e30663a18c
Merge PR #42444 into master
* refs/pull/42444/head:
	doc/cephfs/journaler: document options using confval directive

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2021-07-22 07:54:52 -07:00
Casey Bodley
c011af6903
Merge pull request #42380 from adamemerson/wip-51712
rgw: radosgw-admin errors if marker not specified on data/mdlog trim

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2021-07-22 10:19:17 -04:00
Dimitri Savineau
842fc2b605 ceph-volume/tests: use ansible_facts
Since inject_facts_as_vars is set to false in the ansible.cfg file then we
have to update the references to use ansible_facts[<thing>] instead of
ansible_<thing>.

Signed-off-by: Dimitri Savineau <dsavinea@redhat.com>
2021-07-22 10:00:29 -04:00
Dimitri Savineau
95056a24e4 ceph-volume/tests: use pytest rerunfailures
We already install the dependency from ceph-ansible requirements.txt and to
avoid false positive (like after rebooting a node) we can retry failing test.

Signed-off-by: Dimitri Savineau <dsavinea@redhat.com>
2021-07-22 10:00:29 -04:00
Dimitri Savineau
b758fdd829 ceph-volume/tests: set ANSIBLE_CONFIG env var
Without loading the ansible.cfg file from ceph-ansible project, we don't
have the pipelining enabled which can result in significant performance
improvement.
This removes the ANSIBLE_ACTION_PLUGINS, ANSIBLE_RETRY_FILES_ENABLED and
ANSIBLE_SSH_RETRIES environment variables as it is already included in the
ansible.cfg file.

Signed-off-by: Dimitri Savineau <dsavinea@redhat.com>
2021-07-22 10:00:29 -04:00
Dimitri Savineau
0ad615bab5 ceph-volume/tests: update ansible ssh_args env var
The ansible ssh_args parameter is usually defined in the ansible.cfg file.
Currently this variable is overrided in tox to manage the vagrant ssh file
but we lost all default values.

Signed-off-by: Dimitri Savineau <dsavinea@redhat.com>
2021-07-22 10:00:29 -04:00
Milind Changire
6edebf8a1f
Merge pull request #42329 from vshankar/wip-cephfs-mirror-dir-remove-registery
cephfs-mirror: record directory path cancel in DirRegistry

Reviewed-by: Milind Changire <mchangir@redhat.com>
2021-07-22 18:20:59 +05:30
Kefu Chai
3117a6c3dd
Merge pull request #42450 from tchaikov/wip-debian-jaeger
debian/control: depend on libjaeger only if <pkg.ceph.jaeger>

Reviewed-by: Deepika Upadhyay <dupadhya@redhat.com>
2021-07-22 20:25:46 +08:00
Kevin Zhao
d04ef800ab qa/run-tox-mgr-dashboard: Do not write to /tmp/test_sanitize_password.txt file
To allow running multiple instances of the same tests.

Fixes: https://tracker.ceph.com/issues/51792

Signed-off-by: Kevin Zhao <kevin.zhao@linaro.org>
2021-07-22 13:20:29 +01:00
Sebastian Wagner
1f8560816e
Merge pull request #42433 from sebastian-philipp/fix-gen-keepalive-config
mgr/cephadm: Fix haproxy not being recognized as a proper daemon

Reviewed-by: Adam King <adking@redhat.com>
Reviewed-by: Asbjørn Sannes <asbjorn.sannes@interhost.no>
2021-07-22 12:04:54 +02:00
Kefu Chai
8e1edd746f debian/control: depend on libjaeger only if <pkg.ceph.jaeger>
otherwise we'd have following failure when trying to install ceph
packages if they are not built with pkg.ceph.jaeger profile:

ceph-common : Depends: libjaeger (= 17.0.0-6321-g62349ba4-1focal) but it is not installable

this change should address the regression introduced by
4b69d3a184

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-22 17:59:51 +08:00
Jonas Zeiger
d83d4f3586 ceph-volume: lvm batch: fast_allocations(): avoid ZeroDivisionError
* Fixes Bug #51526 ( https://tracker.ceph.com/issues/51526 )

Signed-off-by: Jonas Zeiger <jonas.zeiger@talpidae.net>
2021-07-22 11:19:37 +02:00
Sebastian Wagner
a8f1cf2edb
mgr/cephadm: Fix haproxy not being recognized as a proper daemon
Turns out daemon types != service types:

    cephadm [WRN] Found unknown service type haproxy on host smithi019
    cephadm [WRN] Found unknown service type keepalived on host smithi019

leading to `self.mgr.cache.get_daemons_by_service(spec.service_name())`
not returning any daemons.

Fixes: https://tracker.ceph.com/issues/51311

Signed-off-by: Sebastian Wagner <sewagner@redhat.com>
2021-07-22 10:55:54 +02:00
Kefu Chai
71e20279e9 rgw/rgw_lua: s/boost::filesystem/std::filesystem/
for less dependencies on 3rd party libraries, and to reduce the
compilation time.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-22 16:49:30 +08:00
Kefu Chai
e3245d12a0 cmake: s/NPM/NPM_EXECUTABLE/
so the naming is more consistent with other executables found by
find_program().

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-22 16:35:57 +08:00
Kefu Chai
6d17e684ec cmake: use ${NPM} instead of npm
so it is more explicit that ${NPM} is used when NODEENV is not
specified.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-22 16:35:47 +08:00
Kefu Chai
e4f1de64d4 cmake: simplify the regex for matching npm command
npx command was added in 3fe39d4899,
but we don't use npx anymore, so drop it.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-22 16:35:40 +08:00
Kefu Chai
993e250682 cmake: push dashboard build logic down
it's simpler to build dashboard in dashboard/CMakeLists.txt

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-22 16:35:30 +08:00
Kefu Chai
7633a97a15 cmake: push frontend build logic down
it's simpler to build frontend in frontend/CMakeLists.txt

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-22 16:35:12 +08:00
Kefu Chai
73e983cfe8 pybind/mgr/dashboard: build frontend/dist in build
to enable us to build out of source, we should build the frontend
artifacts out of src. in this change:

* cmake:
  - install frontend/dist from build
  - drop rules to exclude unused frontend artifacts.
  - pass `--output-path` option to ng
  - copy `frontend/package.json` to build so that the frontend
    can find it
* pybind/mgr/dashboard/module.py: fall back to build directory
  if frontend/dist is not found.
* pybind/mgr/dashboard/__init__.py: use frontend/dist when performing
  unit test.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-22 16:33:33 +08:00
Pulkit Mittal
8f84f121e1 doc: fix typo and grammar
Signed-off-by: Pulkit Mittal <2pulkit2@gmail.com>
2021-07-22 13:48:07 +05:30
Kefu Chai
7048172cad
Merge pull request #38783 from ideepika/wip-osd-tracing
cmake/ninja: support ninja for jaegertracing

Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-07-22 15:33:13 +08:00
Yingxin Cheng
97bcfda549 crimson/os/seastore/segment_manager: respect len parameter of BlockSegmentManager::read()
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-07-22 15:28:40 +08:00
Kefu Chai
a4d654b9c0 cmake: use PATTERN instead of REGEX to exclude installed files
for better readability

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-22 13:45:04 +08:00
Kefu Chai
dfd3deb5b2 cmake: install mgr module separately
instead of installing the whole directory, install mgr modules
individually, so it's more clear that what EXCLUDE pattern is
used in which mgr module.

this improves the maintability and readability. in future, we
should only install the artifacts. with this change, we can
specify the include pattern only for dashboard mgr module so
that, for instance, only .js, .html and .css files are installed.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-22 13:44:34 +08:00
Deepika Upadhyay
5f5de4ccb5 cmake: fix jaeger linking to ceph libraries
updates:
* custom target jaeger_base
* target jaeger-base which encapsulates all jaeger libs
* include external libraries path needed linking libraries and including
  opentracing and jaegertracing headers files

Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2021-07-22 11:09:09 +05:30
Deepika Upadhyay
a92a7aa236 cmake: change debian DESTDIR for installing jaeger deps
debian uses debian/tmp as destination dir for installing build files,
but since we are using common path($build_dir/external) available both
for rpm and debian based dependency installation, it becomes far more
complicated to maintain include/link path for these external projects.

elaborating on it:
path we are configuring for both rpm and debian installing including,
and linking of external librarires:
/build/ceph-17.0.0-5779-g928f9e55/obj-x86_64-linux-gnu/external/
debian appends DESTDIR to this path, and hence our predefined target
artificats cannot find correct path for external libs, I tried adding
ENV${DESTDIR} so that it could include correct external lib install
path, but it still cannot find them:

failed to link in case of:
-  install(DIRECTORY $ENV{DESTDIR}${CMAKE_BINARY_DIR}/external/include/jaegertracing
-                $ENV{DESTDIR}${CMAKE_BINARY_DIR}/external/include/opentracing
-          DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-  include_directories(SYSTEM ${CMAKE_INSTALL_INCLUDEDIR}/jaegertracing)
-  include_directories(SYSTEM ${CMAKE_INSTALL_INCLUDEDIR}/opentracing)

-- Installing: /build/ceph-17.0.0-5790-g6bc03cbd/debian/tmp/build/ceph-17.0.0-5790-g6bc03cbd/obj-x86_64-linux-gnu/external/include/jaegertracing/Tracer.h

cd /build/ceph-17.0.0-5790-g6bc03cbd/obj-x86_64-linux-gnu/src && /usr/bin/c++  -DBOOST_ASIO_DISABLE_THREAD_KEYWORD_EXTENSION -DBOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT -DHAVE_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_REENTRANT -D_THREAD_SAFE -D__CEPH__ -D__STDC_FORMAT_MACROS -D__linux__ -I/build/ceph-17.0.0-5790-g6bc03cbd/obj-x86_64-linux-gnu/src/include -I/build/ceph-17.0.0-5790-g6bc03cbd/src -isystem /build/ceph-17.0.0-5790-g6bc03cbd/obj-x86_64-linux-gnu/boost/include -isystem /build/ceph-17.0.0-5790-g6bc03cbd/obj-x86_64-linux-gnu/include -isystem /build/ceph-17.0.0-5790-g6bc03cbd/src/xxHash -isystem /build/ceph-17.0.0-5790-g6bc03cbd/src/rapidjson/include -isystem /build/ceph-17.0.0-5790-g6bc03cbd/src/include/jaegertracing -isystem /build/ceph-17.0.0-5790-g6bc03cbd/src/include/opentracing  -g -O2 -fdebug-prefix-map=/build/ceph-17.0.0-5790-g6bc03cbd=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC   -U_FORTIFY_SOURCE -Wall -fno-strict-aliasing -fsigned-char -Wtype-limits -Wignored-qualifiers -Wpointer-arith -Werror=format-security -Winit-self -Wno-unknown-pragmas -Wnon-virtual-dtor -Wno-ignored-qualifiers -ftemplate-depth-1024 -Wpessimizing-move -Wredundant-move -Wstrict-null-sentinel -Woverloaded-virtual -fno-new-ttp-matching -fstack-protector-strong -fdiagnostics-color=auto -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -std=c++17 -o CMakeFiles/common-objs.dir/mds/mdstypes.cc.o -c /build/ceph-17.0.0-5790-g6bc03cbd/src/mds/mdstypes.cc
In file included from /build/ceph-17.0.0-5790-g6bc03cbd/src/osd/OpRequest.h:21,
                 from /build/ceph-17.0.0-5790-g6bc03cbd/src/osd/OpRequest.cc:3:
/build/ceph-17.0.0-5790-g6bc03cbd/src/common/tracer.h:10:10: fatal error: jaegertracing/Tracer.h: No such file or directory

Since the install path is in our build environment for these librarires,
skipping DESTDIR looks to me hacky fix, but does the job.
with empty destdir:

-- Installing: /build/ceph-17.0.0-5791-gb97b9640/obj-x86_64-linux-gnu/external/include/jaegertracing/Tracer.h

cd /build/ceph-17.0.0-5791-gb97b9640/obj-x86_64-linux-gnu/src/mon && /usr/bin/c++  -DBOOST_ASIO_DISABLE_THREAD_KEYWORD_EXTENSION -DBOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT -DHAVE_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_REENTRANT -D_THREAD_SAFE -D__CEPH__ -D__STDC_FORMAT_MACROS -D__linux__ -I/build/ceph-17.0.0-5791-gb97b9640/obj-x86_64-linux-gnu/src/include -I/build/ceph-17.0.0-5791-gb97b9640/src -isystem /build/ceph-17.0.0-5791-gb97b9640/obj-x86_64-linux-gnu/boost/include -isystem /build/ceph-17.0.0-5791-gb97b9640/obj-x86_64-linux-gnu/include -isystem /build/ceph-17.0.0-5791-gb97b9640/src/xxHash -isystem /build/ceph-17.0.0-5791-gb97b9640/src/rapidjson/include -isystem /build/ceph-17.0.0-5791-gb97b9640/obj-x86_64-linux-gnu/external/include -isystem /build/ceph-17.0.0-5791-gb97b9640/src/rocksdb/include  -g -O2 -fdebug-prefix-map=/build/ceph-17.0.0-5791-gb97b9640=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC   -U_FORTIFY_SOURCE -Wall -fno-strict-aliasing -fsigned-char -Wtype-limits -Wignored-qualifiers -Wpointer-arith -Werror=format-security -Winit-self -Wno-unknown-pragmas -Wnon-virtual-dtor -Wno-ignored-qualifiers -ftemplate-depth-1024 -Wpessimizing-move -Wredundant-move -Wstrict-null-sentinel -Woverloaded-virtual -fno-new-ttp-matching -fstack-protector-strong -fdiagnostics-color=auto -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -std=c++17 -o CMakeFiles/mon.dir/MgrMonitor.cc.o -c /build/ceph-17.0.0-5791-gb97b9640/src/mon/MgrMonitor.cc

Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2021-07-22 11:09:09 +05:30
Deepika Upadhyay
ffc3764606 cmake: adds BUILD_BYPRODUCT for external build jaegertracing libs
* adds BUILD_BYPRODUCT which tells ninja which library will be generated
after the build(needed for dependent build libs)

Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2021-07-22 11:09:09 +05:30
Deepika Upadhyay
1e2278e158 cmake: minor reorder of boost path in jaeger build external projet
* Boost is a dependency for jaeger, to use the right version, we pass
ceph build boost path to cmake jaeger build step

Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2021-07-22 11:08:17 +05:30
Deepika Upadhyay
2eea50800e cmake: target name Jaeger >> jaegertracing
since jaegertracing is the original target that jaeger submodule uses in
it's cmake, cmake build complained if named otherwise

Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2021-07-22 11:02:18 +05:30
Deepika Upadhyay
f51480b223 cmake: move ExternalProjectHelper & IncludeJaeger to BuildJaeger
set_library_properties_for_external_project assists with setting right target
properties for all jaeger dependencies.
IncludeJaeger would take care of linking and creating these targets
having them spread out when they are highly coupled seems not optimal.

Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2021-07-22 11:01:08 +05:30
Deepika Upadhyay
be43f6133c debian, install-deps.sh: use Build-Profiles to optionally build with jaeger
we will now be using BuildProfileSpec based optional pkg building,
removing comment from .install file is no longer needed If
pkg.ceph.jaeger is enabled debian/control, it shall work to install
jaeger and it's dependencies.

  https://wiki.debian.org/BuildProfileSpec.

Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2021-07-22 11:01:06 +05:30
Deepika Upadhyay
84ad544433 cmake: add find_package(thrift) support for thrift 0.13
adds Findthrift.cmake which is used to find thrift 0.13, as a dependency
for building jaegertracing

* bump up submodule version for jaeger-client-cpp for thrift compiler
removal

Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2021-07-22 10:59:48 +05:30
Deepika Upadhyay
80e82686eb ceph.spec, cmake, debian: use thrift 0.13+ from distro pkg
the change to build and ship libthift was added when we didn't have 0.13.0
version shipped via distro pkgs, now that centos 8 and F34 supports req.
version, we do not need to build and ship it with jaeger library.

Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2021-07-22 10:59:45 +05:30
Kefu Chai
1a5bcbb335
Merge pull request #42342 from dsavineau/cephadm_template_jinja2_lint
mgr/cephadm/templates: add jinja2 lint

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Sebastian Wagner <sewagner@redhat.com>
2021-07-22 13:28:33 +08:00
Deepika Upadhyay
e92b4745ba ceph.spec: enable WITH_JAEGER=ON if --with-jaeger passed
Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2021-07-22 10:58:12 +05:30
Deepika Upadhyay
00f44782af cmake, ceph.spec, debian: use yaml-cpp >= 0.6
* since focal and centos both have yaml-cpp 0.6 available, which dropped
having boost as it's dependency, moving to 0.6 seems a good upgrade.

* cmake: delete Buildyaml, since distro suppilies v0.6 this is not needed

This fixes the build failure, as jaegertracing requires yaml-cpp v0.6+
```
Could NOT find yaml-cpp: Found unsuitable version "", but required is at
  least "0.5.1" (found yaml-cpp_LIBRARY-NOTFOUND)

Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2021-07-22 10:58:08 +05:30
Deepika Upadhyay
9581902ac5 vstart.sh: use quay to pull jaeger instead of docker
In servers like the ones available in sepia labs, users might hit rate
limiting for docker pull, it is better to use quay image to avoid this
issue.

https://blog.container-solutions.com/dealing-with-docker-hub-rate-limiting

Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
2021-07-22 10:56:44 +05:30
Kefu Chai
bb129fc0ed doc/cephfs/journaler: document options using confval directive
better maintainablity this way. and drop unsupported options of

- journaler batch interval
- journaler batch max

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-22 11:16:56 +08:00
Kefu Chai
ffbc3164d4 cmake: add "mypy" back to tox envlist of "qa""
This reverts commit 286e46578d.

since 0017df2006 has been merged, let's
add mypy back.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-22 10:09:21 +08:00
Kefu Chai
0017df2006 qa/tasks/vstart_runner: add optional "sudo" param to _run_python()
to silence mypy warnings like:

tasks/vstart_runner.py:691: error: Definition of "_run_python" in base class "LocalCephFSMount" is incompatible with definition in base class "CephFSMount"
tasks/vstart_runner.py:705: error: Definition of "_run_python" in base class "LocalCephFSMount" is incompatible with definition in base class "CephFSMount"

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-22 10:08:27 +08:00
Kefu Chai
975fd8d6f5
Merge pull request #42284 from orozery/remove-calc-target-vector-copies
osdc/Objecter: avoid vector copies in _calc_target

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-07-22 09:01:46 +08:00
Kefu Chai
b11d77a178
Merge pull request #42401 from tchaikov/wip-cmake-version
cmake: drop set(VERSION ...)

Reviewed-by: Guillaume Abrioux <gabrioux@redhat.com>
2021-07-22 08:58:10 +08:00
Kefu Chai
2bd034056a
Merge pull request #42408 from tchaikov/wip-mgr-always-on
mon/MgrMonitor: drop nautilus modules from always_on_modules

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
2021-07-22 08:56:43 +08:00
Kefu Chai
8271916278
Merge pull request #42415 from sebastian-philipp/haproxy-user-root
cephadm: haproxy 2.4 defaults to a different container user.

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Dimitri Savineau <dsavinea@redhat.com>
2021-07-22 08:55:46 +08:00
Neha Ojha
c9f8846b7f
Merge pull request #41907 from kamoltat/wip-ksirivad-progress-time-interval
pybind/mgr/progress: introduce 5 second sleep interval

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2021-07-21 16:53:38 -07:00
Patrick Donnelly
4b1e101571
Merge PR #42295 into master
* refs/pull/42295/head:
	doc/cephfs: recover file system after recovering

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2021-07-21 13:13:43 -07:00
Neha Ojha
d09a04617e
Merge pull request #42402 from ljflores/perf-counter-docs
doc/dev/perf_counters: update docs to include more context about perf counter usage

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Neha Ojha <nojha@redhat.com>
2021-07-21 10:40:46 -07:00
Kefu Chai
98d8a9f0c7
Merge pull request #42333 from tchaikov/wip-doc-program
doc/man/8/ceph-volume: specify "program" for subcommands

Reviewed-by: Neha Ojha <nojha@redhat.com>
2021-07-22 01:35:34 +08:00