return arr["path"]
return None
- def add_interface(self, mac, type, bridge, script, target=None):
- self.interfaces.append( {"mac": mac, "type": type, "bridge": bridge, "script": script, "target": target} )
+ def add_interface(self, mac, type, bridge, script, target=None, model=None):
+ self.interfaces.append( {"mac": mac, "type": type, "bridge": bridge, "script": script, "target": target, "model": model} )
def delete_interface(self, mac):
for arr in self.interfaces:
target = XMLXpath(document,'/domain/devices/interface[%i]/target/@dev' % n)
if target != None:
target = str(target)
- self.add_interface(str(mac), str(type), str(name), script, target)
+ model = XMLXpath(document,'/domain/devices/interface[%i]/model/@type' % n)
+ if model != None:
+ model = str(model)
+ self.add_interface(str(mac), str(type), str(name), script, target, model=model)
self.disks = []
disk_num = XMLXpathNum(document,'/domain/devices/disk')
target_n = doc.createElement("target")
target_n.setAttribute("dev", interface["target"])
interface_n.appendChild(target_n)
+ if interface["model"] != None:
+ model_n = doc.createElement("model")
+ model_n.setAttribute("type", interface["model"])
+ interface_n.appendChild(model_n)
devs_elem.appendChild(interface_n)
self.domain.appendChild(devs_elem)
param.set_memory(str(ram) + 'm')
param.set_vnc_keymap(keymap)
-
-
+ # definition for a network interface
+ if type == "kvm":
+ model = "virtio"
+ else:
+ model = None
for _format in self.interface_format:
if _format['name'][0:5] == 'xenbr':
script = "vif-bridge"
if mac is None:
mac = GenMAC()
- param.add_interface(mac,"bridge",_format['name'],script)
+ param.add_interface(mac,"bridge",_format['name'],script,model=model)
else:
- param.add_interface(mac.lower(),"bridge",_format['name'],script)
+ param.add_interface(mac.lower(),"bridge",_format['name'],script,model=model)
mac = None
param.set_vnc_port(vnc)
pool_dir = self.get_storage_pool_targetpath(pool)
disk = "%s/%s/images/%s.img" % (pool_dir, name, name)
+ # definition for a network interface
src_interfaces = param.interfaces
param.interfaces = []
for ifs in src_interfaces:
script = ifs['script']
+ try:
+ model = ifs['model']
+ except:
+ model = None
if mac is None:
mac = GenMAC()
- param.add_interface(mac,"bridge",ifs['bridge'],script)
+ param.add_interface(mac,"bridge",ifs['bridge'],script,model=model)
else:
- param.add_interface(mac.lower(),"bridge",ifs['bridge'],script)
+ param.add_interface(mac.lower(),"bridge",ifs['bridge'],script,model=model)
mac = None
if uuid is None:
sync_config_generator(param, self.get_domain_name())
- def append_interface(self,mac,bridge=None,network=None):
+ def append_interface(self,mac,bridge=None,network=None,model=None):
from karesansui.lib.virt.config import ConfigParam
param = ConfigParam(self.get_domain_name())
if bridge[0:5] == 'xenbr':
script = "vif-bridge"
+ model = None
else:
script = None
+ model = "virtio"
mac = mac.lower()
- param.add_interface(mac,"bridge",bridge,script)
+ param.add_interface(mac,"bridge",bridge,script,model=model)
try:
from karesansui.lib.virt.config import XMLInterfaceConfigGenerator