android_xmlrpc_server: Convert for compatible with Python 2.7.

While here, updated target dir for android_xmlrpc_server that allows
write-access across Linux-based platforms.

BUG=None
TEST=Ran android_xmlrpc_server python 2.7 and had no ImportErrors

Change-Id: If2d40787a48fabd1910412118014bd4ee779a1ac
Reviewed-on: https://chromium-review.googlesource.com/346250
Commit-Ready: Kris Rambish <krisr@chromium.org>
Tested-by: Tien Chang <tienchang@chromium.org>
Reviewed-by: Kris Rambish <krisr@chromium.org>
diff --git a/client/cros/constants.py b/client/cros/constants.py
index 6bfab2c..a85050f 100644
--- a/client/cros/constants.py
+++ b/client/cros/constants.py
@@ -142,7 +142,8 @@
         './shill_xmlrpc_server.py')
 SHILL_BRILLO_XMLRPC_SERVER_COMMAND = (
         '/system/bin/shill-test-rpc-proxy --port=%s' % SHILL_XMLRPC_SERVER_PORT)
-ANDROID_XMLRPC_SERVER_TARGET_DIR = '/root'
+# /usr/local/bin is write-accessible on both ChromeOS and test-station platforms
+ANDROID_XMLRPC_SERVER_TARGET_DIR = '/usr/local/bin'
 ANDROID_XMLRPC_SERVER_COMMAND = (
         'cd %s; '
         './android_xmlrpc_server.py' % ANDROID_XMLRPC_SERVER_TARGET_DIR)
diff --git a/client/cros/networking/android_xmlrpc_server.py b/client/cros/networking/android_xmlrpc_server.py
index 7145ac9..64c5e8a 100755
--- a/client/cros/networking/android_xmlrpc_server.py
+++ b/client/cros/networking/android_xmlrpc_server.py
@@ -1,21 +1,21 @@
-#!/usr/bin/python3.4
+#!/usr/bin/python2.7
 
 # Copyright (c) 2015 The Chromium OS Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
 import argparse
-import contextlib
+import contextlib2
 import errno
 import logging
-import queue
+import Queue
 import select
 import shutil
 import signal
 import threading
 import time
 
-from xmlrpc.server import SimpleXMLRPCServer
+from SimpleXMLRPCServer import SimpleXMLRPCServer
 
 from acts import logger
 from acts import utils
@@ -106,7 +106,7 @@
     def run(self):
         """Block and handle many XmlRpc requests."""
         logging.info('XmlRpcServer starting...')
-        with contextlib.ExitStack() as stack:
+        with contextlib2.ExitStack() as stack:
             for delegate in self._delegates:
                 stack.enter_context(delegate)
             while self._keep_running:
@@ -292,7 +292,7 @@
             for result in scan_results:
                 if wutils.WifiEnums.SSID_KEY in result:
                     ssids.append(result[wutils.WifiEnums.SSID_KEY])
-        except queue.Empty:
+        except Queue.Empty:
             logging.error("Scan results available event timed out!")
         except Exception as e:
             logging.error("Scan results error: %s" % str(e))
@@ -338,7 +338,7 @@
                 assert actual_ssid == ssid, ("Expected to connect to %s, but "
                         "connected to %s") % (ssid, actual_ssid)
             result = True
-        except queue.Empty:
+        except Queue.Empty:
             logging.error("No state change available yet!")
         except Exception as e:
             logging.error("State change error: %s" % str(e))
@@ -433,7 +433,7 @@
             assert actual_ssid == params.ssid, ("Expected to connect to %s, "
                 "connected to %s") % (params.ssid, actual_ssid)
             result = True
-        except queue.Empty:
+        except Queue.Empty:
             msg = "Failed to connect to %s with %s" % (params.ssid,
                 params.security_config.security)
             logging.error(msg)