Repository: ambari Updated Branches: refs/heads/trunk 17a4e3e9c -> d1e53b326
AMBARI-5757. Agent can not download modified stack files if wrong http_proxy is set up (dlysnichenko) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/d1e53b32 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/d1e53b32 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/d1e53b32 Branch: refs/heads/trunk Commit: d1e53b326018e3e33173d150109b588c33437da2 Parents: 17a4e3e Author: Lisnichenko Dmitro <dlysniche...@hortonworks.com> Authored: Wed May 14 18:46:10 2014 +0300 Committer: Lisnichenko Dmitro <dlysniche...@hortonworks.com> Committed: Wed May 14 18:46:10 2014 +0300 ---------------------------------------------------------------------- ambari-agent/src/main/python/ambari_agent/FileCache.py | 6 ++++-- ambari-agent/src/main/python/ambari_agent/security.py | 7 ++++++- ambari-agent/src/test/python/ambari_agent/TestFileCache.py | 4 ++-- ambari-agent/src/test/python/ambari_agent/TestSecurity.py | 6 +++--- 4 files changed, 15 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/d1e53b32/ambari-agent/src/main/python/ambari_agent/FileCache.py ---------------------------------------------------------------------- diff --git a/ambari-agent/src/main/python/ambari_agent/FileCache.py b/ambari-agent/src/main/python/ambari_agent/FileCache.py index 740e820..91ec76a 100644 --- a/ambari-agent/src/main/python/ambari_agent/FileCache.py +++ b/ambari-agent/src/main/python/ambari_agent/FileCache.py @@ -155,7 +155,9 @@ class FileCache(): logger.debug("Trying to download {0}".format(url)) try: memory_buffer = StringIO.StringIO() - u = urllib2.urlopen(url, timeout=self.SOCKET_TIMEOUT) + proxy_handler = urllib2.ProxyHandler({}) + opener = urllib2.build_opener(proxy_handler) + u = opener.open(url, timeout=self.SOCKET_TIMEOUT) logger.debug("Connected with {0} with code {1}".format(u.geturl(), u.getcode())) buff = u.read(self.BLOCK_SIZE) @@ -234,4 +236,4 @@ class FileCache(): except Exception, err: raise CachingException("Can not unpack zip file to " "directory {0} : {1}".format( - target_directory, str(err))) \ No newline at end of file + target_directory, str(err))) http://git-wip-us.apache.org/repos/asf/ambari/blob/d1e53b32/ambari-agent/src/main/python/ambari_agent/security.py ---------------------------------------------------------------------- diff --git a/ambari-agent/src/main/python/ambari_agent/security.py b/ambari-agent/src/main/python/ambari_agent/security.py index 9801dec..c4cb746 100644 --- a/ambari-agent/src/main/python/ambari_agent/security.py +++ b/ambari-agent/src/main/python/ambari_agent/security.py @@ -189,7 +189,9 @@ class CertificateManager(): def loadSrvrCrt(self): get_ca_url = self.server_url + '/cert/ca/' logger.info("Downloading server cert from " + get_ca_url) - stream = urllib2.urlopen(get_ca_url) + proxy_handler = urllib2.ProxyHandler({}) + opener = urllib2.build_opener(proxy_handler) + stream = opener.open(get_ca_url) response = stream.read() stream.close() srvr_crt_f = open(self.getSrvrCrtName(), 'w+') @@ -204,6 +206,9 @@ class CertificateManager(): register_data = {'csr' : agent_crt_req_content, 'passphrase' : passphrase} data = json.dumps(register_data) + proxy_handler = urllib2.ProxyHandler({}) + opener = urllib2.build_opener(proxy_handler) + urllib2.install_opener(opener) req = urllib2.Request(sign_crt_req_url, data, {'Content-Type': 'application/json'}) f = urllib2.urlopen(req) response = f.read() http://git-wip-us.apache.org/repos/asf/ambari/blob/d1e53b32/ambari-agent/src/test/python/ambari_agent/TestFileCache.py ---------------------------------------------------------------------- diff --git a/ambari-agent/src/test/python/ambari_agent/TestFileCache.py b/ambari-agent/src/test/python/ambari_agent/TestFileCache.py index 023d19a..63ecced 100644 --- a/ambari-agent/src/test/python/ambari_agent/TestFileCache.py +++ b/ambari-agent/src/test/python/ambari_agent/TestFileCache.py @@ -224,7 +224,7 @@ class TestFileCache(TestCase): 'http://localhost:8080/resources//stacks/HDP/2.1.1/hooks/archive.zip') - @patch("urllib2.urlopen") + @patch("urllib2.OpenerDirector.open") def test_fetch_url(self, urlopen_mock): fileCache = FileCache(self.config) remote_url = "http://dummy-url/" @@ -367,4 +367,4 @@ class TestFileCache(TestCase): raise Exception("horrible_exc") def caching_exc_side_effect(self, *a): - raise CachingException("horrible_caching_exc") \ No newline at end of file + raise CachingException("horrible_caching_exc") http://git-wip-us.apache.org/repos/asf/ambari/blob/d1e53b32/ambari-agent/src/test/python/ambari_agent/TestSecurity.py ---------------------------------------------------------------------- diff --git a/ambari-agent/src/test/python/ambari_agent/TestSecurity.py b/ambari-agent/src/test/python/ambari_agent/TestSecurity.py index d8955cf..8b11063 100644 --- a/ambari-agent/src/test/python/ambari_agent/TestSecurity.py +++ b/ambari-agent/src/test/python/ambari_agent/TestSecurity.py @@ -250,7 +250,7 @@ class TestSecurity(unittest.TestCase): - @patch('urllib2.urlopen') + @patch("urllib2.OpenerDirector.open") @patch.object(security.CertificateManager, "getSrvrCrtName") def test_loadSrvrCrt(self, getSrvrCrtName_mock, urlopen_mock): read_mock = MagicMock(create=True) @@ -274,7 +274,7 @@ class TestSecurity(unittest.TestCase): @patch.dict('os.environ', {'DUMMY_PASSPHRASE': 'dummy-passphrase'}) @patch('json.dumps') @patch('urllib2.Request') - @patch('urllib2.urlopen') + @patch("urllib2.OpenerDirector.open") @patch('json.loads') def test_reqSignCrt(self, loads_mock, urlopen_mock, request_mock, dumps_mock, open_mock, hostname_mock): self.config.set('security', 'keysdir', '/dummy-keysdir') @@ -348,7 +348,7 @@ class TestSecurity(unittest.TestCase): @patch("ambari_agent.hostname.hostname") @patch('__builtin__.open', create=True, autospec=True) - @patch('urllib2.urlopen') + @patch("urllib2.OpenerDirector.open") @patch.dict('os.environ', {'DUMMY_PASSPHRASE': 'dummy-passphrase'}) def test_reqSignCrt_malformedJson(self, urlopen_mock, open_mock, hostname_mock): hostname_mock.return_value = "dummy-hostname"