code: def teleport(self, hostname, tcpport, password, max_downtime):
          
          if not isinstance(hostname, basestring):
              raise TypeError("hostname can only be an instance of type basestring")
          if not isinstance(tcpport, baseinteger):
              raise TypeError("tcpport can only be an instance of type baseinteger")
          if not isinstance(password, basestring):
              raise TypeError("password can only be an instance of type basestring")
          if not isinstance(max_downtime, baseinteger):
              raise TypeError("max_downtime can only be an instance of type baseinteger")
          progress = self._call("teleport",
                       in_p=[hostname, tcpport, password, max_downtime])
          progress = IProgress(progress)
          return progress
docs: Teleport the VM to a different host machine or process.
          
          @todo Explain the details.
  
          in hostname of type str
              The name or IP of the host to teleport to.
  
          in tcpport of type int
              The TCP port to connect to (1..65535).
  
          in password of type str
              The password.
  
          in max_downtime of type int
              The maximum allowed downtime given as milliseconds. 0 is not a valid
              value. Recommended value: 250 ms.
              
              The higher the value is, the greater the chance for a successful
              teleportation. A small value may easily result in the teleportation
              process taking hours and eventually fail.
              
              
              The current implementation treats this a guideline, not as an
              absolute rule.
  
          return progress of type :class:`IProgress`
              Progress object to track the operation completion.
  
          raises :class:`VBoxErrorInvalidVmState`
              Virtual machine not running or paused.