docs: def start_instance(self, build):
          """
          I start a new instance of a VM.
  
          If a base_image is specified, I will make a clone of that otherwise i will
          use image directly.
  
          If i'm not given libvirt domain definition XML, I will look for my name
          in the list of defined virtual machines and start that.
          """
          if self.domain is not None:
              log.msg("Cannot start_instance '%s' as already active" %
                      self.workername)
              return False
  
          yield self._prepare_base_image()
  
          try:
              if self.xml:
                  self.domain = yield self.connection.create(self.xml)
              else:
                  self.domain = yield self.connection.lookupByName(self.workername)
                  yield self.domain.create()
          except Exception:
              log.err(failure.Failure(),
                      "Cannot start a VM (%s), failing gracefully and triggering"
                      "a new build check" % self.workername)
              self.domain = None
              return False
  
          return True