1 root@u254:~/cp#tree
2 .3 |--get_info.py4 |--get_info.pyc5 `--http2.py6
7 get_info.py如下:8 #!/usr/bin/python
9 #encoding=utf-8
10 #supported python2.7
11
12 importcommands13 importjson14
15 defGetInfo(id):16 cmd = "radosgw-admin -c /etc/ceph/ceph.conf bucket stats --uid="+ str(id) +"--categories={}"
17 #cmd = "radosgw-admin bucket stats --uid=37 --categories={} --access=radosgw-admin --access-key=37 --secret=IXJcIub8Zprn7Vu+Tm3VId0LdrnMCfgpZ6sSb9zc"
18 dict_t ={}19 content =commands.getoutput(cmd)20 #print content
21 if content.find(")") != -1:22 en_json = json.loads(content.split(')')[1])23 else:24 en_json =json.loads(content)25 for element inen_json:26 if "bucket" in element.keys() and "usage" inelement.keys():27 #print element["bucket"]
28 if "rgw.main" in element["usage"].keys() and "size_kb_actual" in element["usage"]["rgw.main"].keys():29 #print element["usage"]["rgw.main"]["size_kb_actual"]
30 dict_t.setdefault(element["bucket"], element["usage"]["rgw.main"]["size_kb_actual"])31 else:32 dict_t.setdefault(element["bucket"], 0)33 #print json.dumps(dict_t)
34 returnjson.dumps(dict_t)35
36
37 if __name__ == "__main__":38 GetInfo(37)39
40 http2.py如下:41 #!/usr/bin/pyton
42 #encoding=utf-8
43 #supported by python2.7
44
45
46 #encoding=utf-8
47 from BaseHTTPServer importBaseHTTPRequestHandler, HTTPServer48 importio,shutil49 importurllib,time50 importsys51 sys.path.append(r'./')52 importgetopt,string53 importget_info54
55 classMyRequestHandler(BaseHTTPRequestHandler):56 defdo_GET(self):57 self.process(2)58 defdo_POST(self):59 self.process(1)60
61 defprocess(self,type):62 content =""
63 if type==1:64 datas = self.rfile.read(int(self.headers['content-length']))65 datas = urllib.unquote(datas).decode("utf-8", 'ignore')66 datas =transDicts(datas)67 if datas.has_key('data'):68 content = "data:"+datas['data']+"\r\n"
69
70 if '?' inself.path:71 query =urllib.splitquery(self.path)72 action =query[0]73 if query[1]:74 queryParams ={}75 for qp in query[1].split('&'):76 kv = qp.split('=')77 print kv[1]78 kv[1] = get_info.GetInfo(kv[1])79 queryParams[kv[0]] = urllib.unquote(kv[1]).decode("utf-8", 'ignore')80 #content+= kv[0]+':'+queryParams[kv[0]]+"\r\n"
81 content+= queryParams[kv[0]]+"\r\n"
82
83 enc="UTF-8"
84 content =content.encode(enc)85 f =io.BytesIO()86 f.write(content)87 f.seek(0)88 self.send_response(200)89 self.send_header("Content-type", "text/html; charset=%s" %enc)90 self.send_header("Content-Length", str(len(content)))91 self.end_headers()92 shutil.copyfileobj(f,self.wfile)93 deftransDicts(params):94 dicts={}95 if len(params)==0:96 return
97 params = params.split('&')98 for param inparams:99 dicts[param.split('=')[0]]=param.split('=')[1]100 returndicts101
102 if __name__=='__main__':103 try:104 server = HTTPServer(('203.156.196.254', 20014), MyRequestHandler)105 print 'started httpserver...'
106 server.serve_forever()107 exceptKeyboardInterrupt:108 server.socket.close()109 pass