コード例 #1
0
	def parent_disk(self):
		"""
		The device path (eg. /dev/sdd) the partition is on
		"""
		if not hasattr(self, '_parent_disk'):
			disk_name = Device.from_name(udevctx, 'block', self.name)['DEVPATH'].split('/')[-2]
			setattr(self, '_parent_disk', Device.from_name(udevctx, 'block', disk_name)['DEVNAME'])
		return self._parent_disk
コード例 #2
0
ファイル: disk.py プロジェクト: cloudcache/python-ponycloud
	def identifier(self):
		"""
		Unique identifier for a disk device.
		"""
		if not hasattr(self, '_identifier'):
			device = Device.from_name(udevctx, 'block', self.name)
			if device.get('ID_BUS') == 'ata':
				setattr(self, '_identifier', 'ata-%s' % device['ID_SERIAL'])
			elif device.get('ID_WWN'):
				setattr(self, '_identifier', 'wwn-%s' % device['ID_WWN'])
			elif device.get('DM_UUID'):
				setattr(self, '_identifier', 'dm-%s' % device['DM_UUID'])
			elif device.get('ID_SCSI_SERIAL'):
				setattr(self, '_identifier', 'scsi-%s' % device['ID_SCSI_SERIAL'])
			elif 'virtio' in device.get('ID_PATH', ''):
				setattr(self, '_identifier', 'virtio-%s' % device['ID_SERIAL'])
			elif 'ID_SERIAL' in device:
				setattr(self, '_identifier', 'unknown-%s' % device['ID_SERIAL'])
			else:
				raise RuntimeError('unknown disk type')
		return self._identifier

# vim:set sw=4 ts=4 et:
# -*- coding: utf-8 -*-
コード例 #3
0
ファイル: block.py プロジェクト: cloudcache/python-ponycloud
	def device_path(self):
		if not hasattr(self, '_device_path'):
			setattr(self, '_device_path', Device.from_name(udevctx, 'block', self.name)['DEVNAME'])
		return self._device_path
コード例 #4
0
	def dmname(self):
		if not hasattr(self, '_dmname'):
			self._dmname = Device.from_name(udevctx, 'block', self.name)['DM_NAME']
		return self._dmname