Ejemplo n.º 1
0
    def new_machine(self, machine_key, image=None):
        import testvm
        machine_class = self.machine_class
        if opts.address:
            if machine_class:
                raise unittest.SkipTest(
                    "Cannot run this test when specific machine address is specified"
                )
            if len(self.machines) != 0:
                raise unittest.SkipTest(
                    "Cannot run multiple machines if a specific machine address is specified"
                )
            machine = testvm.Machine(address=opts.address,
                                     image=image,
                                     verbose=opts.trace,
                                     label=self.label())
            self.addCleanup(lambda: machine.disconnect())
        else:
            if not machine_class:
                machine_class = testvm.VirtMachine
            machine = machine_class(verbose=opts.trace,
                                    image=image,
                                    label=self.label(),
                                    fetch=opts.network)
            self.addCleanup(lambda: machine.kill())

        self.machines[machine_key] = machine
        return machine
Ejemplo n.º 2
0
 def new_machine(self, image=None, forward={}, **kwargs):
     import testvm
     machine_class = self.machine_class
     if image is None:
         image = self.image
     if opts.address:
         if machine_class or forward:
             raise unittest.SkipTest(
                 "Cannot run this test when specific machine address is specified"
             )
         machine = testvm.Machine(address=opts.address,
                                  image=image,
                                  verbose=opts.trace,
                                  browser=opts.browser)
         self.addCleanup(lambda: machine.disconnect())
     else:
         if not machine_class:
             machine_class = testvm.VirtMachine
         if not self.network:
             network = testvm.VirtNetwork()
             self.addCleanup(lambda: network.kill())
             self.network = network
         networking = self.network.host(restrict=True, forward=forward)
         machine = machine_class(verbose=opts.trace,
                                 networking=networking,
                                 image=image,
                                 **kwargs)
         if opts.fetch and not os.path.exists(machine.image_file):
             machine.pull(machine.image_file)
         self.addCleanup(lambda: machine.kill())
     return machine