13 from cm.models.vm
import VM
14 from common.states
import vnc_states
16 os.environ.setdefault(
"DJANGO_SETTINGS_MODULE",
"cm.settings")
21 print "CM: Preparing CM to redirect vnc..."
22 dev_null = open(
'/dev/null',
'w')
23 subprocess.call(
'echo 1 > /proc/sys/net/ipv4/ip_forward', shell=
True)
26 subprocess.call(
'/sbin/iptables -t nat -D POSTROUTING -j CC1_VNC_MASQUERADE', shell=
True, stdout=dev_null, stderr=dev_null)
27 subprocess.call(
'/sbin/iptables -t nat -D PREROUTING -j CC1_VNC_REDIRECT', shell=
True, stdout=dev_null, stderr=dev_null)
30 subprocess.call(
'/sbin/iptables -t nat -N CC1_VNC_MASQUERADE', shell=
True)
31 subprocess.call(
'/sbin/iptables -t nat -N CC1_VNC_REDIRECT', shell=
True)
33 subprocess.call(
'/sbin/iptables -t nat -A POSTROUTING -j CC1_VNC_MASQUERADE', shell=
True)
34 subprocess.call(
'/sbin/iptables -t nat -A PREROUTING -j CC1_VNC_REDIRECT', shell=
True)
38 print "CM: Reattaching all vnc redirections..."
39 uid_cc1 = pwd.getpwnam(
'cc1').pw_uid
40 gid_cc1 = grp.getgrnam(
'cc1').gr_gid
41 gid_kvm = grp.getgrnam(
'kvm').gr_gid
42 gid_libvirt = grp.getgrnam(
'libvirt').gr_gid
45 os.environ[
'HOME'] =
'/var/lib/cc1/'
47 os.setgroups([gid_cc1, gid_kvm, gid_libvirt])
48 os.setregid(gid_cc1, gid_cc1)
49 os.setreuid(uid_cc1, uid_cc1)
50 elif os.getuid() != uid_cc1:
51 print "ERROR: Cannot change user"
54 for vm
in VM.objects.filter(vnc_enabled=vnc_states[
'attached']).all():
56 vm.attach_vnc(reattach=
True)
58 print "CM: Vnc for vm %d is attached" % vm.id
65 print "CM: Removing all vnc redirections..."
66 dev_null = open(
'/dev/null',
'w')
68 subprocess.call(
'/sbin/iptables -t nat -D POSTROUTING -j CC1_VNC_MASQUERADE', shell=
True, stdout=dev_null, stderr=dev_null)
69 subprocess.call(
'/sbin/iptables -t nat -D PREROUTING -j CC1_VNC_REDIRECT', shell=
True, stdout=dev_null, stderr=dev_null)
72 subprocess.call(
'/sbin/iptables -t nat -F CC1_VNC_MASQUERADE', shell=
True, stdout=dev_null, stderr=dev_null)
73 subprocess.call(
'/sbin/iptables -t nat -F CC1_VNC_REDIRECT', shell=
True, stdout=dev_null, stderr=dev_null)
74 subprocess.call(
'/sbin/iptables -t nat -X CC1_VNC_MASQUERADE', shell=
True, stdout=dev_null, stderr=dev_null)
75 subprocess.call(
'/sbin/iptables -t nat -X CC1_VNC_REDIRECT', shell=
True, stdout=dev_null, stderr=dev_null)