Changeset 1232


Ignore:
Timestamp:
22/06/06 09:35:46 (13 years ago)
Author:
pjkersha
Message:

NDG/SimpleCA.py: put pass-phrase check at end of init so that all other initialisation is in place.

Location:
TI12-security/trunk/python
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TI12-security/trunk/python/NDG/SimpleCA.py

    r1231 r1232  
    55P J Kershaw 02/08/05 
    66 
    7 Copyright (C) 2005 CCLRC & NERC 
     7Copyright (C) 2006 CCLRC & NERC 
    88 
    99This software may be distributed under the terms of the Q Public License, 
     
    113113        if propFilePath is not None: 
    114114            self.readProperties(propFilePath) 
    115          
    116          
    117         # Set pass-phrase from file or string input - Call __setCAPassPhrase 
    118         # after setProperties and readProperties calls as chkCAPassPhrase 
    119         # which it uses needs to have the 'chkCAPassPhraseExe' dictionary key 
    120         # set 
     115 
     116         
     117        if not 'GLOBUS_LOCATION' in os.environ or \ 
     118           not os.environ['GLOBUS_LOCATION']: 
     119            raise SimpleCAError, \ 
     120                        "Environment variable \"GLOBUS_LOCATION\" is not set" 
     121 
     122 
     123        # Set-up CA directory - use in chkCAPassPhrase() 
     124        if not 'HOME' in os.environ or not os.environ['HOME']: 
     125            raise SimpleCAError, "Environment variable \"HOME\" is not set" 
     126                 
     127        self.__gridCAConfigFilePath = os.path.join(os.environ['HOME'],  
     128                                                   self.__gridCASubDir, 
     129                                                   self.__gridCAConfigFile) 
     130 
     131         
     132        # Set pass-phrase from file or string input - Check HERE because 
     133        # property settings made by readProperties and setProperties need to 
     134        # be in place first 
    121135        if configFilePath is not None: 
    122136            try: 
     
    128142            self.__setCAPassPhrase(caPassPhrase) 
    129143 
    130          
    131         if not 'GLOBUS_LOCATION' in os.environ or \ 
    132            not os.environ['GLOBUS_LOCATION']: 
    133             raise SimpleCAError, \ 
    134                 "Environment variable \"GLOBUS_LOCATION\" is not set" 
    135  
    136  
    137         # Set-up CA directory - use in chkCAPassPhrase() 
    138         if not 'HOME' in os.environ or not os.environ['HOME']: 
    139             raise SimpleCAError, \ 
    140                 "Environment variable \"HOME\" is not set" 
    141                  
    142         self.__gridCAConfigFilePath = os.path.join(os.environ['HOME'],  
    143                                                    self.__gridCASubDir, 
    144                                                    self.__gridCAConfigFile) 
    145  
    146144 
    147145    #_________________________________________________________________________ 
     
    157155    def __delitem__(self, key): 
    158156        "SimpleCA Properties keys cannot be removed"         
    159         raise SimpleCAError('Keys cannot be deleted from ' + \ 
    160                             self.__class__.__name__) 
     157        raise SimpleCAError, 'Keys cannot be deleted from ' + \ 
     158                            self.__class__.__name__ 
    161159 
    162160    def __getitem__(self, key): 
     
    168166            return self.__prop[key]                 
    169167        else: 
    170             raise SimpleCAError("Property with key '%s' not found" % key) 
     168            raise SimpleCAError, "Property with key '%s' not found" % key 
    171169         
    172170    def clear(self): 
    173         raise SimpleCAError("Data cannot be cleared from " + \ 
    174                             self.__class__.__name__) 
     171        raise SimpleCAError, "Data cannot be cleared from " + \ 
     172                            self.__class__.__name__ 
    175173     
    176174    def keys(self): 
     
    210208        for key in prop.keys(): 
    211209            if key not in self.__validKeys: 
    212                 raise SimpleCAError("Property name \"%s\" is invalid" % key) 
     210                raise SimpleCAError, "Property name \"%s\" is invalid" % key 
    213211                 
    214212        self.__prop.update(prop) 
     
    229227             
    230228            except Exception, e: 
    231                 raise SimpleCAError("certExpiryDate has the format " + \ 
     229                raise SimpleCAError, "certExpiryDate has the format " + \ 
    232230                                    "YYYY mm dd HH MM SS. Year, month, " + \ 
    233                                     "day, hour minute, second respectively.")            
     231                                    "day, hour minute, second respectively."            
    234232 
    235233 
     
    251249                 
    252250            except IOError, e: 
    253                 raise SimpleCAError(\ 
     251                raise SimpleCAError, \ 
    254252                                "Error parsing properties file \"%s\": %s" % \ 
    255                                 (e.filename, e.strerror)) 
     253                                (e.filename, e.strerror) 
    256254 
    257255            except Exception, e: 
    258                 raise SimpleCAError("Error parsing properties file: %s" % \ 
    259                                     str(e)) 
     256                raise SimpleCAError, "Error parsing properties file: %s" % \ 
     257                                    str(e) 
    260258 
    261259        if propElem is None: 
    262             raise SimpleCAError("Root element for parsing is not defined") 
     260            raise SimpleCAError, "Root element for parsing is not defined" 
    263261 
    264262 
     
    279277           'certExpiryDate' in missingKeys and \ 
    280278           'certLifetimeDays' in missingKeys: 
    281             raise SimpleCAError("The following properties are missing " + \ 
    282                                 "from the properties file: " + \ 
    283                                 ', '.join(missingKeys)) 
     279            raise SimpleCAError, "The following properties are missing " + \ 
     280                                 "from the properties file: " + \ 
     281                                 ', '.join(missingKeys) 
    284282                                 
    285283        self.setProperties(**prop) 
     
    301299            if not isinstance(caPassPhrase, basestring): 
    302300                raise SimpleCAError, "CA Pass-phrase must be a valid string" 
    303          
    304         if 'chkCAPassPhraseExe' not in self.__prop: 
    305             raise SimpleCAError, "\"chkCAPassPhraseExe\" has not been set." +\ 
    306                 "  Call setProperties or readProperties method to set it" 
    307301         
    308302        chkCAPassPhraseCmd = [ 
     
    324318                 
    325319                chkCAPassPhraseProc = Popen(chkCAPassPhraseCmd, 
    326                                        stdin=chkCAPassPhraseR, 
    327                                        stdout=PIPE, 
    328                                        stderr=STDOUT, 
    329                                        close_fds=True) 
     320                                           stdin=chkCAPassPhraseR, 
     321                                           stdout=PIPE, 
     322                                           stderr=STDOUT, 
     323                                           close_fds=True) 
    330324            finally: 
    331325                try: 
     
    353347         
    354348        if errMsg is not None: 
    355             raise SimpleCAPassPhraseError, errMsg 
     349            raise SimpleCAPassPhraseError(errMsg) 
    356350 
    357351 
     
    386380                caPassPhrase = open(configFilePath).read().strip() 
    387381            except Exception, e: 
    388                 raise SimpleCAError("Reading configuration file: " + str(e)) 
     382                raise SimpleCAError, "Reading configuration file: " + str(e) 
    389383 
    390384        # ... or from string input 
     
    393387             
    394388        if self.__caPassPhrase is None: 
    395             raise SimpleCAError("CA Pass-phrase must be set in order to " + \ 
     389            raise SimpleCAError, "CA Pass-phrase must be set in order to " + \ 
    396390                                "sign a certificate request") 
    397391 
     
    399393        if certReq is not None: 
    400394            if not isinstance(certReq, basestring): 
    401                 raise SimpleCAError("certReq input must be a valid string") 
     395                raise SimpleCAError, "certReq input must be a valid string" 
    402396 
    403397            # Certificate request has been passed in a string - write it to 
     
    414408            # Certificate request has been input as a file - check it 
    415409            if not isinstance(certReqFilePath, basestring): 
    416                 raise SimpleCAError(\ 
     410                raise SimpleCAError, \ 
    417411                    "certReqFilePath input must be a valid string")            
    418412        else: 
    419413            # The certificate request msut be input via either of the two 
    420414            # options above 
    421             raise SimpleCAError("No input Certificate Request provided") 
     415            raise SimpleCAError, "No input Certificate Request provided" 
    422416 
    423417         
     
    425419        if self.__dtCertExpiry is None: 
    426420            if 'certLifetimeDays' not in self.__prop: 
    427                 raise SimpleCAError("No certLifetimeDays parameter set") 
     421                raise SimpleCAError, "No certLifetimeDays parameter set" 
    428422                 
    429423            self.__dtCertExpiry = datetime.utcnow() + \ 
     
    468462            if gridCaSignProc.wait(): 
    469463                errMsg = gridCaSignProc.stdout.read() 
    470                 raise SimpleCAError(errMsg) 
     464                raise SimpleCAError, errMsg 
    471465                                         
    472466        except IOError, e:                
    473             raise SimpleCAError(errMsgTmpl % e.strerror) 
     467            raise SimpleCAError, errMsgTmpl % e.strerror 
    474468         
    475469        except OSError, e: 
    476             raise SimpleCAError(errMsgTmpl % e.strerror) 
     470            raise SimpleCAError, errMsgTmpl % e.strerror 
    477471         
    478472        except Exception, e: 
    479             raise SimpleCAError(errMsgTmpl % e) 
     473            raise SimpleCAError, errMsgTmpl % e 
    480474 
    481475 
     
    485479 
    486480        except Exception, e: 
    487             raise SimpleCAError( 
    488             "Reading output certificate file \"%s\": %s" % (certFile.name, e)) 
    489  
    490              
    491 def simpleCATest(): 
    492     sCA = SimpleCA() 
     481            raise SimpleCAError, \ 
     482            "Reading output certificate file \"%s\": %s" % (certFile.name, e) 
Note: See TracChangeset for help on using the changeset viewer.