Nathan Cutler [Tue, 15 Jan 2019 14:43:13 +0000 (15:43 +0100)]
rpm: move Python deps out of distro-conditional blocks
The python%{_python_buildid}-bcrypt and python%{_python_buildid}-requests RPMs
are identically named across all the RPM distros, so move them out of the
distro conditional blocks.
Sage Weil [Wed, 13 Feb 2019 22:22:40 +0000 (16:22 -0600)]
Merge PR #26389 into master
* refs/pull/26389/head:
message/MMonMgrReport: conditionally reencode PGMapDigest
qa/suites/upgrade/luminous-x/parallel: enable all classes
qa/suites/upgrade/luminous-x/parallel/5-final-workload/rados_mon_thrash: use x branch
qa/suites/upgade/luminous-x: pglog_hardlimit succeeds now on luminous due to backport
mgr/DaemonServer: use a luminous-compatible 'mgr metadata' command
mgr/Mgr: print bad (non-object) json
qa/suites/upgrade/luminous-x/stress-split: mons on separate hosts, enable msgr2
qa/suites/upgrade/luminous-x/parallel: mon per host, msgr2
qa/suites/upgrade/luminous-x: whitelist 'slow request'
mon/HealthMonitor: add mon_warn_on_msgr2_not_enabled
Sage Weil [Fri, 8 Feb 2019 19:46:00 +0000 (13:46 -0600)]
qa/suites/upgrade/luminous-x/parallel: enable all classes
Otherwise it's annoying because the class list changes between luminous and nautilus,
and we don't want to futz around with changing this setting during the upgrade.
The problematic classes are 'cas' (added) and 'sdk' (not enabled by default but
included by the cls/ workunit.
Kefu Chai [Thu, 7 Feb 2019 13:13:14 +0000 (21:13 +0800)]
msg/msg_types.h: do not cast `ceph_entity_name` to `entity_name_t` for printing
in GCC-9, `-Waddress-of-packed-member` is enabled, so we have warnings like:
src/msg/msg_types.h:142:41: warning: converting a packed 'const
ceph_entity_name' pointer (alignment 1) to a 'const entity_name_t'
pointer (alignment 8) may result in an unaligned pointer value
[-Waddress-of-packed-member]
142 | return out << *(const entity_name_t*)&addr;
| ^~~~
since the alignment of these two structures are different, we cannot
cast a structure with the alignment of 1 to a structure with the
alignment of 8. as the code generated by compiler accessing the members
of alignment 8 won't work with the members of alignment 1, we need to
create a temporary structure for printing it.
Kefu Chai [Tue, 12 Feb 2019 09:13:12 +0000 (17:13 +0800)]
rpm: split ceph-mgr-dashboard plugin into its own package
to make ceph-mgr-dashboard a separated package
- helps to reduce the repo size of downstream. because
ceph-mgr-dashboard is an architecture independent package. by
making it separated package avoids needless duplication of
the same data in mutiple .debs.
- gives user a fine grained control of selection.
Tim Serong [Wed, 13 Feb 2019 11:08:05 +0000 (22:08 +1100)]
ceph.spec.in: Make ceph-mgr own /usr/lib64/ceph/mgr directory
Without this, no package actually owns the /usr/lib64/ceph/mgr directory
so the build fails with "directories not owned by a package" errors for
ceph-mgr, ceph-mgr-diskprediction-local, ceph-mgr-diskprediction-cloud
and ceph-mgr-rook.
Tim Serong [Wed, 13 Feb 2019 11:05:28 +0000 (22:05 +1100)]
ceph.spec.in: Don't use noarch for ceph-mgr module subpackages
Even though ceph-mgr modules are notionally non-architecture-specific,
the files themselves are installed to an architecture-specific path
(/usr/lib64/ceph/mgr/....), which causes the build to fail on SUSE
distros with a huge long list of errors like:
ceph-mgr-diskprediction-cloud.noarch: E: suse-filelist-forbidden-noarch
(Badness: 10000) /usr/lib64/ceph/mgr/diskprediction_cloud is not
allowed in a noarch package
[...]
(none): E: badness 1120287 exceeds threshold 1000, aborting.
Kefu Chai [Tue, 12 Feb 2019 09:05:30 +0000 (17:05 +0800)]
debian: split ceph-mgr-dashboard plugin into its own package
to make ceph-mgr-dashboard a separated package
- helps to reduce the repo size of downstream. because
ceph-mgr-dashboard is an architecture independent package. by
making it separated package avoids needless duplication of
the same data in mutiple .debs.
- gives user a fine grained control of selection.
Jeff Layton [Thu, 7 Feb 2019 18:00:38 +0000 (13:00 -0500)]
mgr/dashboard: use orchestrator_cli to figure out the backend
Currently the dashboard has its own setting for the orchestrator
backend, which means that one has to set it in both the dashboard and
the orchestrator_cli module if you intend to use both.
Change the dashboard code to use the setting in the orchestrator_cli
module, and eliminate the dashboard-specific setting.
Jeff Layton [Thu, 7 Feb 2019 18:39:59 +0000 (13:39 -0500)]
mgr: make orchestrator_cli be always-on
The volumes module has at least a loose dependency on the orchestrator,
and thus also relies on the orchestrator_cli module for the backend
setting. Since the volumes module is always-on, do the same with the
orchestrator_cli module.
Yingxin Cheng [Wed, 30 Jan 2019 02:29:33 +0000 (10:29 +0800)]
crimson/net: crimson messenger performance test tool
Support the following settings:
* mode: both, client mode, server mode;
* set server address;
* rounds of messages;
* keepalive-ratio;
* block size;
* io-depth;
Tiago Melo [Mon, 11 Feb 2019 15:08:25 +0000 (15:08 +0000)]
mgr/dashboard: Fix order of table buttons
"float:none" is changing the order of the table buttons.
By reverting this change and setting .oadatatableactions to "float:left",
we get the same result as intended before.
Kefu Chai [Tue, 12 Feb 2019 08:30:03 +0000 (16:30 +0800)]
rpm,deb: remove python-jinja2 dependency
python-jinja2 dependency was added for the dashboard v1 in 87399bea. but
dashboard v2, which is now known as "dashboard" has taken the place of
the old dashboard. and dashboard now does not use jinja2, so we should
drop this dependency.
Yingxin Cheng [Tue, 12 Feb 2019 05:11:16 +0000 (13:11 +0800)]
crimson/net: enable connections on all cores
Implement the sharded crimson-messenger:
* Sharded Messenger: provides shared-nothing Messenger for each shard,
it's interfaces are symmetric to be called, any modifications will be
applied to all shards.
* Sharded/non-sharded Dispatcher interface: allow connections to be
dispatched, and related resources (such as Session) to be managed in
its own shard or not.
* Sharded Connection: A connection only lives at one dedicated core
during its lifecycle. It's sharded by its peer_IP in this PoC, because
peer port and nonce are not available when a socket is accepted. While
its interfaces are safe to be called from all shards.
* Replace `boost::intrusive_ptr` by seastar native smart ptrs for
`Connection` and `SocketConnection`, because they need to be
destructed from its original core.
* Unit test: establish multiple connections on both client and server
sides, they runs concurrently and creates sessions that are also
following shared-nothing design.
Sage Weil [Mon, 11 Feb 2019 23:26:19 +0000 (17:26 -0600)]
Merge PR #26282 into master
* refs/pull/26282/head:
mon: include progress events in 'ceph status' output
mon/MgrStatMonitor: persist progress events
mgr: send progress events to mon
mgr/progress: revise message syntax a bit
mgr/progress: report events into mgr
mgr: allow progress events to be reported from modules
mgr/progress: make persist period/interval configurable
mgr/progress: prune completed events