diff options
author | Narayan Desai <desai@mcs.anl.gov> | 2009-05-06 01:26:19 +0000 |
---|---|---|
committer | Narayan Desai <desai@mcs.anl.gov> | 2009-05-06 01:26:19 +0000 |
commit | 04a85177eab72d67bbf58cd011e7fbcad33521b0 (patch) | |
tree | 8cc17dbc08959c1847575131d761220d9aca98fb /src/sbin | |
parent | ba14486ee9e9a55f30b9dd239703ed059ef5fb05 (diff) | |
download | bcfg2-04a85177eab72d67bbf58cd011e7fbcad33521b0.tar.gz bcfg2-04a85177eab72d67bbf58cd011e7fbcad33521b0.tar.bz2 bcfg2-04a85177eab72d67bbf58cd011e7fbcad33521b0.zip |
Implement basic proxy based on 2.6 ssl
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@5182 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'src/sbin')
-rwxr-xr-x | src/sbin/bcfg2 | 52 |
1 files changed, 4 insertions, 48 deletions
diff --git a/src/sbin/bcfg2 b/src/sbin/bcfg2 index c7cec10d8..36ef6d63c 100755 --- a/src/sbin/bcfg2 +++ b/src/sbin/bcfg2 @@ -34,52 +34,6 @@ DECISION_LIST = Bcfg2.Options.Option('Decision List', default=False, long_arg=True) LOCKFILE = "/var/lock/bcfg2.run" -class FPProxyCall(object): - def __init__(self, proxy, method): - self.proxy = proxy - self.method_name = method - self.method = getattr(self.proxy.proxy, method) - - def __call__(self, *args): - try: - return self.method(*args) - except Bcfg2.tlslite.errors.TLSFingerprintError: - self.proxy.proxy = self.proxy.get_proxy() - self.method = getattr(self.proxy.proxy, self.method_name) - return self.__call__(*args) - -class FPProxy(object): - def __init__(self, url, user, password, fingerprints): - self.url = url - self.user = user - self.password = password - self.fingerprints = fingerprints - self.no_fingerprint = len(fingerprints) == 0 - self.proxy = self.get_proxy() - - def __getattr__(self, field): - if field not in self.__dict__: - self.__dict__[field] = FPProxyCall(self, field) - return self.__dict__[field] - - def get_proxy(self): - if self.fingerprints: - fprint = self.fingerprints.pop() - elif self.no_fingerprint: - msg = 'no server x509 fingerprint; no server verification performed!' - print >> sys.stderr, msg - fprint = None - else: - print >> sys.stderr, "Ran out of fingerprints to try" - raise SystemExit(1) - - try: - proxy = Bcfg2.Proxy.ComponentProxy(self.url, self.user, - self.password, fprint) - return proxy - except: - logger.error("Unexpected proxy error", exc_info=1) - raise SystemExit(1) class Client: ''' The main bcfg2 client class ''' @@ -213,8 +167,10 @@ class Client: return(1) else: # retrieve config from server - proxy = FPProxy(self.setup['server'], self.setup['user'], - self.setup['password'], self.setup['fingerprint']) + proxy = Bcfg2.Proxy.ComponentProxy(self.setup['server'], + self.setup['user'], + self.setup['password'], + self.setup['fingerprint']) if self.setup['profile']: try: |