Diksha Godbole [Wed, 29 Aug 2018 06:56:59 +0000 (12:26 +0530)]
mgr/dashboard: Added new logs component
Added new Logs component and created a cluster->logs menu item. Moved the logs from the dashboard home page to the dedicated logs page.Additional comments resolved.Dropped Logs from health component.
Brad Hubbard [Thu, 22 Nov 2018 00:07:22 +0000 (10:07 +1000)]
install-deps.sh: Remove CR repo
Remove the continuous release repos for CentOS and Virtuozzo 7 as they
should no longer be needed since http://tracker.ceph.com/issues/13997 is
no longer relevant and the newer versions of selinux packages pulled in
by the build system are causing problems for systems without CR repos
enabled.
Nathan Cutler [Wed, 21 Nov 2018 15:14:46 +0000 (16:14 +0100)]
build/ops: do_cmake.sh: automate py3 build options for certain distros
Before this patch, run-make-check.sh was setting the cmake options for
py3 build based only on the absence of a python2 binary in the system.
This was not sufficiently deterministic, and it didn't help folks who
run do_cmake.sh directly.
With this patch, we explicitly force the py3 build in do_cmake.sh, for
those OS types/versions we know need it.
GCC 7.3 does not support [[maybe_unused]] very well, so it emits
-Wunused-variable warnings even if the variables are marked with
maybe_unused. moreover, the C++17 standard does not forbid these
warnings:
> For an entity marked maybe_unused, implementations are encouraged not
to emit a warning that the entity is unused, or that the entity is used
despite the presence of the attribute.
see also n4659, dcl.attr.unused
so, in this change, the warnings are silenced manually.
alfonsomthd [Wed, 21 Nov 2018 12:46:56 +0000 (13:46 +0100)]
mgr/dashboard: Status info cards' improvements
- MGR info card:
Show amount of daemons active instead of active mgr name.
Daemons active text line: show mgr active name when 'on mouse over'.
- OSD/MDS info cards (for consistency):
The same text appearance as MGR card.
- Hosts/Object Gateway/iSCSI cards: added 'total' after amount for clarification.
- Some CSS refactor.
Fixes: https://tracker.ceph.com/issues/37283 Signed-off-by: Alfonso Martínez <almartin@redhat.com>
Sebastian Wagner [Wed, 21 Nov 2018 12:37:51 +0000 (13:37 +0100)]
Merge pull request #24610 from SUSE/wip-orchestrator-deepsea-redux
mgr/deepsea: DeepSea orchestrator module
Reviewed-by: Jan Fajerski <jfajerski@suse.com> Reviewed-by: John Spray <john.spray@redhat.com> Reviewed-by: Sebastian Wagner <sebastian.wagner@suse.com>
Tim Serong [Tue, 16 Oct 2018 08:39:41 +0000 (19:39 +1100)]
mgr/deepsea: DeepSea orchestrator module
This module provides integration between Ceph's orchestrator framework
and DeepSea, a Ceph deployment and management system built upon Salt.
Included so far are implementations of get_inventory() and
describe_service(). This allows `ceph orchestrator device ls`, `ceph
orchestrator service ls` and `ceph orchestrator service status` to
operate correctly.
To test, try:
# ceph mgr module enable orchestrator_cli
# ceph mgr module enable deepsea
# ceph orchestrator set backend deepsea
# ceph deepsea config-set salt_api_url <salt api url>
# ceph deepsea config-set salt_api_username <salt api username>
# ceph deepsea config-set salt_api_password <salt api shared secret>
# ceph orchestrator device ls
# ceph orchestrator service ls
Sage Weil [Wed, 6 Sep 2017 17:27:33 +0000 (13:27 -0400)]
qa/tasks/ceph_manager: avoid test_map_discontinuity stall with too few up osds
Some tests have m=2,k=2 and this will break them. Sometimes even if we
have 5 up osds, we end up with 4 and CRUSH gets picky, so build in a
buffer and only do this if we have 6 up.
We don't have an easy way from here to see what the min up osds for healthy
is... basically this map discontinuity test just sucks.
Kefu Chai [Tue, 20 Nov 2018 14:13:35 +0000 (22:13 +0800)]
cmake: do not pass unnecessary param to setup.py
--single-version-externally-managed is used for packaging python eggs
to deb. so the metadata can be stored in the egg, and can be accessed
by user if necessary, see [1]. but this does not apply to users who
just want to "make install" without packaging Ceph.
the problem is, if we pass --single-version-externally-managed to
setup.py, we need to pass --record or --root also. otherwise setuptools
complains:
error: You must specify --record or --root when building system packages
so in this change, we choose not to pass
"--single-version-externally-managed", unless $DESTDIR is set.
both "ceph.spec.in" and "debian/rules" set $DESTDIR when running "make
install". so we can always check $DESTDIR to tell if current "make
install" is launched by the packaging script or not. this might not be
accurate, but good enough. assuming enduser does not use DESTDIR when
running plain "make install".
- new (nautilus) OSD connects to heartbeat port on an older OSD (<= mimic)
and sends an authorizer
- mimic osd ms_verify_authorizer succeeds, but does not set up the
session key because mimic doesn't care.. it blindly sets isvalid = true.
- mimic osd later creates a session handler
- mimic osd later tries to validate a message and crashes
The fix is to not instantiate the session handler if there is no key. Note
that this happens *after* we have authenticated the request (called
ms_verify_authorizer), which is responsible for populating the session
key while verifying the authorizer (if it is authenticating at all), so
this session_key is always set on an authenticated connection.
Fixes: http://tracker.ceph.com/issues/36443 Signed-off-by: Sage Weil <sage@redhat.com>
Fedora 29 still ships a Python 2 binary, but some of Ceph's build
dependencies are only available in py3 versions there. In other
words, from F29 on, it is no longer possible to do a py2 Ceph build
on Fedora, even if a python2 binary exists on the system.
If that were not enough, the Python 2 that ships with Fedora 29 is
linked against a non-compatible version of OpenSSL.
Before this commit, install-deps.sh was overriding the spec file's
Python build setting based on the presence or absence of a python2
binary. As the bug cited below indicates, this was not a good idea.
It's better for the spec file to be explicit about which OS versions
are py2 and which are py3, and just stick to that.
Kefu Chai [Mon, 19 Nov 2018 08:09:53 +0000 (16:09 +0800)]
crimson/net: extract state transition out of repeat_connect()
and extract state transition out of repeat_handle_connect()
in this change, the connect/handle-connect loop is restructured, to
avoid ad-hoc state changes in helper functions. this pave the road to
explicit state transtion using named states.
also, exception is thrown instead in handle_connect_reply(), we should
not proceed in case of failures. and we need do error handling in the
named state in future.
currentl, `state` is set to `state_t::open` in `start_connect()` and
`start_accept()`, the next step is to set it in a named state.
Sage Weil [Tue, 20 Nov 2018 12:51:29 +0000 (06:51 -0600)]
Merge PR #24844 into master
* refs/pull/24844/head:
osd: drop PGBackend::Listener::get_epoch().
osd: massively switch to get_osdmap_epoch().
osd: switch the return type of PG::get_osdmap().
Yingxin [Wed, 17 Oct 2018 20:45:53 +0000 (04:45 +0800)]
crimson/net: connection closed during connecting
It is possible during `seastar::connect()`, the connection is marked
closed (when SocketConnection::socket is unavailable), then
`seastar::connect()` successfully returns a connected socket.
Kefu Chai [Tue, 20 Nov 2018 04:43:34 +0000 (12:43 +0800)]
install-deps.sh: install prebuilt libboost dependencies for bionic also
* extract boost install function into a helper, so we don't need to
repeat it when adding support for new distros.
* install ceph-libboost-* for bionic build also. we check for the
existence in run-make-check.sh, so there is no need to update
the build script elsewhere.
Changcheng Liu [Fri, 26 Oct 2018 06:32:09 +0000 (14:32 +0800)]
install-deps.sh: correct gcc version info as major.minor.patch
On ubuntu 18.04, "gcc -dumpversion" output "7", it result in
that below check will return false:
dpkg --compare-versions 7 ge 7.0
Then, this script will install other gcc.
Actully, the full gcc version "gcc -dumpfullversion" output is
"7.3.0", than below check will turn true:
dpkg --compare-version 7.3.0 ge 7.0
So, there's no need to install other gcc.
In case of hitting error on ubuntu16.04, use below parameter:
gcc -dumpfullversion -dumpversion
Signed-off-by: Changcheng Liu <changcheng.liu@intel.com>