Merge remote branch 'cros/upstream' into master
Merged to upstream autotest @4749~@5215.
The entire change list description is too big to enlist here. Please refer to upstream (http://autotest.kernel.org/browser) for more details.
BUG=
TEST=emerged both x86 and arm build.
Tested emerged x86 build bvt against a chromeos device.
Review URL: http://codereview.chromium.org/6246035
Change-Id: I8455f2135c87c321c6efc232e2869dc8f675395e
diff --git a/server/base_utils.py b/server/base_utils.py
index 6d683b2..1c58609 100644
--- a/server/base_utils.py
+++ b/server/base_utils.py
@@ -244,45 +244,27 @@
return (ntuples, failures)
-def parse_machine(machine, user = 'root', port = 22, password = ''):
+def parse_machine(machine, user='root', password='', port=22):
"""
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.
"""
- user = user
- port = port
- password = password
+ if '@' in machine:
+ user, machine = machine.split('@', 1)
- if re.search('@', machine):
- machine = machine.split('@')
+ if ':' in user:
+ user, password = user.split(':', 1)
- if re.search(':', machine[0]):
- machine[0] = machine[0].split(':')
- user = machine[0][0]
- password = machine[0][1]
+ if ':' in machine:
+ machine, port = machine.split(':', 1)
+ port = int(port)
- else:
- user = machine[0]
+ if not machine or not user:
+ raise ValueError
- 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 hostname, user, password, port
+ return machine, user, password, port
def get_public_key():