Add Blockdev tags to indicate device usage

Allow installer to tag devices with purpose for display
in USED DISKS in the filesystem view.

Signed-off-by: Ryan Harper <ryan.harper@canonical.com>
This commit is contained in:
Ryan Harper 2015-11-17 16:12:45 -06:00
parent 71e2706455
commit 83554513e1
4 changed files with 31 additions and 4 deletions

View File

@ -153,6 +153,7 @@ class FilesystemController(ControllerPolicy):
size=BIOS_GRUB_SIZE_BYTES,
fstype=None,
flag='bios_grub')
current_disk.set_tag('(boot)')
# adjust downward the partition size to accommodate
# the offset and bios/grub partition

View File

@ -128,6 +128,7 @@ class Blockdev():
self._filesystems = {}
self._mounts = {}
self._mountactions = {}
self._tag = ''
self.bcache = []
self.lvm = []
self.holders = []
@ -165,6 +166,7 @@ class Blockdev():
self.bcache = []
self.lvm = []
self.holders = []
self.tag = ''
@property
def id(self):
@ -274,6 +276,13 @@ class Blockdev():
def lastpartnumber(self):
return len(self.disk.partitions)
@property
def tag(self):
return self._tag
def set_tag(self, tag):
self._tag = tag
def delete_partition(self, partnum=None, sector=None, mountpoint=None):
# find part and then call deletePartition()
# find and remove from self.fstable

View File

@ -282,7 +282,8 @@ class FilesystemModel(ModelPolicy):
spare_devices.append(raiddev)
# auto increment md number based in registered devices
raid_dev_name = '/dev/md{}'.format(len(self.raid_devices))
raid_shortname = 'md{}'.format(len(self.raid_devices))
raid_dev_name = '/dev/' + raid_shortname
raid_serial = '{}_serial'.format(raid_dev_name)
raid_model = '{}_model'.format(raid_dev_name)
raid_parttype = 'gpt'
@ -294,11 +295,13 @@ class FilesystemModel(ModelPolicy):
raid_parts = []
for dev in raid_devices:
dev.set_holder(raid_dev_name)
dev.set_tag('member of MD ' + raid_shortname)
for num, action in dev.partitions.items():
raid_parts.append(action.action_id)
spare_parts = []
for dev in spare_devices:
dev.set_holder(raid_dev_name)
dev.set_tag('member of MD ' + raid_shortname)
for num, action in dev.partitions.items():
spare_parts.append(action.action_id)
@ -344,7 +347,8 @@ class FilesystemModel(ModelPolicy):
cache_device = self.get_disk(bcachespec['cache_device'].split()[0])
# auto increment md number based in registered devices
bcache_dev_name = '/dev/bcache{}'.format(len(self.bcache_devices))
bcache_shortname = 'bcache{}'.format(len(self.bcache_devices))
bcache_dev_name = '/dev/' + bcache_shortname
bcache_serial = '{}_serial'.format(bcache_dev_name)
bcache_model = '{}_model'.format(bcache_dev_name)
bcache_parttype = 'gpt'
@ -359,6 +363,15 @@ class FilesystemModel(ModelPolicy):
backing_device.set_holder(bcache_dev_name)
cache_device.set_holder(bcache_dev_name)
# tag device use
backing_device.set_tag('backing store for ' + bcache_shortname)
cache_tag = cache_device.tag
if len(cache_tag) > 0:
cache_tag += ", " + bcache_shortname
else:
cache_tag = "cache for " + bcache_shortname
cache_device.set_tag(cache_tag)
# add it to the model's info dict
bcache_dev_info = {
'type': 'disk',

View File

@ -497,8 +497,12 @@ class FilesystemView(ViewPolicy):
log.debug('FileSystemView: building used disks')
pl = []
for disk in self.model.get_used_disk_names():
disk_obj = self.model.get_disk(disk)
log.debug('used disk: {}'.format(disk))
pl.append(Text(disk))
disk_string = disk
if len(disk_obj.tag):
disk_string += " {}".format(disk_obj.tag)
pl.append(Color.info_minor(Text(disk_string)))
if len(pl):
return Pile(
[Text("USED DISKS"),