Skip to content

Commit 83772b9

Browse files
author
John P. Artieda
committed
Revert 5b2d0dd..46018fd
This rolls back to commit 5b2d0dd.
1 parent 46018fd commit 83772b9

20 files changed

Lines changed: 113 additions & 35440 deletions

GGUS/ggus.py

Lines changed: 0 additions & 125 deletions
This file was deleted.

GGUS/readme.rm

Lines changed: 0 additions & 14 deletions
This file was deleted.

GGUS/run_ggus.sh

Lines changed: 0 additions & 12 deletions
This file was deleted.

SR_View_SSB/WRControl/WaitingRoom_Sites.py

Lines changed: 56 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,33 @@
1212
#extract nonwaitingroommsites from ActiveSites script output
1313
url2 = "https://cmsdoc.cern.ch/cms/LCG/SiteComm/T2WaitingList/WasCommissionedT2ForSiteMonitor.txt"
1414

15-
def extractJson():
16-
url = "http://dashb-ssb.cern.ch/dashboard/request.py/getplotdata?columnid=153&time=24&dateFrom=&dateTo=&site=T2_AT_Vienna&sites=all&clouds=undefined&batch=1"
17-
print "Getting the url %s" % url
18-
request = urllib2.Request(url, headers = {"Accept":"application/json"})
19-
response = urllib2.urlopen(request)
20-
data = response.read()
21-
rows = simplejson.loads(data)
22-
return rows
23-
24-
# function needed to fetch a list of all sites from metric
25-
def fetch_all_sites(jsn):
26-
site_T2 = []
27-
for row in jsn['csvdata']:
28-
if row['VOName'][0:2] == 'T2':
29-
site_T2.append(row['VOName'])
30-
return site_T2
31-
15+
# function needed to fetch a list of all sites from siteDB
16+
def fetch_all_sites(url,api):
17+
# examples in:
18+
# https://github.com/gutsche/old-scripts/blob/master/SiteDB/extract_site_executive_mail_addresses.py
19+
# https://github.com/dballesteros7/dev-scripts/blob/master/src/reqmgr/input-blocks.py
20+
# https://twiki.cern.ch/twiki/bin/view/CMSPublic/CompOpsWorkflowOperationsWMAgentScripts#Resubmit
21+
headers = {"Accept": "application/json"}
22+
if 'X509_USER_PROXY' in os.environ:
23+
print 'X509_USER_PROXY found'
24+
conn = httplib.HTTPSConnection(url, cert_file = os.getenv('X509_USER_PROXY'), key_file = os.getenv('X509_USER_PROXY'))
25+
elif 'X509_USER_CERT' in os.environ and 'X509_USER_KEY' in os.environ:
26+
print 'X509_USER_CERT and X509_USER_KEY found'
27+
conn = httplib.HTTPSConnection(url, cert_file = os.getenv('X509_USER_CERT'), key_file = os.getenv('X509_USER_KEY'))
28+
else:
29+
print 'You need a valid proxy or cert/key files'
30+
sys.exit()
31+
print 'conn found in if else structure'
32+
r1=conn.request("GET",api, None, headers)
33+
print 'r1 passed'
34+
r2=conn.getresponse()
35+
print 'r2 passed'
36+
inputjson=r2.read()
37+
print '-------------------------------------------------------------'
38+
#print inputjson
39+
result = simplejson.loads(inputjson)
40+
conn.close()
41+
return result
3242

3343
def getNonWaitingRoomSites(url):
3444
tmp_sites = []
@@ -41,6 +51,8 @@ def getNonWaitingRoomSites(url):
4151
if not row.strip().startswith("#"):
4252
split_row = row.split('\t')
4353
if len(split_row)>1:
54+
#print split_row
55+
#print split_row[1]
4456
tmp_sites.append(split_row[1])
4557
return tmp_sites
4658

@@ -53,8 +65,32 @@ def main_function(outputfile_txt):
5365
print '------------------------------------------'
5466

