ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/CRAB/python/check_HN_Name.py
Revision: 1.5
Committed: Fri Jan 25 20:18:05 2013 UTC (12 years, 3 months ago) by belforte
Content type: text/x-python
Branch: MAIN
CVS Tags: CRAB_2_8_5_patch3, CRAB_2_8_5_patch2, CRAB_2_8_5_patch1, CRAB_2_8_5, CRAB_2_8_5_pre5
Changes since 1.4: +1 -1 lines
Log Message:
user production cmsweb, not testbed: https://savannah.cern.ch/bugs/?100078

File Contents

# User Rev Content
1 slacapra 1.1 class check_HN_name:
2     def init(self):
3     pass
4    
5     def stdaloneCheck(self):
6    
7     import urllib
8     from commands import getstatusoutput
9     print 'start standalone check ...\n'
10     status, dn = getstatusoutput('voms-proxy-info -identity')
11     if status == 0:
12     print "my DN is: %s \n"%dn
13     dn = dn.split('\n')[-1]
14     dn = urllib.urlencode({'dn':dn})
15     print 'Using urlencoded DN: \n\t %s '%dn
16 belforte 1.3 f = urllib.urlopen("https://cmsweb.cern.ch/sitedb/json/index/dnUserName?%s" % dn)
17 belforte 1.4 print 'my HN user name is: %s'%str(f.read())
18 slacapra 1.1 f.close()
19     print '\nend check.....................'
20    
21     def crabCheck(self):
22     from CrabLogger import CrabLogger
23 belforte 1.4 from WorkSpace import WorkSpace, common
24     import tempfile, urllib, os, string
25 slacapra 1.1
26     dname = tempfile.mkdtemp( "", "crab_", '/tmp' )
27     os.system("mkdir %s/log"%dname )
28     os.system("touch %s/crab.log"%dname )
29    
30     cfg_params={'USER.logdir' : dname }
31     common.work_space = WorkSpace(dname, cfg_params)
32     args = string.join(sys.argv,' ')
33     common.debugLevel = 0
34     common.logger = CrabLogger(args)
35    
36     from crab_util import getDN,gethnUserNameFromSiteDB
37     print 'start using CRAB utils ...\n'
38     print "my DN is: %s \n"%getDN()
39     try:
40     print 'my HN user name is: %s \n'%gethnUserNameFromSiteDB()
41     except:
42     print '\nWARNING native crab_utils failed! '
43     dn=urllib.urlencode({'dn':getDN()})
44     print 'trying now using urlencoded DN: \n\t %s '%dn
45     status,hnName = self.gethnName_urlenc(dn)
46     if status == 1:
47     print '\nWARNING: failed also using urlencoded DN '
48     else:
49     print 'my HN user name is: %s \n'%name
50     print 'problems with crab_utils'
51     print '\nend check.....................'
52    
53     os.system("rm -rf %s"%dname )
54    
55     def gethnName_urlenc(self,dn):
56     from WMCore.Services.SiteDB.SiteDB import SiteDBJSON
57     hnUserName = None
58     userdn = dn
59     mySiteDB = SiteDBJSON()
60     status = 0
61     try:
62     hnUserName = mySiteDB.dnUserName(dn=userdn)
63     except:
64     status = 1
65     return status,hnUserName
66    
67    
68     if __name__ == '__main__' :
69     import sys
70 belforte 1.4 import subprocess
71 slacapra 1.1 args = sys.argv[1:]
72 belforte 1.4 check = check_HN_name()
73    
74     print "verify if user DN is mapped in CERN's SSO"
75 belforte 1.5 cmd='curl -s --capath $X509_CERT_DIR --cert $X509_USER_PROXY --key $X509_USER_PROXY "https://cmsweb.cern.ch/sitedb/data/dev/people" | grep "`voms-proxy-info -identity`"'
76 belforte 1.4 DocUrl = "\nhttps://hypernews.cern.ch/HyperNews/CMS/get/cernCompAnnounce/820.html"
77     DocUrl += "\nhttps://twiki.cern.ch/twiki/bin/view/CMS/SiteDBForCRAB"
78    
79     try:
80     subprocess.check_call(cmd,shell=True)
81     print "OK. user ready for SiteDB switchover on March 12, 2013\n\n"
82     except:
83     print "********** ATTENTION !!!! **************"
84     print "DN not registered in CERN's SSO"
85     print "need to follow instructions in %s" % DocUrl
86     print "or Crab will stop working for you on March 12, 2013"
87     print "*****************************************"
88     dummy=raw_input("\nHit Return to acknowlege that you read this message")
89     #sys.exit(1)
90    
91 slacapra 1.1 if 'crab' in args:
92     check.crabCheck()
93     else:
94     check.stdaloneCheck()
95