码迷,mamicode.com
首页 > Web开发 > 详细

项目记录 -- config2html 理解

时间:2014-08-06 17:33:51      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   java   os   io   for   art   

html 代码:

 1 <table width=1280 border=0 cellspacing=1 cellpadding=1>
 2     <tr id=tblhdr>
 3         <td><b>pool: {{ d[‘pool‘]}} </b></td>
 4     </tr>
 5     <tr id=row1><td>state: {{ d[‘state‘]}} </td></tr>
 6     <tr id=row1><td>errors: {{ d[‘errors‘] }} </td></tr>
 7     <tr id=row1><td>scan: {{ ‘‘.join(d[‘scan‘]) }} </td></tr>
 8     <tr id=row1><td>config: </td></tr>
 9     <table width=800>
10         {% raw config2html(d[‘pool‘], d[‘config‘][‘topvdev‘], 0, None) %}
11         {% if d[‘config‘][‘logs‘] %}
12             {% raw config2html(d[‘pool‘], d[‘config‘][‘logs‘], 0, None) %}
13         {% end %}
14         {% if d[‘config‘][‘cache‘] %}
15             {% raw config2html(d[‘pool‘], d[‘config‘][‘cache‘], 0, None) %}
16         {% end %}
17         {% if d[‘config‘][‘spares‘] %}
18             {% raw config2html(d[‘pool‘], d[‘config‘][‘spares‘], 0, None) %}
19         {% end %}
20     </table>
21 </table>

