Fix list-disk action wrongly report osd journal as the non-pristine device

Change-Id: Ib117fc5797447ade75d50a7ff7dae5de473fe7b9
Closes-Bug: #1847988
This commit is contained in:
taodd 2019-10-14 18:18:10 +08:00
parent 7772560510
commit 8ca701eb87
2 changed files with 37 additions and 2 deletions

View File

@ -29,6 +29,7 @@ and are currently not eligible for use because of presence of foreign data.
"""
import sys
import os
sys.path.append('hooks/')
sys.path.append('lib/')
@ -38,9 +39,13 @@ import charmhelpers.core.hookenv as hookenv
import ceph.utils
import utils
if __name__ == '__main__':
def list_disk():
non_pristine = []
osd_journal = utils.get_journal_devices()
osd_journal = []
for journal in utils.get_journal_devices():
osd_journal.append(os.path.realpath(journal))
for dev in list(set(ceph.utils.unmounted_disks()) - set(osd_journal)):
if (not ceph.utils.is_active_bluestore_device(dev) and
not ceph.utils.is_pristine_disk(dev)):
@ -51,3 +56,7 @@ if __name__ == '__main__':
'blacklist': utils.get_blacklist(),
'non-pristine': non_pristine,
})
if __name__ == '__main__':
list_disk()

View File

@ -0,0 +1,26 @@
from actions import list_disks
from test_utils import CharmTestCase
class ListDisksActionTests(CharmTestCase):
def setUp(self):
super(ListDisksActionTests, self).setUp(
list_disks, ['hookenv',
'ceph',
'utils',
'os'])
self.ceph.utils.unmounted_disks.return_value = ['/dev/sda', '/dev/sdm']
def test_list_disks_journal_symbol_link(self):
self.utils.get_journal_devices.return_value = {'/dev/disk/ceph/sdm'}
self.os.path.realpath.return_value = '/dev/sdm'
self.ceph.utils.is_active_bluestore_device.return_value = False
self.ceph.utils.is_pristine_disk.return_value = False
self.utils.get_blacklist.return_value = []
list_disks.list_disk()
self.hookenv.action_set.assert_called_with({
'disks': ['/dev/sda'],
'blacklist': [],
'non-pristine': ['/dev/sda']
})