| 45 | | for k,v in self.URLs.items(): |
| 46 | | self.response.write("%15s: '%s'\n" % (k,v)) |
| 47 | | self.response.write("</pre>") |
| 48 | | self.response.write("</fieldset>") |
| 49 | | |
| 50 | | self.response.write('<fieldset id="system_info">') |
| 51 | | self.response.write('<legend>self.i18n.debug():</legend>') |
| 52 | | self.response.write("<pre>") |
| 53 | | self.i18n.debug(response_out=True) |
| | 47 | |
| | 48 | data = [(len(v), k, v) for k,v in self.URLs.items()] |
| | 49 | |
| | 50 | max_len = max([len(k) for k in self.URLs]) |
| | 51 | line = "%%%ss: '%%s'\n" % max_len |
| | 52 | |
| | 53 | for _,k,v in sorted(data): |
| | 54 | self.response.write(line % (k,v)) |
| | 55 | |
| 79 | | #_____________________________________________________________________ |
| 80 | | |
| 81 | | self.cmd_info( "uptime", "uptime" ) |
| 82 | | self.cmd_info( "lokal Angemeldete Benutzer", "who -H -u --lookup" ) |
| 83 | | self.cmd_info( "disk", "df -T -h" ) |
| 84 | | self.cmd_info( "RAM", "free -m" ) |
| | 90 | |
| | 91 | |
| | 92 | def proc_info(self): |
| | 93 | """ |
| | 94 | Dispaly some proc files |
| | 95 | """ |
| | 96 | files = ["/proc/meminfo", "/proc/stat", "/proc/loadavg"] |
| | 97 | |
| | 98 | self.response.write("<h3>proc info</h3>") |
| | 99 | |
| | 100 | self.response.write('<dl id="system_info">') |
| | 101 | for proc_file in files: |
| | 102 | self.response.write("<dt>'%s':</dt>" % proc_file) |
| | 103 | try: |
| | 104 | f = file(proc_file, "r") |
| | 105 | except Exception, e: |
| | 106 | self.response.write("<dd>Error: %s</dd>" % e) |
| | 107 | else: |
| | 108 | for line in f: |
| | 109 | self.response.write("<dd>%s</dd>" % line) |
| | 110 | f.close() |
| | 111 | self.response.write("</dl>") |
| 172 | | def cmd_info(self, info, command, cwd="/"): |
| 173 | | self.response.write( |
| 174 | | '<fieldset id="system_info"><legend>%s:</legend>' % info |
| 175 | | ) |
| 176 | | try: |
| 177 | | process = self.tools.subprocess2(command, cwd, 5) |
| 178 | | except Exception,e: |
| 179 | | self.response.write("Can't get: %s" % e) |
| 180 | | else: |
| 181 | | self.response.write("<pre>%s</pre>" % process.out_data) |
| 182 | | self.response.write("</fieldset>") |
| 183 | | |
| 184 | | |
| 185 | | |
| 186 | | |
| 187 | | |
| 188 | | |
| 189 | | |
| 190 | | |
| | 199 | def cmd_info(self): |
| | 200 | """ |
| | 201 | Use some commandline programms and display the output |
| | 202 | """ |
| | 203 | commands = ("uptime", "who -H -u --lookup", "df -T -h", "free -m") |
| | 204 | |
| | 205 | for command in commands: |
| | 206 | self.response.write( |
| | 207 | """<fieldset><legend>'%s':</legend>""" % command |
| | 208 | ) |
| | 209 | try: |
| | 210 | p = Subprocess2(command, |
| | 211 | stdout=subprocess.PIPE, |
| | 212 | shell = True, |
| | 213 | timeout = 1 |
| | 214 | ) |
| | 215 | except Exception, e: |
| | 216 | self.response.write("Error: %s" % e) |
| | 217 | else: |
| | 218 | if not p.killed: |
| | 219 | # read only if process ended normaly, otherwise it blocked! |
| | 220 | msg = "<pre>%s</pre>" % p.process.stdout.read() |
| | 221 | else: |
| | 222 | msg = "Proecess was killed. Returncode: %s" % ( |
| | 223 | p.process.returncode |
| | 224 | ) |
| | 225 | self.response.write(msg) |
| | 226 | |
| | 227 | self.response.write("</fieldset>") |
| | 228 | |
| | 229 | |
| | 230 | |
| | 231 | |
| | 232 | |
| | 233 | |
| | 234 | |
| | 235 | |