qvm-prefs: allow on the fly netvm switch (#302)
When changing netvm of a running vm, detach/attach eth0. Some functionality of qubes_core_netvm thus is duplicated in setup_ip. REQUIRES http://git.qubes-os.org/?p=rafal/xen.git;a=commit;h=42c72e6173586a807f8f153391e2e57352d362b1
This commit is contained in:
parent
f264b76a61
commit
d2301ab125
@ -10,4 +10,14 @@ if [ x$ip != x ]; then
|
||||
/sbin/route add default dev $INTERFACE
|
||||
echo "nameserver $gateway" > /etc/resolv.conf
|
||||
echo "nameserver $secondary_dns" >> /etc/resolv.conf
|
||||
network=$(/usr/bin/xenstore-read qubes_netvm_network 2>/dev/null)
|
||||
if [ "x$network" != "x" ]; then
|
||||
gateway=$(/usr/bin/xenstore-read qubes_netvm_gateway)
|
||||
netmask=$(/usr/bin/xenstore-read qubes_netvm_netmask)
|
||||
secondary_dns=$(/usr/bin/xenstore-read qubes_netvm_secondary_dns)
|
||||
echo "NS1=$gateway" > /var/run/qubes/qubes_ns
|
||||
echo "NS2=$secondary_dns" >> /var/run/qubes/qubes_ns
|
||||
/usr/lib/qubes/qubes_setup_dnat_to_ns
|
||||
fi
|
||||
|
||||
fi
|
||||
|
@ -119,7 +119,24 @@ def set_netvm(vms, vm, args):
|
||||
vm.uses_default_netvm = False
|
||||
|
||||
vm.netvm_vm = netvm_vm
|
||||
|
||||
if not vm.is_running():
|
||||
return
|
||||
if not vm.netvm_vm.is_running():
|
||||
subprocess.check_call(["qvm-start", vm.netvm_vm.name])
|
||||
subprocess.check_call(["xl", "network-detach", vm.name, "0"])
|
||||
domain_path="/local/domain/"+str(vm.get_xid())
|
||||
subprocess.check_call(["xenstore-write",
|
||||
domain_path+"/qubes_ip",
|
||||
vm.ip])
|
||||
subprocess.check_call(["xenstore-write",
|
||||
domain_path+"/qubes_gateway",
|
||||
vm.netvm_vm.gateway])
|
||||
subprocess.check_call(["xenstore-write",
|
||||
domain_path+"/qubes_secondary_dns",
|
||||
vm.netvm_vm.secondary_dns])
|
||||
subprocess.check_call(["xl", "network-attach", vm.name, "ip="+vm.ip,
|
||||
"backend="+vm.netvm_vm.name,
|
||||
"script=/etc/xen/scripts/vif-route-qubes"])
|
||||
|
||||
def set_updateable(vms, vm, args):
|
||||
if vm.is_updateable():
|
||||
|
Loading…
Reference in New Issue
Block a user