1 from starcluster import clustersetup
2 from starcluster.logger import log
3
4
6 """
7 This plugin installs Ubuntu packages on all nodes in the cluster. The
8 packages are specified in the plugin's config:
9
10 [plugin pkginstaller]
11 setup_class = starcluster.plugins.pkginstaller.PackageInstaller
12 packages = mongodb, python-mongodb
13 """
15 super(PackageInstaller, self).__init__()
16 self.packages = packages
17 if packages:
18 self.packages = [pkg.strip() for pkg in packages.split(',')]
19
20 - def run(self, nodes, master, user, user_shell, volumes):
21 if not self.packages:
22 log.info("No packages specified!")
23 return
24 log.info('Installing the following packages on all nodes:')
25 log.info(', '.join(self.packages), extra=dict(__raw__=True))
26 pkgs = ' '.join(self.packages)
27 for node in nodes:
28 self.pool.simple_job(node.apt_install, (pkgs), jobid=node.alias)
29 self.pool.wait(len(nodes))
30