5567
# all sites
56-
print 'starting to fetch all sites from metric'
57-
site_T2= fetch_all_sites(extractJson())
68+
print 'starting to fetch all sites from siteDB'
69+
jn = fetch_all_sites('cmsweb.cern.ch','/sitedb/data/prod/site-names')
70+
#json form:
71+
#{"desc": {"columns": ["type", "site_name", "alias"]},
72+
# "result": [
73+
# ["cms", "ASGC", "T1_TW_ASGC"],
74+
# ["cms", "BY-NCPHEP", "T3_BY_NCPHEP"]
75+
# ...
76+
77+
# match the information
78+
#print jn['result']
79+
#site_T1= []
80+
site_T2= []
81+
#site_T3= []
82+
#print 'printing i'
83+
for i in jn['result']:
84+
if i[jn['desc']['columns'].index('type')]=='cms':
85+
sitedbname=i[jn['desc']['columns'].index('alias')]
86+
#print sitedbname
87+
#if 'T1' in sitedbname:
88+
# site_T1.append(sitedbname)
89+
if 'T2' in sitedbname:
90+
site_T2.append(sitedbname)
91+
#if 'T3' in sitedbname:
92+
# site_T3.append(sitedbname)
93+
#print site_T2
5894
print '--------------------------------------------------------'
5995
print 'Sites in waiting room:'
6096
waitingRoom_sites = [ site for site in site_T2 if not site in nonWaitingRoom_Sites]
@@ -90,4 +126,4 @@ def main_function(outputfile_txt):
90126

91127
if __name__ == '__main__':
92128
outputfile_txt=sys.argv[1]
93-
main_function(outputfile_txt)
129+
main_function(outputfile_txt)

SR_View_SSB/WRDays/run_WaitingRoom_Sites.sh

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,24 @@
11
#!/bin/bash
2+
# Sten Luyckx
23
# Script in acrontab t1
34
# 5,20,35,50 * * * * lxplus ssh vocms202 /afs/cern.ch/user/c/cmst1/scratch0/Waitingroom_Dashboard/Waitingroom_SummedMetric/run_WaitingRoom_Sites.sh &> /dev/null
45
# Script for Dashboard metric 154, 155, 156
56
# outputfile WaitingRoom_1MonthSum.txt
67
# outputfile WaitingRoom_2MonthSum.txt
78
# outputfile WaitingRoom_3MonthSum.txt
9+
# outputdir /afs/cern.ch/user/c/cmst1/www/WFMon/
10+
# usercert and userkey files must be in folder "data"
811
# this script read all of data from http://dashb-ssb.cern.ch/dashboard/ according to column, dateFrom, dateTo, sites and it calculates How many days Sites are in WaitingRoom as last 1 month, last 2 months, last 3 months.
912
clear
13+
cd /afs/cern.ch/user/c/cmst1/scratch0/Waitingroom_Dashboard/Waitingroom_SummedMetric/
14+
15+
echo "exporting KEY and CERT"
16+
1017
#fixing access
11-
#source /afs/cern.ch/project/gd/LCG-share/new_3.2/etc/profile.d/grid_env.sh
12-
#voms-proxy-init -voms cms
18+
export X509_USER_CERT=/data/certs/servicecert.pem
19+
export X509_USER_KEY=/data/certs/servicekey.pem
20+
21+
1322
# Email if things are running slowly
1423

1524
if [ -f scriptRunning.run ];
@@ -49,4 +58,4 @@ echo "problem: $problem"
4958

5059
cp $txt*.txt /afs/cern.ch/user/c/cmst1/www/WFMon/
5160
echo "WaitingRoom_XMonthSum.txt files copied to: /afs/cern.ch/user/c/cmst1/www/WFMon/ "
52-
rm scriptRunning.run
61+
rm scriptRunning.run

SR_View_SSB/WRDays/waitingRoom_SummedMetrics.py

Lines changed: 45 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -37,24 +37,54 @@ def extractJson(col, startDate, endDate):
3737

3838
#_______________________________________________________________________
3939

