diff options
| -rw-r--r-- | rumba/prototypes/rlite.py | 22 | 
1 files changed, 19 insertions, 3 deletions
diff --git a/rumba/prototypes/rlite.py b/rumba/prototypes/rlite.py index b66bd69..6a9d6ef 100644 --- a/rumba/prototypes/rlite.py +++ b/rumba/prototypes/rlite.py @@ -27,6 +27,7 @@  import rumba.ssh_support as ssh  import rumba.model as mod  import rumba.log as log +import rumba.multiprocess as m_processing  import time @@ -40,6 +41,13 @@ class Experiment(mod.Experiment):      def __init__(self, testbed, nodes=None):          mod.Experiment.__init__(self, testbed, nodes) +    @staticmethod +    def make_executor(node, packages, testbed): +        def executor(commands): +            ssh.aptitude_install(testbed, node, packages) +            node.execute_commands(commands, time_out=None, use_proxy=True) +        return executor +      def prototype_name(self):          return 'rlite' @@ -140,12 +148,20 @@ class Experiment(mod.Experiment):          cmds = ["rm -rf ~/rlite",                  "cd ~; git clone https://github.com/vmaffione/rlite", -                "cd ~/rlite && ./configure && make && sudo make install", +                "cd ~/rlite && ./configure && make -j${nproc} " + +                "&& sudo make install",                  "cd ~/rlite && sudo make depmod"] +        names = [] +        executors = [] +        args = [] +          for node in self.nodes: -            ssh.aptitude_install(self.testbed, node, packages) -            self.execute_proxy_commands(node, cmds) +            executor = self.make_executor(node, packages, self.testbed) +            names.append(node.name) +            executors.append(executor) +            args.append(cmds) +        m_processing.call_in_parallel(names, args, executors)          logger.info("installation complete")      def bootstrap_prototype(self):  | 
