| Index: server/base_utils.py
 | 
| diff --git a/server/base_utils.py b/server/base_utils.py
 | 
| index 1c58609a0fbe0dd6a2d0c90729bd3c2306227502..6d683b26deb49d8126b34a421e8539280dc0c958 100644
 | 
| --- a/server/base_utils.py
 | 
| +++ b/server/base_utils.py
 | 
| @@ -244,27 +244,45 @@ def form_ntuples_from_machines(machines, n=2, mapping_func=default_mappings):
 | 
|      return (ntuples, failures)
 | 
|  
 | 
|  
 | 
| -def parse_machine(machine, user='root', password='', port=22):
 | 
| +def parse_machine(machine, user = 'root', port = 22, password = ''):
 | 
|      """
 | 
|      Parse the machine string user:pass@host:port and return it separately,
 | 
|      if the machine string is not complete, use the default parameters
 | 
|      when appropriate.
 | 
|      """
 | 
|  
 | 
| -    if '@' in machine:
 | 
| -        user, machine = machine.split('@', 1)
 | 
| +    user = user
 | 
| +    port = port
 | 
| +    password = password
 | 
|  
 | 
| -    if ':' in user:
 | 
| -        user, password = user.split(':', 1)
 | 
| +    if re.search('@', machine):
 | 
| +        machine = machine.split('@')
 | 
|  
 | 
| -    if ':' in machine:
 | 
| -        machine, port = machine.split(':', 1)
 | 
| -        port = int(port)
 | 
| +        if re.search(':', machine[0]):
 | 
| +            machine[0] = machine[0].split(':')
 | 
| +            user = machine[0][0]
 | 
| +            password = machine[0][1]
 | 
|  
 | 
| -    if not machine or not user:
 | 
| -        raise ValueError
 | 
| +        else:
 | 
| +            user = machine[0]
 | 
| +
 | 
| +        if re.search(':', machine[1]):
 | 
| +            machine[1] = machine[1].split(':')
 | 
| +            hostname = machine[1][0]
 | 
| +            port = int(machine[1][1])
 | 
| +
 | 
| +        else:
 | 
| +            hostname = machine[1]
 | 
| +
 | 
| +    elif re.search(':', machine):
 | 
| +        machine = machine.split(':')
 | 
| +        hostname = machine[0]
 | 
| +        port = int(machine[1])
 | 
| +
 | 
| +    else:
 | 
| +        hostname = machine
 | 
|  
 | 
| -    return machine, user, password, port
 | 
| +    return hostname, user, password, port
 | 
|  
 | 
|  
 | 
|  def get_public_key():
 | 
| 
 |