Sage Weil [Wed, 3 Apr 2019 19:07:27 +0000 (14:07 -0500)]
Merge PR #27291 into master
* refs/pull/27291/head:
qa/suites/upgrade/nautilus-x-singleton: upgrade mgrs early
qa/suites/upgrade/mimic-x-singleton: upgrade mgrs later
qa/suites: add upgrade/nautilus-x-singleton and symlink from rados/upgrade
qa/suites: move rados/upgrade/mimic-x-singleton to upgrade/ and symlink
Ernesto Puerta [Tue, 26 Mar 2019 18:01:01 +0000 (19:01 +0100)]
mgr/dashboard: unify button/URL actions naming
- Mappings (actually an Enum) created for actions (buttons and other UI elements) and URLs: ActionLabels and URLVerbs.
- An alternative would be to fix/improve the current i18n-polyfill, which only works with literal strings (not even with 'const enums' which become literals after Typescript transpiling).
- Additionally having a predefined file with some strings to translate (actions, verbs, etc) could improve on the 1st of the 2-stage i18n process (as extraction tool has a lot of limitations).
- A corresponding ActionLabelsI18n service with translated labels (it's a service as I haven't found the way to either translate no-const strings (ngx-translate/AST parser failure) or get a static translator).
- This services could/should be extended to cover all strings that are defined in static/globally scoped objects before any I18n provider has been initialized.
- Breadcrumbs are not translated (neither were they before this change). This part remains untackled: using 'proxy' static objects and performing live translation could deal with the issue.
- New URLBuilder service created (following a established pattern in the Java/.NET world) . This should avoid the need of messing with literal URLs and string composition/parsing, and while the front-end is not meant to be consumed by anyone, Angular does not provide any other way for the app to navigate between components, so the URLs are a de-facto interface contract. Unlike this approach is not flawless, it's easier to enforce, while issues coming from free-from strings are really hard to catch.
- This could be further improved by using a router registry/dynamic routing. Most of the routes are trivial.
- As a side effect of these changes, routing module has been refactored and some routes moved to their specific modules (pool, rbd, rgw), via loadChildren and routes.forChild() magic. Now the above mentioned components are lazy-loaded/pre-loaded (it means right after the main code is loaded). This should also decrease the loading time (though probably this is not biggest time eater here).
- As now modules can be loaded multiple times, not only from App module by means of lazy loading, but also from other ones (as PoolModule loads BlockModule to get QoS widgets in Pool windows), now lazy loaded modules include 2 NgModules (one with imports: RouterModule.forChild(routes), meant for lazy-loading, and another without routes).
- Caveat: Some parts might not be (fully) translated (NFS, iSCSI, mirroring), as there's been ongoing work on them and it's hard to keep up with the new code.
These changes will be a waste of time if the new code does not take benefit from/adheres to it, so I'm still figuring out how to spread this (nothing really fancy to demo). Maybe adding some checks/harnessing to enforce the new naming convention (ideas greatly welcome here).
install-deps,rpm: enable devtoolset-8 on aarch64 also
in 5ae3b06e, we left aarch64 with devtoolset-7, but aarch64 builders are
also suffering from http://tracker.ceph.com/issues/38892. so i installed
devtoolset-8 on all aarch64 builders manually from the rpm packages
downloaded from koji builder:
Sage Weil [Tue, 2 Apr 2019 21:41:15 +0000 (16:41 -0500)]
qa/suites/upgrade/nautilus-x-singleton: upgrade mgrs early
The mgrmap may change when the mons upgrade, causing the mgr daemons to
respawn. Restart mgr daemons before mons to avoid a mismatch between
the running version and the ondisk binary.
Sage Weil [Tue, 2 Apr 2019 21:39:58 +0000 (16:39 -0500)]
qa/suites/upgrade/mimic-x-singleton: upgrade mgrs later
The mgrmap may change when the mons upgrade, causing the mgr daemons to
respawn. Delay the upgrade until later so that the ondisk binary does
not change out from underneath them.
Jason Dillaman [Tue, 2 Apr 2019 20:34:56 +0000 (16:34 -0400)]
test/librados_test_stub: ensure the log flusher thread is started
Recent changes merged in cd6a5b9c40779956629803f222c365bdb291a169
resulted in the logger flusher thread never being started for
librados_test_stub-derived unit tests.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
if ceph-osd takes longer than 1 seconds to unmount the objectstore, it
won't get a chance to fully persist all of its stuff to disk before
init-ceph kills it again.
in my case, `MemStore::_save()` fails to write $path/collections before
it gets killed, if it has more than 512 PGs.
Tim Serong [Fri, 15 Mar 2019 04:52:23 +0000 (15:52 +1100)]
mgr/deepsea: use ceph_volume output in get_inventory()
DeepSea is being updated to use ceph_volume internally (see
https://github.com/SUSE/DeepSea/pull/1517). Once this is done,
the mgr_orch.get_inventory runner will just be returning the
raw ceph_volume output, so this commit updates the DeepSea mgr
module to match.
Tim Serong [Thu, 14 Mar 2019 11:48:44 +0000 (22:48 +1100)]
mgr/deepsea: log salt job failures
If a request to salt succeeds, but the event comes back with some internal
failure (e.g.: an exception was thrown inside the salt runner), we need to
log this so the admin can find out what on earth went wrong.
Tim Serong [Thu, 14 Mar 2019 10:10:38 +0000 (21:10 +1100)]
mgr/deepsea: use empty strings rather than None for option defaults
This makes the _config_valid() function work properly; the option
defaults are being strinified somewhere, so we need to use empty
strings rather than None (which becomes "None"), in order to check
if they're set or not.
Helpers to decide when it is safe to stop a mon, add a mon that is
not started, or remove a mon. (Adding and start a mon would always
be safe, but it takes time to sync, so it's not really possible to do
quickly.)
Added note about the requirement for the latest ceph-iscsi version
3 to the dashboard documentation. Added some doc references
and replaced some URLs in the iSCSI docs with reST labels instead.
xie xingguo [Tue, 26 Mar 2019 07:02:02 +0000 (15:02 +0800)]
osd/PG: move down peers out from peer_purged
In purge_strays(), we'll aggressively clear stray_set and
add all related peers into peer_purged.
However, if the corrsponding peer is down and becomes
up again, (unconditionally) adding it to peer_purged
will prevent primary from re-purging it.
(See Active::react(const MNotifyRec& notevt))
On consuming a new osdmap, let's move any down peers out from
peer_purged simutaneously. This way we can lower the risk
of leaving any leftover PGs behind.
Sage Weil [Fri, 29 Mar 2019 22:58:33 +0000 (17:58 -0500)]
Merge PR #27133 into master
* refs/pull/27133/head:
log,global: do not start flusher thread until after we have our mon config
log: buffer log entries until flusher thread starts
log: open log file from flusher thread
common/ceph_context: fix log_to_file observer