40-
# function needed to fetch a list of all sites from metric 153
41-
def fetch_all_sites(jsn):
42-
site_T2 = []
43-
for row in jsn['csvdata']:
44-
if row['VOName'][0:2] == 'T2':
45-
site_T2.append(row['VOName'])
40+
# function needed to fetch a list of all sites from siteDB
41+
def fetch_all_sites(url,api):
42+
# examples in:
43+
# https://github.com/gutsche/old-scripts/blob/master/SiteDB/extract_site_executive_mail_addresses.py
44+
# https://github.com/dballesteros7/dev-scripts/blob/master/src/reqmgr/input-blocks.py
45+
# https://twiki.cern.ch/twiki/bin/view/CMSPublic/CompOpsWorkflowOperationsWMAgentScripts#Resubmit
46+
headers = {"Accept": "application/json"}
47+
if 'X509_USER_PROXY' in os.environ:
48+
print 'X509_USER_PROXY found'
49+
conn = httplib.HTTPSConnection(url, cert_file = os.getenv('X509_USER_PROXY'), key_file = os.getenv('X509_USER_PROXY'))
50+
elif 'X509_USER_CERT' in os.environ and 'X509_USER_KEY' in os.environ:
51+
print 'X509_USER_CERT and X509_USER_KEY found'
52+
conn = httplib.HTTPSConnection(url, cert_file = os.getenv('X509_USER_CERT'), key_file = os.getenv('X509_USER_KEY'))
53+
else:
54+
print 'You need a valid proxy or cert/key files'
55+
sys.exit()
56+
print 'conn found in if else structure'
57+
r1=conn.request("GET",api, None, headers)
58+
print 'r1 passed'
59+
r2=conn.getresponse()
60+
print 'r2 passed'
61+
inputjson=r2.read()
62+
print '-------------------------------------------------------------'
63+
jn = simplejson.loads(inputjson)
64+
conn.close()
65+
66+
site_T2= []
67+
for i in jn['result']:
68+
if i[jn['desc']['columns'].index('type')]=='cms':
69+
sitedbname=i[jn['desc']['columns'].index('alias')]
70+
if 'T2' in sitedbname:
71+
site_T2.append(sitedbname)
4672
return site_T2
4773
#_______________________________________________________________________
4874

49-
def main_function(outputfile_txt, submonths):
75+
def main_function(outputfile_txt, submonths,allSites):
5076
print outputfile_txt
5177
columnnumber='153'
5278
enddate=date.today() # query date
5379
startdate=addmonths(enddate,submonths) # query date
5480
start=startdate.strftime("%Y-%m-%d") # as string field to query
5581
end=enddate.strftime("%Y-%m-%d") # as string field to query
5682
jsn=extractJson(columnnumber, start, end) # results from dashboard extracts into JSON file
57-
allSites = fetch_all_sites(jsn)
83+
filename = 'tmpjson' + start + '.json'
84+
f=open(filename,'w')
85+
f.write(unicode(simplejson.dumps(jsn, ensure_ascii=False)))
86+
f.close()
87+
5888
# sum @ days
5989
days_per_site={}
6090
for site in allSites: # Read all sites from allsites variable
@@ -93,12 +123,12 @@ def main_function(outputfile_txt, submonths):
93123
print '------------------------------'
94124
print days_per_site
95125

126+
96127
# write to file
97-
#f1=open('./'+outputfile_txt, 'w+')
98-
f1=open('/afs/cern.ch/user/c/cmst1/scratch0/Waitingroom_Dashboard/Waitingroom_SummedMetric/'+outputfile_txt, 'w')
128+
f1=open('./'+outputfile_txt, 'w+')
99129
f1.write('# This txt goes into SSB and shows the number of days a site has been in the Waiting Room for X months --> See filename)\n')
100130
f1.write('# Readme:\n# https://raw.githubusercontent.com/CMSCompOps/MonitoringScripts/master/SR_View_SSB/WRDays/Readme.txt\n')
101-
now_write = time.strftime('%Y-%m-%d %H:%M:%S')
131+
now_write=(datetime.utcnow()).strftime("%Y-%m-%d %H:%M:%S")
102132
print "Local current time :", now_write
103133
link="https://dashb-ssb.cern.ch/dashboard/request.py/siteviewhistorywithstatistics?columnid=153#time=2184&start_date=&end_date=&use_downtimes=false&merge_colors=false&sites=all"
104134
for key, number in days_per_site.iteritems():
@@ -112,12 +142,12 @@ def main_function(outputfile_txt, submonths):
112142
if __name__ == '__main__':
113143
outputfile_txt=sys.argv[1]
114144
print 'starting to fetch all sites from siteDB'
115-
main_function(outputfile_txt+'1MonthSum.txt',-1)
145+
allSitesList = fetch_all_sites('cmsweb.cern.ch','/sitedb/data/prod/site-names')
146+
main_function(outputfile_txt+'1MonthSum.txt',-1,allSitesList)
116147
print '__________________________________________________'
117148
print '__________________________________________________'
118-
main_function(outputfile_txt+'2MonthSum.txt',-2)
149+
main_function(outputfile_txt+'2MonthSum.txt',-2,allSitesList)
119150
print '__________________________________________________'
120151
print '__________________________________________________'
121-
main_function(outputfile_txt+'3MonthSum.txt',-3)
122-
152+
main_function(outputfile_txt+'3MonthSum.txt',-3,allSitesList)
123153

0 commit comments

Comments
 (0)