Merge "Add show-disk-free action to ceph-mon charm"

This commit is contained in:
Jenkins 2017-08-24 23:15:44 +00:00 committed by Gerrit Code Review
commit 6b56b5fc64
3 changed files with 43 additions and 7 deletions

View File

@ -43,7 +43,7 @@ remove-cache-tier:
create-pool:
description: Creates a pool
params:
name:
name:
type: string
description: The name of the pool
profile-name:
@ -115,7 +115,7 @@ create-erasure-profile:
get-erasure-profile:
description: Display an erasure code profile.
params:
name:
name:
type: string
description: The name of the profile
required: [name]
@ -137,7 +137,7 @@ list-pools:
set-pool-max-bytes:
description: Set pool quotas for the maximum number of bytes.
params:
max:
max:
type: integer
description: The name of the pool
pool-name:
@ -170,10 +170,10 @@ pool-statistics:
snapshot-pool:
description: Snapshot a pool
params:
pool-name:
pool-name:
type: string
description: The name of the pool
snapshot-name:
snapshot-name:
type: string
description: The name of the snapshot
required: [snapshot-name, pool-name]
@ -181,10 +181,10 @@ snapshot-pool:
remove-pool-snapshot:
description: Remove a pool snapshot
params:
pool-name:
pool-name:
type: string
description: The name of the pool
snapshot-name:
snapshot-name:
type: string
description: The name of the snapshot
required: [snapshot-name, pool-name]
@ -226,3 +226,6 @@ crushmap-update:
description: The json crushmap blob
required: [map]
additionalProperties: false
show-disk-free:
description: Show disk utilization by host and OSD.
additionalProperties: false

1
actions/show-disk-free Symbolic link
View File

@ -0,0 +1 @@
show-disk-free.py

32
actions/show-disk-free.py Executable file
View File

@ -0,0 +1,32 @@
#!/usr/bin/python
#
# 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_set, action_fail
if __name__ == '__main__':
try:
out = check_output(['ceph', '--id', 'admin',
'osd', 'df', 'tree']).decode('UTF-8')
action_set({'message': out})
except CalledProcessError as e:
log(e)
action_fail(
"ceph osd df tree failed with message: {}".format(e.message)
)