ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/CRAB/python/CredentialRenew.py
(Generate patch)

Comparing COMP/CRAB/python/CredentialRenew.py (file contents):
Revision 1.1 by spiga, Mon Dec 8 21:05:26 2008 UTC vs.
Revision 1.10 by farinafa, Tue May 11 14:01:08 2010 UTC

# Line 1 | Line 1
1   from Actor import *
2   from crab_util import *
3   import common
4 + import traceback
5   from ProdCommon.Credential.CredentialAPI import CredentialAPI
6 + from SubmitterServer import SubmitterServer
7 +
8  
9   class CredentialRenew(Actor):
10  
11      def __init__(self, cfg_params):
12 <
12 >        self.cfg_params=cfg_params
13          self.credentialType = 'Proxy'
14          if common.scheduler.name().upper() in ['LSF', 'CAF']:
15              self.credentialType = 'Token'
16 +        
17 +        # init client server params...
18 +        CliServerParams(self)      
19  
20      def run(self):
21          """
22          """
17        common.logger.debug(5, "CredentialRenew::run() called")
18        self.renewer()    
19        common.logger.message("Credential successfully delegated to the server.\n")
20        return
23  
24 <    def renewer(self):
25 <        """
26 <        """
27 <        myproxyserver = self.cfg_params.get('EDG.proxy_server', 'myproxy.cern.ch')
24 >        common.logger.debug("CredentialRenew::run() called")
25 >
26 >        # FIXME With MyProxy delegation this part is completely overlapped with the method manageDelegation
27 >        # in SubmitServer. We should to maintain just one version of the method in a common part  
28 >
29 >        try:
30 >            myproxyserver = Downloader("http://cmsdoc.cern.ch/cms/LCG/crab/config/").config("myproxy_server.conf")
31 >            myproxyserver = myproxyserver.strip()
32 >            if myproxyserver is None:
33 >                raise CrabException("myproxy_server.conf retrieved but empty")
34 >        except Exception, e:
35 >            common.logger.info("Problem setting myproxy server endpoint: using myproxy.cern.ch")
36 >            common.logger.debug(e)
37 >            myproxyserver = 'myproxy.cern.ch'
38 >
39          configAPI = {'credential' : self.credentialType, \
40                       'myProxySvr' : myproxyserver,\
41                       'serverDN'   : self.server_dn,\
42                       'shareDir'   : common.work_space.shareDir() ,\
43 <                     'userName'   : UnixUserName(),\
44 <                     'serverName' : self.server_name \
43 >                     'userName'   : getUserName(),\
44 >                     'serverName' : self.server_name, \
45 >                     'logger' : common.logger() \
46                       }
47          try:
48 <            CredAPI =  CredentialAPI( configAPI )            
49 <        except Exception, err :
50 <            common.logger.debug(3, "Configuring Credential API: " +str(traceback.format_exc()))
48 >            CredAPI =  CredentialAPI( configAPI )
49 >        except Exception, err :
50 >            common.logger.debug( "Configuring Credential API: " +str(traceback.format_exc()))
51              raise CrabException("ERROR: Unable to configure Credential Client API  %s\n"%str(err))
52 <        if not CredAPI.checkCredential(Time=100) :
53 <           common.logger.message("Please renew your %s :\n"%self.credentialType)
54 <           try:
55 <               CredAPI.ManualRenewCredential()
56 <           except Exception, ex:
57 <               raise CrabException(str(ex))
58 <        try:
59 <            dict = CredAPI.registerCredential(sub)
60 <        except Exception, err:
61 <            common.logger.debug(3, "Registering Credentials : " +str(traceback.format_exc()))
62 <            raise CrabException("ERROR: Unable to register %s delegating server: %s\n"%(self.credentialType,self.server_name ))
52 >
53 >        if self.credentialType == 'Proxy':
54 >             # Proxy delegation through MyProxy, 4 days lifetime minimum
55 >             if not CredAPI.checkMyProxy(Time=4, checkRetrieverRenewer=True) :
56 >                common.logger.info("Please renew MyProxy delegated proxy:\n")
57 >                try:
58 >                    CredAPI.credObj.serverDN = self.server_dn
59 >                    CredAPI.ManualRenewMyProxy()
60 >                except Exception, ex:
61 >                    common.logger.debug("Delegating Credentials to MyProxy : " +str(traceback.format_exc()))
62 >                    raise CrabException(str(ex))
63 >        else:
64 >            self.renewer()
65 >            if not CredAPI.checkCredential(Time=100) :
66 >                common.logger.info("Please renew your %s :\n"%self.credentialType)
67 >                try:
68 >                    CredAPI.ManualRenewCredential()
69 >                except Exception, ex:
70 >                    raise CrabException(str(ex))
71 >            try:
72 >                dict = CredAPI.registerCredential()
73 >            except Exception, err:
74 >                common.logger.debug( "Registering Credentials : " +str(traceback.format_exc()))
75 >                raise CrabException("ERROR: Unable to register %s delegating server: %s\n"%\
76 >                    (self.credentialType,self.server_name ))
77 >
78 >        common.logger.info("Credential successfully delegated to the server.\n")
79 >        return

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines