ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/TWikiIB/makeDepMetrics.py
Revision: 1.1
Committed: Mon Sep 7 09:46:41 2009 UTC (15 years, 8 months ago) by geonmo
Content type: text/x-python
Branch: MAIN
Log Message:
New integration build page using TWiki

File Contents

# Content
1 #!/usr/bin/env python
2 import re, os
3
4 class mkDepMetrics(object) :
5 def __init__(self, page, tday, arch, package_name) :
6 self.page=page
7 self.tday = tday
8 self.arch = arch
9 self.package_name = package_name
10 self.url = 'https://macms01.cern.ch/ap/ignominy/'+arch+'/'+package_name+'/igRun/metrics'
11 self.contents = os.popen('wget --no-check-certificate -nv -o /dev/null -O- '+self.url)
12
13 self.page.write("""
14 <!--
15 * Set MENU_ID = test
16 -->
17
18 <style> /* <pre> */
19 %STARTSECTION{"css"}%
20
21 #%MENU_ID% ul{
22 margin: 0px;
23 pading: 0px;
24 }
25
26 #%MENU_ID% ul li{
27 position:relative;
28 list-style: none;
29 margin: 0px 0px 0px 15px;
30 float: left;
31 font-family: sans-serif;
32 font-weight: 800;
33 font-size: 12px;
34 }
35
36 #%MENU_ID% ul ul li{
37 position:relative;
38 font-weight: 500;
39 float: none;
40 margin: 0px 0px 0px -40px;
41 pading: 0px;
42 border: none;
43 background-color: none;
44 border-top: 1px solid #F8F8F8;
45 border-bottom: 1px solid #C0C0C0;
46 }
47 #%MENU_ID%.msie ul ul li{
48 position:relative;
49 margin-left: 0px;
50 }
51
52 #%MENU_ID% ul ul{
53 margin: 0px;
54 clear: left;
55 display: none;
56 position: absolute;
57 top: 20px;
58 left: 0px;
59 background-color: #E0E0E0;
60 border: 1px solid #808080;
61 width: 150px;
62 z-index:30;
63 }
64 #%MENU_ID%.msie ul ul{
65 width: 180px;
66 }
67
68 #%MENU_ID% ul ul ul{
69 top: 5px;
70 left: 190px;
71 }
72
73 #%MENU_ID% a:link,
74 #%MENU_ID% a:active,
75 #%MENU_ID% a:visited{
76 text-decoration: none;
77 color: #0E0E0E;
78 overflow: hidden;
79 }
80
81 #%MENU_ID% ul ul a{
82 padding: 0px 2px 0px 5px;
83 display: block;
84 background-color: #DCDCDC;
85 z-index:20;
86 }
87
88 #%MENU_ID% ul ul a:hover{
89 background-color: #0EEEEE;
90 }
91
92 #%MENU_ID% ul ul a.linkSubMenu:link,
93 #%MENU_ID% ul ul a.linkSubMenu:active,
94 #%MENU_ID% ul ul a.linkSubMenu:visited{
95 font-weight: 800;
96 }
97 %ENDSECTION{"css"}%
98 /* </pre> */ </style>
99 """)
100
101
102
103 def packlist(self):
104 contents=self.contents
105 pack = [['Levels']]
106 j=0
107 while 1:
108 l = contents.readline()
109 if not l:
110 if j==0 : self.page.write('---+++++No data about metrics information.\n')
111 break
112 m1 = re.search('# Levels',l)
113 if m1:
114 while 1:
115 l2 = contents.readline()
116 if not l2:
117 break
118 if l2=='\n':
119 continue
120 m2 = re.search('[0-9]. ',l2)
121 if m2:
122 j = j + 1
123 temp = l2.split()
124 pack.append(temp)
125
126 while 1:
127 l3 = contents.readline()
128 if l3=='\n':
129 break
130 if not l3:
131 break
132 temp =l3.split()
133 pack[j].extend(temp)
134
135 return pack
136 # repack return list [[levels], [level1, [PACKEGE1,module1,module2,...], [PACKEGE2,module1,module2], ..],[level2,[],[],...] ...]
137 def repack(self,pack):
138 listlen = len(pack)
139 pack2 = [['Levels']]
140 countpack = 0
141 for i in range(1,listlen):
142 packname = [[str(i)]]
143 check = 1
144 for j in range(1,len(pack[i])):
145
146 m = re.search('/',pack[i][j])
147 per = m.span()
148 title = pack[i][j][0:per[0]]
149 module = pack[i][j][per[1]:]
150 if j==1:
151 temp = []
152 temp.append(title)
153 packname.append(temp)
154 packname[check].append(module)
155 #print packname[0]
156 else:
157 if packname[check][0]==title:
158 #print 'it\'s work!'
159 packname[check].append(module)
160 else:
161 check = check + 1
162 temp = []
163 temp.append(title)
164 packname.append(temp)
165 packname[check].append(module)
166
167 pack2.append(packname)
168 return pack2
169
170 def dropdown(self,list):
171 self.page.write('<div id="test">\n\n')
172 listlen = len(list)
173 for level in range(1,listlen):
174 self.page.write(' * !'+str(list[level][0][0])+'\n')
175 for pack in range(1,len(list[level])):
176 self.page.write(' * !'+str(list[level][pack][0])+'\n')
177 for module in range(1,len(list[level][pack])):
178 self.page.write(' * [[https://macms01.cern.ch/ap/ignominy/'+self.arch+'/'+self.package_name+'/igRun/subsystem.'+str(list[level][pack][0])+'/PROJECT-'+str(list[level][pack][0])+'-'+str(list[level][pack][module].replace('/','-'))+'-O.gif.html]['+str(list[level][pack][module])+']]\n')
179 self.page.write('</div>\n%INCLUDE{"Main.DropDownMenu" section="js" MENU_ID="test"}%\n<br><br>\n\n')
180
181
182
183 if __name__=="__main__" :
184 from makeDepMetrics import mkDepMetrics
185 mkDM = mkDepMetrics('t','slc4_ia32_gcc345','CMSSW_3_1_X_2009-08-05-1200')
186 pkglist = mkDM.packlist()
187 outputlist = mkDM.repack(pkglist)
188 mkDM.dropdown(outputlist)
189