Example #1
0
    def handleProxy(self ):
        """ Init the user proxy, and delegate it if necessary.
        """

        if not self.options.skipProxy and self.initializeProxy:
            proxy = CredentialInteractions('', '', self.voRole, self.voGroup, self.logger, myproxyAccount=self.serverurl)

            self.proxy = proxy

            self.logger.debug("Checking credentials")
            _, self.proxyfilename = proxy.createNewVomsProxy( timeleftthreshold = 720 )

            if self.requiresREST: #if the command does not contact the REST we can't delegate the proxy
                proxy.myproxyAccount = self.serverurl
                baseurl = self.getUrl(self.instance, resource='info')
                #get the dn of the task workers from the server
                alldns = server_info('delegatedn', self.serverurl, self.proxyfilename, baseurl)

                for serverdn in alldns['services']:
                    proxy.defaultDelegation['serverDN'] = serverdn
                    proxy.defaultDelegation['myProxySvr'] = 'myproxy.cern.ch'

                    self.logger.debug("Registering user credentials for server %s" % serverdn)
                    proxy.createNewMyProxy( timeleftthreshold = 60 * 60 * 24 * RENEW_MYPROXY_THRESHOLD, nokey=True)
        else:
            self.proxyfilename = self.options.skipProxy
            os.environ['X509_USER_PROXY'] = self.options.skipProxy
            self.logger.debug('Skipping proxy creation')