charm-ceph-mon/actions/show_disk_free.py
James Page 203947623f action: Misc tidyup and improvements
General tidy of actions codebase including sorting out
some minor bugs.

Added new copy-pool action.

Added support for CRUSH device classes when creating
erasure coding profiles.

Removed need for use of rados python module by switching
to using the ceph command line tool for all operations.

Add new action for creation of new CRUSH rules using
device classes.

Resync charms.ceph to support switching the crush_rule
key on a pool.

Resync charmhelpers for support for device classing.

Rename all action py files to by standards compliant.

Change-Id: I1f7d95b1637f2064bd11a5d5336764b2946428ac
Depends-On: I2c405f9a4956ff1ccf1edb7372a9bb11e1e591a4
2019-02-19 14:54:41 +00:00

34 lines
1.2 KiB
Python
Executable File

#!/usr/bin/env python3
#
# Copyright 2016 Canonical Ltd
#
# 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.
import sys
sys.path.append('hooks')
from subprocess import check_output, CalledProcessError
from charmhelpers.core.hookenv import log, action_get, action_set, action_fail
if __name__ == '__main__':
# constrained to enum: json,json-pretty,xml,xml-pretty,plain
fmt = action_get("format")
try:
out = check_output(['ceph', '--id', 'admin',
'osd', 'df', 'tree', '-f', fmt]).decode('UTF-8')
action_set({'message': out})
except CalledProcessError as e:
log(e)
action_fail(
"ceph osd df tree failed with message: {}".format(str(e)))