mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 02:30:03 +01:00
xend: Add blktap disk type check
Print the following error when you give a wrong disk type to xm commands: # xm create /xen/vm1.conf disk='tap:xxx:/xen/root-vm1.img,hda1,w' Using config file "/xen/vm1.conf". Error: tap:xxx not a valid disk type # xm block-attach vm2 tap:yyy:/xen/second.img hdb1 w Error: tap:yyy not a valid disk type Usage: xm block-attach <Domain> <BackDev> <FrontDev> <Mode> [BackDomain] Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
This commit is contained in:
1 parent
c40696b705
commit
9ef6233978
2 files changed
+14
No files matched your search
@@ -28,6 +28,7 @@ from xen.xend.XendError import VmError
|
||||
from xen.xend.XendDevices import XendDevices
|
||||
from xen.xend.PrettyPrint import prettyprintstring
|
||||
from xen.xend.XendConstants import DOM_STATE_HALTED
|
||||
from xen.xend.server.BlktapController import blktap_disk_types
|
||||
from xen.xend.server.netif import randomMAC
|
||||
from xen.util.blkif import blkdev_name_to_number
|
||||
from xen.util import xsconstants
|
||||
@@ -1084,6 +1085,11 @@ class XendConfig(dict):
|
||||
else:
|
||||
dev_info['driver'] = 'paravirtualised'
|
||||
|
||||
if dev_type == 'tap':
|
||||
if dev_info['uname'].split(':')[1] not in blktap_disk_types:
|
||||
raise XendConfigError("tap:%s not a valid disk type" %
|
||||
dev_info['uname'].split(':')[1])
|
||||
|
||||
if dev_type == 'vif':
|
||||
if not dev_info.get('mac'):
|
||||
dev_info['mac'] = randomMAC()
|
||||
|
||||
@@ -7,6 +7,14 @@ from xen.xend.XendLogging import log
|
||||
phantomDev = 0;
|
||||
phantomId = 0;
|
||||
|
||||
blktap_disk_types = [
|
||||
'aio',
|
||||
'sync',
|
||||
'vmdk',
|
||||
'ram',
|
||||
'qcow'
|
||||
]
|
||||
|
||||
class BlktapController(BlkifController):
|
||||
def __init__(self, vm):
|
||||
BlkifController.__init__(self, vm)
|
||||
|
||||