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>
Kefu Chai [Fri, 16 Nov 2018 17:25:47 +0000 (01:25 +0800)]
test/dashboard: fix segfault when importing dm.xmlsec.binding
python-saml depends on dm.xmlsec.binding which is a python binding of
xmlsec C library. but without -DXMLSEC_NO_SIZE_T the compiled
dm.xmlsec.binding segfaults when `import dm.xmlsec.binding`. see
https://github.com/onelogin/python-saml/issues/30 and
https://github.com/4teamwork/ftw.saml2auth/issues/3 .
in long term, we might want to switch to python-saml, see
http://tracker.ceph.com/issues/37081
Stephan Müller [Fri, 16 Nov 2018 14:39:53 +0000 (15:39 +0100)]
mgr/dashboard: npm run e2e:dev
The new command introduced will make developing e2e tests faster, as
Protractor will attach to the running development server that was
previously started running 'npm start'.
Fixes: https://tracker.ceph.com/issues/37291 Signed-off-by: Stephan Müller <smueller@suse.com>
Tiago Melo [Thu, 25 Oct 2018 15:56:54 +0000 (16:56 +0100)]
credits.sh: Ignore package-lock.json and .xlf files
package-lock.json: This file is modified automatically by npm any time we update
a frontend package, and can amount to large number of line changes.
For example, updating around 10 packages can result in 3k lines changed
in package-lock.json.
.xlf: They are used for the I18M of the dashboard and are automatically created
by Angular/transifex. Curretly each has around 5k lines and those lines should
not be credited to the commiter.
Sage Weil [Fri, 16 Nov 2018 13:11:15 +0000 (07:11 -0600)]
Merge PR #25052 into master
* refs/pull/25052/head:
mgr: lock pg_map too for osd_pool_stats and notify_osdmap
mgr/DaemonServer: use with_osdmap_and_pgmap instead of nested calls
mgr/ClusterState: add with_osdmap_and_pgmap
Jason Dillaman [Wed, 14 Nov 2018 15:40:26 +0000 (21:10 +0530)]
librbd: new API methods to get/set mirror peer attributes
The dashboard will need to manipulate the remote cluster mon_host and
key attributes. This logic should be re-used between the rbd CLI and
the dashboard.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Jan Fajerski [Fri, 16 Nov 2018 08:22:06 +0000 (09:22 +0100)]
ceph-volume: rename Device property valid to available
This flag is used in the inventory reporting and available is deemed more
appropriate. Furthermore this fixes a bug where rejected_reasons
accumulated duplicate entries.
Fixes: http://tracker.ceph.com/issues/36701 Signed-off-by: Jan Fajerski <jfajerski@suse.com>
hsiang41 [Wed, 7 Nov 2018 14:05:35 +0000 (22:05 +0800)]
mgr: Separate diskprediction cloud plugin from the diskprediction plugin
Separate diskprediction local cloud from the diskprediction plugin.
Devicehealth invoke device prediction function related on the global
configuration "device_failure_prediction_mode".
Signed-off-by: Rick Chen <rick.chen@prophetstor.com>
Jeff Layton [Wed, 14 Nov 2018 17:38:22 +0000 (12:38 -0500)]
orchestrator: merge the ServiceLocation class into ServiceDescription
The ServiceDescription object just holds a list of ServiceLocation
objects. Eliminate ServiceLocation and merge it into the
ServiceDescription class. Have describe_service return a list of
ServiceDescriptions.
Suggested-by: Tim Serong <tserong@suse.com> Signed-off-by: Jeff Layton <jlayton@redhat.com>
Jeff Layton [Tue, 30 Oct 2018 18:28:02 +0000 (14:28 -0400)]
orchestrator_cli: add an orchestrator service ls function
There's currently no way to enumerate the services that the
orchestrator backend knows about. Add a "service ls" command
that will list them with some basic info, subject to filters
given on the command line.
in 37f73607 and 3ec41030, we detect invalid "k". and we should always
detect invalid combinations of parameters in
ErasureCodeInterface::init(), and return -EINVAL instead of "autotune" them
as put in the commit message of c5bafae6, if the profile is invalid for
given erasure plugin. so ErasureCodeBench::encode() and
ErasureCodeBench::decode() will bail out with the error message returned by
ErasureCodeInterface::init() if the parameters are not valid.
also, i checked all ErasureCodeInterface::init() implementations, none
of them is overwriting the settings without returning a non-zero return
code. so we are not overriding or autotuning the settings specified by
user.
Kefu Chai [Thu, 15 Nov 2018 05:56:19 +0000 (13:56 +0800)]
tools/ceph_kvstore_tool: do not open rocksdb when repairing it
before this change, the `need_open_db` parameter is passed to the
constructor of BlueStore as `min_alloc_size`. and rocksdb will fail to
repair because Repairer::Run() also tries to acquire the db lock, and it
will fail to do so if the lock file is already acquired by
BlueStore::_mount().
Kefu Chai [Thu, 15 Nov 2018 01:47:27 +0000 (09:47 +0800)]
qa: use FOUND_VAR to be backward compatible with cmake 2.8.12
before this change, we assume that the variable set if rados::radospp is
found will be radospp_FOUND, but this is a feature cmake 3, see
https://cmake.org/cmake/help/v3.3/module/FindPackageHandleStandardArgs.html
while the cmake shipped by centos is cmake 2.8.12, where the variable
name will be <UPPERCASED_NAME>_FOUND, see
https://cmake.org/cmake/help/v2.8.12/cmake.html#module:FindPackageHandleStandardArgs
in the test of test_envlibrados_for_rocksdb.sh, we are using cmake not
the cmake3 offered by EPEL7, so RADOSPP_FOUND will be set instead. that's why
executable env_librados_test will fail to link against rados::radospp.
as rados::radospp won't be defined if radospp_FOUND is not defined/set.
after this change, the 2nd mode of FIND_PACKAGE_HANDLE_STANDARD_ARGS()
is used instead to ensure that radospp_FOUND is defined even if cmake
2.8.12 is used.
also, the message() commands for debugging purpose are removed.
Kefu Chai [Thu, 15 Nov 2018 03:34:29 +0000 (11:34 +0800)]
qa/suites: add librados2 to "extra_packages" for upgrade tests
we use the playbook of "testnodes.yml" defined by ceph-cm-ansible for
initializing test nodes, and the role of "testnode" is used by
testnodes.yml. "testnode" requires "qemu-system-x86" or "qemu-kvm"
package to be installed. the qemu in turn depends on librbd1 and
librados2.
before librados3 was introduced, this worked perfectly. because in ceph
repo, qa/packages/packages.yaml defines the default set of packages the
"install" tasks should install. and in that yaml file, librados2 was
listed. so the package management system will overwrite the librados2
installed by ansible playbook with the version specified by the
"install" task, as apt/yum thinks this is what user requires explicitly,
so it's fine to install a different version of librados2.
after librados3 was introduced, librados2 was removed from
qa/packages/packages.yaml. because, by default, we need to install
librados3 instead of librados2 for ready a nautilus cluster. but the
problem is, the packge list also applies to "install" tasks installing
releases before nautilus, where we still need to replace the librados2
installed by ansible.
so, to address this issue, "librados2" is added to "extra_packages" of
the "install" tasks of tests installing old releases to install
librados2 explicitly instead of as a dependency of other ceph packages
like librbd1.