From b84dc3470f262aa36e93efec4dba99d561002c6d Mon Sep 17 00:00:00 2001 From: Tony Mack Date: Tue, 19 Oct 2010 13:10:03 -0400 Subject: [PATCH] attempt to use the user's gid before generating a self signed cert when establishing the connection --- sfa/client/sfi.py | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/sfa/client/sfi.py b/sfa/client/sfi.py index f534d360..87579c3f 100755 --- a/sfa/client/sfi.py +++ b/sfa/client/sfi.py @@ -344,18 +344,27 @@ class Sfi: def get_cert_file(self, key_file): - file = os.path.join(self.options.sfi_dir, self.user.replace(self.authority + '.', '') + ".cert") - if (os.path.isfile(file)): - return file - else: - k = Keypair(filename=key_file) - cert = Certificate(subject=self.user) - cert.set_pubkey(k) - cert.set_issuer(k, self.user) - cert.sign() - self.logger.info("Writing self-signed certificate to %s"%file) - cert.save_to_file(file) - return file + file = os.path.join(self.options.sfi_dir, self.user.replace(self.authority + '.', '') + ".cert") + if (os.path.isfile(file)): + # use existing cert if it exists + return file + else: + try: + # attempt to use gid as the cert. + gid = self._get_gid() + self.logger.info("Writing certificate to %s"%file) + gid.save_to_file(file) + except: + # generate self signed certificate + k = Keypair(filename=key_file) + cert = Certificate(subject=self.user) + cert.set_pubkey(k) + cert.set_issuer(k, self.user) + cert.sign() + self.logger.info("Writing self-signed certificate to %s"%file) + cert.save_to_file(file) + + return file def get_cached_gid(self, file): """ @@ -367,6 +376,9 @@ class Sfi: return gid def get_gid(self, opts, args): + """ + Get the specify gid and save it to file + """ hrn = None if args: hrn = args[0] @@ -375,6 +387,10 @@ class Sfi: return gid def _get_gid(self, hrn=None): + """ + git_gid helper. Retrive the gid from the registry and save it to file. + """ + if not hrn: hrn = self.user -- 2.43.0