app.py 代码:

  1 class ZpoolMoreHandler(tornado.web.RequestHandler):
  2     def config2html(self, poolname, vdev, depth, l, vtype=None):
  3         d = vdev[this]
  4         if depth == 0:
  5             depth = 8
  6             if d[name] == logs or d[name] == cache  7                or d[name] == spares:
  8                 l = []
  9             elif d[name] == poolname:
 10                 l = [<tr id=row1>,
 11                     <td>, &nbsp;*depth, NAME, </td>,
 12                     <td>, STATE, </td>,
 13                      </tr>
 14                     ]
 15         if d[name] == poolname:
 16             action = ‘‘
 17             vtype = root
 18         elif d[name] in [logs, cache, spares]:
 19             action = ‘‘
 20             vtype = log
 21         elif d[name].startswith(raidz):
 22             action = ‘‘
 23             vtype = raidz
 24         elif d[name].startswith(mirror):
 25             action = ‘‘
 26             vtype = mirror
 27         elif d[name].startswith(replac):
 28             action = ‘‘
 29             vtype = mirror
 30         elif d[name].startswith(spar):
 31             action = ‘‘
 32             vtype = mirror
 33         elif vtype == root:
 34             action = <a style="color:#0000ff"  35                 href="/Manage/vdevreplace?poolname=%s&old=%s">  36                 Replace</a>&nbsp;&nbsp; %(poolname, d[name])
 37             if d[state] == ONLINE:
 38                 action += <a style="color:#0000ff"  39                     href="/Manage/vdevoffline?poolname=%s&vdev=%s">  40                     Offline</a>&nbsp;&nbsp; %(poolname, d[name])
 41             else:
 42                 action += <a style="color:#0000ff"  43                     href="/Manage/vdevonline?poolname=%s&vdev=%s">  44                     Online</a>&nbsp;&nbsp; %(poolname, d[name])
 45             action += <a style="color:#0000ff"  46                 href="/Manage/vdevattach?poolname=%s&old=%s">  47                 Attach</a>&nbsp;&nbsp; %(poolname, d[name])
 48         elif vtype == raidz:
 49             action = <a style="color:#0000ff"  50                 href="/Manage/vdevreplace?poolname=%s&old=%s">  51                 Replace</a>&nbsp;&nbsp; %(poolname, d[name])
 52             if d[state] == ONLINE:
 53                 action += <a style="color:#0000ff"  54                     href="/Manage/vdevoffline?poolname=%s&vdev=%s">  55                     Offline</a>&nbsp;&nbsp; %(poolname, d[name])
 56             else:
 57                 action += <a style="color:#0000ff"  58                     href="/Manage/vdevonline?poolname=%s&vdev=%s">  59                     Online</a>&nbsp;&nbsp; %(poolname, d[name])
 60         elif vtype == mirror:
 61             action = <a style="color:#0000ff"  62                 href="/Manage/vdevreplace?poolname=%s&old=%s">  63                 Replace</a>&nbsp;&nbsp; %(poolname, d[name])
 64             if d[state] == ONLINE:
 65                 action += <a style="color:#0000ff"  66                     href="/Manage/vdevoffline?poolname=%s&vdev=%s">  67                     Offline</a>&nbsp;&nbsp; %(poolname, d[name])
 68             else:
 69                 action += <a style="color:#0000ff"  70                     href="/Manage/vdevonline?poolname=%s&vdev=%s">  71                     Online</a>&nbsp;&nbsp; %(poolname, d[name])
 72             action += <a style="color:#0000ff"  73                 href="/Manage/vdevattach?poolname=%s&old=%s">  74                 Attach</a>&nbsp;&nbsp; %(poolname, d[name])
 75             action += <a style="color:#0000ff"  76                 href="/Manage/vdevdetach?poolname=%s&vdev=%s">  77                 Detach</a>&nbsp;&nbsp; %(poolname, d[name])
 78         elif vtype == log:
 79             action = <a style="color:#0000ff"  80                 href="/Manage/vdevreplace?poolname=%s&old=%s">  81                 Replace</a>&nbsp;&nbsp; %(poolname, d[name])
 82             if d[state] == ONLINE or d[state] == AVAIL:
 83                 action += <a style="color:#0000ff"  84                     href="/Manage/vdevoffline?poolname=%s&vdev=%s">  85                     Offline</a>&nbsp;&nbsp; %(poolname, d[name])
 86             else:
 87                 action += <a style="color:#0000ff"  88                     href="/Manage/vdevonline?poolname=%s&vdev=%s">  89                     Online</a>&nbsp;&nbsp; %(poolname, d[name])
 90             action += <a style="color:#0000ff"  91                 href="/Manage/vdevremove?poolname=%s&vdev=%s">  92                 Remove</a>&nbsp;&nbsp; %(poolname, d[name])
 93 
 94         if disk in d:
 95             diskinfo = d[disk]
 96             vdevname = e+diskinfo[enclosure]+s+diskinfo[bay]+ ,  97                     + diskinfo[logical-disk] + , 
 98             if diskinfo[capacity] != "N/A":
 99                 vdevname += str(int(diskinfo[capacity])>>30) + GiB
100         else:
101             vdevname = d[name]
102 
103         l.append(<tr id=row1> +
104                 <td> + &nbsp;*depth + vdevname + </td> + 
105                 <td> + d[state] + </td> +
106                 <td> + action + </td> +
107              </tr>)
108         for c in vdev[children]:
109             self.config2html(poolname, c, depth+4, l, vtype)
110         if depth == 8:
111             return ‘‘.join(l)
112 
113     def get(self):
114         import xmlrpc.client
115         s = xmlrpc.client.ServerProxy(LocalRpcSvcAddr)
116         name = self.get_argument(name, ‘‘)
117         if name:
118             status = s.zpoolstatus(name)
119             if not status:
120                 message=状态信息不可用,请重试.
121                 self.write("<script language=javascript> alert(‘%s‘);</script>"
122                            % message)
123                 return
124 
125             self.render("zpoolmore.htm", d=status, config2html=self.config2html)
注重理解:config2html这段代码

显示页面如下:

bubuko.com,布布扣

项目记录 -- config2html 理解,布布扣,bubuko.com

项目记录 -- config2html 理解

标签:style   blog   color   java   os   io   for   art   

原文地址:http://www.cnblogs.com/fendou-999/p/3824459.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!