+ def __init__(self, user=None, group=None, *args, **kwargs):
+ super(WebSocketProxy, self).__init__(*args, **kwargs)
+ self.user = user
+ self.group = group
+ self.server_cas = None
+
+ def started(self):
+ super(WebSocketProxy, self).started()
+ if self.user:
+ cert = open(self.cert).read()
+ key = open(self.key).read()
+ cas = ""
+ for h in config.hosts:
+ cas += invirt.remctl.remctl(config.remote.hostname, "web", "vnccert", h.hostname)
+ drop_privileges(self.user, self.group)
+ self.cert_tf = tempfile.NamedTemporaryFile()
+ self.cert_tf.write(cert)
+ self.cert_tf.flush()
+ self.cert = self.cert_tf.name
+ self.key_tf = tempfile.NamedTemporaryFile()
+ self.key_tf.write(key)
+ self.key_tf.flush()
+ self.key = self.key_tf.name
+ self.server_cafile = tempfile.NamedTemporaryFile()
+ self.server_cafile.write(cas)
+ self.server_cafile.flush()
+ self.server_cas = self.server_cafile.name
+