Package starcluster :: Package plugins :: Module xvfb
[hide private]
[frames] | no frames]

Source Code for Module starcluster.plugins.xvfb

 1  from starcluster.clustersetup import DefaultClusterSetup 
 2  from starcluster.logger import log 
 3   
 4   
5 -class XvfbSetup(DefaultClusterSetup):
6 """ 7 Installs, configures, and sets up an Xvfb server 8 (thanks to Adam Marsh for his contribution) 9 """
10 - def _install_xvfb(self, node):
11 node.apt_install('xvfb')
12
13 - def _launch_xvfb(self, node):
14 node.ssh.execute('screen -d -m Xvfb :1 -screen 0 1024x768x16') 15 profile = node.ssh.remote_file('/etc/profile.d/scxvfb.sh', 'w') 16 profile.write('export DISPLAY=":1"') 17 profile.close()
18
19 - def run(self, nodes, master, user, user_shell, volumes):
20 log.info("Installing Xvfb on all nodes") 21 for node in nodes: 22 self.pool.simple_job(self._install_xvfb, (node), jobid=node.alias) 23 self.pool.wait(numtasks=len(nodes)) 24 log.info("Launching Xvfb Server on all nodes") 25 for node in nodes: 26 self.pool.simple_job(self._launch_xvfb, (node), jobid=node.alias) 27 self.pool.wait(numtasks=len(nodes))
28 #self._terminate(nodes) 29
30 - def _terminate(self, nodes):
31 for node in nodes: 32 self.pool.simple_job(node.ssh.execute, ('pkill Xvfb'), 33 jobid=node.alias) 34 self.pool.wait(numtasks=len(nodes))
35