Skip to content

Commit

Permalink
Merge pull request #5755: ceph-disk zap should ensure block device
Browse files Browse the repository at this point in the history
Reviewed-by: Loic Dachary <ldachary@redhat.com>
  • Loading branch information
ldachary committed Sep 2, 2015
2 parents c0417ef + a478385 commit 1cc12f7
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 4 deletions.
8 changes: 4 additions & 4 deletions src/ceph-disk
Expand Up @@ -1039,6 +1039,9 @@ def zap(dev):
"""
Destroy the partition table and content of a given disk.
"""
dmode = os.stat(dev).st_mode
if not stat.S_ISBLK(dmode) or is_partition(dev):
raise Error('not full block device; cannot zap', dev)
try:
LOG.debug('Zapping partition table on %s', dev)

Expand Down Expand Up @@ -1501,10 +1504,7 @@ def main_prepare(args):
verify_not_in_use(args.journal, False)

if args.zap_disk is not None:
if stat.S_ISBLK(dmode) and not is_partition(args.data):
zap(args.data)
else:
raise Error('not full block device; cannot zap', args.data)
zap(args.data)

if args.cluster_uuid is None:
args.cluster_uuid = get_fsid(cluster=args.cluster)
Expand Down
10 changes: 10 additions & 0 deletions src/test/ceph-disk.sh
Expand Up @@ -167,6 +167,15 @@ function test_no_path() {
( unset PATH ; test_activate_dir ) || return 1
}

function test_zap() {
local osd_data=$DIR/dir
$mkdir -p $osd_data

./ceph-disk $CEPH_DISK_ARGS zap $osd_data 2>&1 | grep 'not full block device' || return 1

$rm -fr $osd_data
}

# ceph-disk prepare returns immediately on success if the magic file
# exists in the --osd-data directory.
function test_activate_dir_magic() {
Expand Down Expand Up @@ -470,6 +479,7 @@ function run() {
default_actions+="test_activate_dir_magic "
default_actions+="test_activate_dir "
default_actions+="test_keyring_path "
default_actions+="test_zap "
local actions=${@:-$default_actions}
for action in $actions ; do
setup
Expand Down

0 comments on commit 1cc12f7

Please sign in to comment.