Move the cli RPC authorization_headers code into rpc_client_lib.
Make autotest_lib.server.frontend use it for RPC authentication.

Signed-off-by: Gregory Smith <gps@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4231 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/server/frontend.py b/server/frontend.py
index 23bc855..beafd23 100644
--- a/server/frontend.py
+++ b/server/frontend.py
@@ -9,8 +9,8 @@
 We turn the JSON dictionaries into real objects that are more idiomatic
 
 For docs, see:
-    http://autotest/afe/server/noauth/rpc/
-    http://autotest/new_tko/server/noauth/rpc/
+    http://autotest/afe/server/rpc_doc/
+    http://autotest/new_tko/server/rpc_doc/
     http://docs.djangoproject.com/en/dev/ref/models/querysets/#queryset-api
 """
 
@@ -71,8 +71,9 @@
         self.print_log = print_log
         self.debug = debug
         self.reply_debug = reply_debug
-        headers = {'AUTHORIZATION' : self.user}
-        rpc_server = 'http://' + server + path
+        http_server = 'http://' + server
+        headers = rpc_client_lib.authorization_headers(user, http_server)
+        rpc_server = http_server + path
         if debug:
             print 'SERVER: %s' % rpc_server
             print 'HEADERS: %s' % headers
@@ -104,7 +105,7 @@
 class TKO(RpcClient):
     def __init__(self, user=None, server=None, print_log=True, debug=False,
                  reply_debug=False):
-        super(TKO, self).__init__(path='/new_tko/server/noauth/rpc/',
+        super(TKO, self).__init__(path='/new_tko/server/rpc/',
                                   user=user,
                                   server=server,
                                   print_log=print_log,
@@ -123,7 +124,7 @@
     def __init__(self, user=None, server=None, print_log=True, debug=False,
                  reply_debug=False, job=None):
         self.job = job
-        super(AFE, self).__init__(path='/afe/server/noauth/rpc/',
+        super(AFE, self).__init__(path='/afe/server/rpc/',
                                   user=user,
                                   server=server,
                                   print_log=print_log,
diff --git a/server/frontend_unittest.py b/server/frontend_unittest.py
index d5b19dc..e72ccf7 100755
--- a/server/frontend_unittest.py
+++ b/server/frontend_unittest.py
@@ -37,6 +37,9 @@
     def test_init(self):
         os.environ['LOGNAME'] = 'unittest-user'
         GLOBAL_CONFIG.override_config_value('SERVER', 'hostname', 'test-host')
+        rpc_client_lib.authorization_headers.expect_call(
+                'unittest-user', 'http://test-host').and_return(
+                        {'AUTHORIZATION': 'unittest-user'})
         rpc_client_lib.get_proxy.expect_call(
                 'http://test-host/path',
                 headers={'AUTHORIZATION': 'unittest-user'})
@@ -52,8 +55,11 @@
             id = 'idFoo'
             results_platform_map = {'NORAD' : {'Seeking_Joshua': ['WOPR']}}
         GLOBAL_CONFIG.override_config_value('SERVER', 'hostname', 'chess')
+        rpc_client_lib.authorization_headers.expect_call(
+                'david', 'http://chess').and_return(
+                        {'AUTHORIZATION': 'david'})
         rpc_client_lib.get_proxy.expect_call(
-                'http://chess/afe/server/noauth/rpc/',
+                'http://chess/afe/server/rpc/',
                 headers={'AUTHORIZATION': 'david'})
         self.god.stub_function(utils, 'send_email')
         utils.send_email.expect_any_call()