forked from rook/rook
Filestore support has been long gone with only bluestore currently supported. Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
130 lines
2.4 KiB
Bash
Executable File
130 lines
2.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Copyright 2021 The Rook Authors. All rights reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
set -e
|
|
|
|
if [ -z "$1" ]; then
|
|
echo "no debug level passed choose between 0 and 20"
|
|
exit 1
|
|
fi
|
|
|
|
CEPH_DEBUG_LEVEL=$1
|
|
CEPH_DEBUG_FLAG=(
|
|
lockdep
|
|
context
|
|
crush
|
|
mds
|
|
mds_balancer
|
|
mds_locker
|
|
mds_log
|
|
mds_log_expire
|
|
mds_migrator
|
|
buffer
|
|
timer
|
|
filer
|
|
striper
|
|
objecter
|
|
rados
|
|
rbd
|
|
rbd_mirror
|
|
rbd_replay
|
|
journaler
|
|
objectcacher
|
|
client
|
|
osd
|
|
optracker
|
|
objclass
|
|
ms
|
|
mon
|
|
monc
|
|
paxos
|
|
tp
|
|
auth
|
|
crypto
|
|
finisher
|
|
reserver
|
|
heartbeatmap
|
|
perfcounter
|
|
rgw
|
|
rgw_sync
|
|
civetweb
|
|
javaclient
|
|
asok
|
|
throttle
|
|
refs
|
|
compressor
|
|
bluestore
|
|
bluefs
|
|
bdev
|
|
kstore
|
|
rocksdb
|
|
leveldb
|
|
memdb
|
|
fuse
|
|
mgr
|
|
mgrc
|
|
dpdk
|
|
eventtrace
|
|
)
|
|
|
|
#############
|
|
# FUNCTIONS #
|
|
#############
|
|
check() {
|
|
ok_to_run=1
|
|
if [[ "$CEPH_DEBUG_LEVEL" =~ ^[0-9]+$ ]]; then
|
|
if [ "$CEPH_DEBUG_LEVEL" -ge 0 ] && [ "$CEPH_DEBUG_LEVEL" -le 20 ]; then
|
|
ok_to_run=0
|
|
fi
|
|
elif [[ "$CEPH_DEBUG_LEVEL" == "default" ]]; then
|
|
ok_to_run=0
|
|
fi
|
|
}
|
|
|
|
exec_ceph_command() {
|
|
local debug_level=$1
|
|
local action=set
|
|
if [[ "$debug_level" == "default" ]]; then
|
|
action="rm"
|
|
fi
|
|
|
|
# exec command
|
|
for flag in "${CEPH_DEBUG_FLAG[@]}"; do
|
|
ARGS=("$action" global debug_"$flag")
|
|
if [[ "$debug_level" != "default" ]]; then
|
|
ARGS+=("$debug_level")
|
|
fi
|
|
# put stdout in /dev/null since increase debug log will overflow the terminal
|
|
echo "ceph config ${ARGS[*]}"
|
|
ceph config "${ARGS[@]}" &> /dev/null & pids+=($!)
|
|
|
|
done
|
|
echo "waiting for all the new logging configuration to be applied, this can take a few seconds"
|
|
wait "${pids[@]}"
|
|
}
|
|
|
|
########
|
|
# MAIN #
|
|
########
|
|
check
|
|
if [ "$ok_to_run" -eq 0 ]; then
|
|
exec_ceph_command "$CEPH_DEBUG_LEVEL"
|
|
else
|
|
echo "Wrong debug level $CEPH_DEBUG_LEVEL"
|
|
echo "MUST be integer between 0 and 20 or 'default' to reset all values"
|
|
exit 1
|
|
fi
|