ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/SITECOMM/SpaceMonitor/pledge_parse.py
Revision: 1.1
Committed: Wed Nov 12 07:13:58 2008 UTC (16 years, 5 months ago) by xmzhang
Content type: text/x-python
Branch: MAIN
CVS Tags: HEAD
Log Message:
for SSB

File Contents

# User Rev Content
1 xmzhang 1.1 #!/usr/bin/python
2     import string, os
3     import xml.dom.minidom
4     from xml import xpath
5    
6     def getChildValue(element, child):
7     child = element.getElementsByTagName(child)[0].firstChild
8     if child is not None:
9     return str(child.nodeValue)
10     return None
11    
12    
13     pid=os.getpid()
14     namesUrl= 'https://cmsweb.cern.ch/sitedb/sitedb/reports/showXMLReport/?reportid=naming_convention.ini'
15    
16     fileN="/tmp/sitelist.%i" % pid
17    
18    
19     os.system('wget -q --no-check-certificate -O %s %s' % (fileN, namesUrl))
20     f=file(fileN,'r')
21     t= xml.dom.minidom.parse(f)
22     f.close()
23    
24     Sites={}
25     for url in xpath.Evaluate('report/result/item', t):
26     samName=getChildValue(url, 'sam')
27     cmsName=getChildValue(url, 'cms')
28     numId=getChildValue(url, 'id')
29     if cmsName not in Sites.keys():
30     Sites[cmsName]=numId
31    
32     sortedSites=Sites.keys()
33     sortedSites.sort()
34    
35     pledgeBaseUrl="https://cmsweb.cern.ch/sitedb/sitedb/xml/index/Pledge?site="
36     for site in sortedSites:
37     id=Sites[site]
38     pledgeUrl= pledgeBaseUrl + id
39     pledgeBaseUrl="https://cmsweb.cern.ch/sitedb/sitedb/xml/index/Pledge?site="
40     curlcommand='curl -ks "'+pledgeUrl+'"'
41     SiteDBData='\n'.join(os.popen(curlcommand).readlines())
42     pledgeDataXML = xml.dom.minidom.parseString(SiteDBData)
43     pledgeDataElement = xpath.Evaluate('SiteDB', pledgeDataXML)[0]
44     disk = getChildValue (pledgeDataElement, 'disk_store_-_TB')
45     disk=int(float(disk))
46     tape = getChildValue (pledgeDataElement, 'tape_store_-_TB')
47     tape = int(float(tape))
48     slots = getChildValue (pledgeDataElement, 'job_slots_-_')
49     slots=int(float(slots))
50     print id, site, slots, disk, tape