From 12ab0d4d9f6f96b8641910ffaf839fbcee430241 Mon Sep 17 00:00:00 2001 From: zhapuyu Date: Thu, 16 Jun 2016 17:57:58 +0800 Subject: [PATCH 1/3] update readme.md --- ops/README.md | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/ops/README.md b/ops/README.md index c48e246..ecb6dd8 100644 --- a/ops/README.md +++ b/ops/README.md @@ -1,7 +1,19 @@ -<<<<<<< HEAD # bfsops The background management interface of BFS. -======= -# bfsops -The background management interface of BFS. ->>>>>>> 7d8b931a9e68fda757ca26536ef0a50189407e43 + +## 初始化流程: + +###step 1 +启动store、directory、proxy、pitchfork +store启动后,zookeeper看到/rack 有store节点 + +###step 2: +调用space()函数,初始化store,调用完成后,磁盘空间会被分配;bfs存储目录看到生成的volume文件。 + +###step 3: +调用groups()函数,store分组,调用完成后,zookeeper看到/group/ 有组节点 + +###step 4: +调用volumes()函数, 生效volume,调用完成后,zookeeper看到/volume/有volume节点 + +### Done From ca0329b7b114ce9a1814253fa7abd2d88b735f2e Mon Sep 17 00:00:00 2001 From: zhapuyu Date: Thu, 16 Jun 2016 18:46:51 +0800 Subject: [PATCH 2/3] update ops --- ops/README.md | 38 +++++++-------- ops/bfsOps/test/test.py | 24 --------- ops/{bfsOps => }/commons/__init__.py | 0 ops/commons/__init__.pyc | Bin 0 -> 2000 bytes ops/{bfsOps => }/commons/blogging.py | 0 ops/commons/blogging.pyc | Bin 0 -> 659 bytes ops/{bfsOps => }/commons/config.py | 5 +- ops/commons/config.pyc | Bin 0 -> 285 bytes ops/{bfsOps => }/commons/global_var.py | 0 ops/commons/global_var.pyc | Bin 0 -> 452 bytes ops/{bfsOps => }/commons/store_client.py | 3 +- ops/commons/store_client.pyc | Bin 0 -> 4635 bytes ops/{bfsOps => }/commons/zk_client.py | 3 ++ ops/commons/zk_client.pyc | Bin 0 -> 4739 bytes ops/test/ops_initialization.py | 59 +++++++++++++++++++++++ ops/{bfsOps => }/views/__init__.py | 0 ops/views/__init__.pyc | Bin 0 -> 151 bytes ops/{bfsOps => }/views/ops.py | 17 +------ ops/views/ops.pyc | Bin 0 -> 7248 bytes 19 files changed, 89 insertions(+), 60 deletions(-) delete mode 100644 ops/bfsOps/test/test.py rename ops/{bfsOps => }/commons/__init__.py (100%) create mode 100644 ops/commons/__init__.pyc rename ops/{bfsOps => }/commons/blogging.py (100%) create mode 100644 ops/commons/blogging.pyc rename ops/{bfsOps => }/commons/config.py (59%) create mode 100644 ops/commons/config.pyc rename ops/{bfsOps => }/commons/global_var.py (100%) create mode 100644 ops/commons/global_var.pyc rename ops/{bfsOps => }/commons/store_client.py (98%) create mode 100644 ops/commons/store_client.pyc rename ops/{bfsOps => }/commons/zk_client.py (93%) create mode 100644 ops/commons/zk_client.pyc create mode 100644 ops/test/ops_initialization.py rename ops/{bfsOps => }/views/__init__.py (100%) create mode 100644 ops/views/__init__.pyc rename ops/{bfsOps => }/views/ops.py (92%) create mode 100644 ops/views/ops.pyc diff --git a/ops/README.md b/ops/README.md index ecb6dd8..3f47650 100644 --- a/ops/README.md +++ b/ops/README.md @@ -1,19 +1,19 @@ -# bfsops -The background management interface of BFS. - -## 初始化流程: - -###step 1 -启动store、directory、proxy、pitchfork -store启动后,zookeeper看到/rack 有store节点 - -###step 2: -调用space()函数,初始化store,调用完成后,磁盘空间会被分配;bfs存储目录看到生成的volume文件。 - -###step 3: -调用groups()函数,store分组,调用完成后,zookeeper看到/group/ 有组节点 - -###step 4: -调用volumes()函数, 生效volume,调用完成后,zookeeper看到/volume/有volume节点 - -### Done +# bfsops +The background management interface of BFS. + +## 初始化流程: + +###step 1 +启动store、directory、proxy、pitchfork +store启动后,zookeeper看到/rack 有store节点 + +###step 2: +调用space()函数,初始化store,调用完成后,磁盘空间会被分配;bfs存储目录看到生成的volume文件。 + +###step 3: +调用groups()函数,store分组,调用完成后,zookeeper看到/group/ 有组节点 + +###step 4: +调用volumes()函数, 生效volume,调用完成后,zookeeper看到/volume/有volume节点 + +### Done \ No newline at end of file diff --git a/ops/bfsOps/test/test.py b/ops/bfsOps/test/test.py deleted file mode 100644 index 773e77e..0000000 --- a/ops/bfsOps/test/test.py +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -import urllib2 -import json - -def http_post(): - url = 'http://127.0.0.1:9000/bfsops/initialization' - #url = 'http://127.0.0.1:9000/groups' - #url = 'http://127.0.0.1:9000/volumes' - value = {"ips":"123.56.108.22","dirs":"/tmp","size":"3G"} - values = [] - values.append(value) - values_d = {} - values_d['initlist'] = values - - jdata = json.dumps(values_d) - req = urllib2.Request(url, jdata, headers = {"Content-type":"application/json"}) - response = urllib2.urlopen(req) - return response.read() - -resp = http_post() - -print resp \ No newline at end of file diff --git a/ops/bfsOps/commons/__init__.py b/ops/commons/__init__.py similarity index 100% rename from ops/bfsOps/commons/__init__.py rename to ops/commons/__init__.py diff --git a/ops/commons/__init__.pyc b/ops/commons/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d392edf84012f595a4ccd6f59db680e3c0c41b2b GIT binary patch literal 2000 zcmbVN-ESL35T8ANUOtK&MI@mnf>gyIJz9-yj98dCMep*}+;OXYMuug%5x)!R+g zMD|k7e5FMJiCEt8&g^ezcYZrFuKm8b_S=v1Z$esq9Q;1OFh4;| z@KqEOjd0p3=~7_>j&Lbnr|~-JbvoT(kV?hs_118m=udol3Ny>%qjK8BG|px-U4(4q zQO9_QVSa^JNDzCt{@kJBHrdM5#i<@v;S3TAg4(@_4#44lb;(`N-OG0`SG5?muqr>PAge&Gz#36}!bl9sgghiBE`HgjI zIpjf>>XMUnXvP*%I`d6*p?gqCgxSZeKM8EmPlD_;3ex^Xe%{Y=(+{&G$x_qz{V0vB z?;qsnmamrwh0z|ow4s57{nnuud$g?6qE23q85l$mBvZ@2iy)opVT*07mK5Yh*1{}5H$p-Y zgmWP+vKv6nitH@+jm-*eu1&*@%8?MtzP4d8%sDkaRVC+qr{g#<^N`J)hOfzZ4+@yT zwU9$dL?jy0>{2;P$wg1%8Q6CirjtAltoEl_Jkf>W7!D5lmD$)$7>o^U6jl&^BtS}| z&^6>&vix4Yp9YEc{qlJ;T`uml~2JzjjK+jH$_JaVNOWlK|S7yZqlTrMN8OTea`V5J^O@~4(H3lVQ670 zPfgkR;z^~W=d3)z_H=bz*=LZ{-WzpSG9&E;X@6W~$#`z=;PPArrP|x?My4AEajYjF zcgC|Fm3vz}^3bm1mgl3UxR&M=0wnT}k(pV!oLB zVH}}f40o|_$XO~?6Q$Ek3P~45R>eySlIp4U?eP}wFOR?SM<>2FIvIW`E=I+f zmflpl7M!#Uj@gf{pLKi~6S#`-1E}T}1h*kqb(~FAcRFfQZOFV0-F*1=7LZcCUddXw z+kNu&<572T@^sMS2eO<1vp9Pm#Qw{mklK09|0<|>VQI*K;Z25ep-;KcrObvqyznjy ze%GPYI#+>NH6;BivVT{c%>HK=W)|-y+2kzN_qpd7K5b2PYVL;Xf`htSbGKb#;4hc1 BrnvwB literal 0 HcmV?d00001 diff --git a/ops/bfsOps/commons/blogging.py b/ops/commons/blogging.py similarity index 100% rename from ops/bfsOps/commons/blogging.py rename to ops/commons/blogging.py diff --git a/ops/commons/blogging.pyc b/ops/commons/blogging.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6fdb4c6691514f1f30297536280d8b0d635ff8ef GIT binary patch literal 659 zcmY*WJ#X7E5IxF{zug4MkTr_|d5EUegc_#|Hpn9PC@C+jF0d}D71NK+|BIFr>8U&IL0f$hJ zf+DUl8OH=4B4<4**L7j9ojFwA_Hqg(h{<0|SgHuBfyn$T-#1JICX=CXKPEk3!G zCB4U-S{zD4{({FzDt$rP;MAX-o=nnGH)v&`XOpzi7OmT?yv;_DLGNY7nwV-{@?mfQ z>3&EaN?ABt>WYFjwpD3c(ZM^OJxHq>T>9vDM~+zW)sZBYU$cwbH`O-F52cq8Z#Gb$ z_1A7`BoQtnD|akZ$s_&0Tp``D8x{wT!5G5rI z{FG^?B+1N3S8Hjrr^PzsSI7!yjI%zQZ|*%?tm7@ujZ>=zFZfNshgysTf5}uFCS$QL G#^M!pv6*TB literal 0 HcmV?d00001 diff --git a/ops/bfsOps/commons/config.py b/ops/commons/config.py similarity index 59% rename from ops/bfsOps/commons/config.py rename to ops/commons/config.py index 7e413e6..cfcdbfd 100644 --- a/ops/bfsOps/commons/config.py +++ b/ops/commons/config.py @@ -1,9 +1,12 @@ # -*- encoding:utf8 -*- +# store. store_admin_port = 6063 store_stat_port = 6061 store_block_size = 32 # GB -zk_hosts = '127.0.0.1:2181' +# zookeeper port:2181. +zk_hosts = '127.0.0.1' +# log dir. log_dir = '/tmp' diff --git a/ops/commons/config.pyc b/ops/commons/config.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a9979ff56c4df19d1560acd7a9018778e9b27f86 GIT binary patch literal 285 zcmYL?O-{o=427Ma282}68-Q44l_9Wz1*$j!n@TKZGb))-M$N>d*esfpa0+gNSo9cN zpq>`BW6fv#>DkWyrWf1quh$0tUn2QgKHUf`fEFg86R;`h6l?}M1Dk`+!A@XN7GiV1 z=YpSz>o__U)DL%6{aDq)+k47IQS8G@IgyHI(Zx8lW@)|aO~8Tq@+cB7`JkPQZyh#k zLvCzY?!dSXcgr>QHNDXe64OXd^!s{Zx`yxfv( zke;4%dU|@DzrOeT^R?bU^I5n*;;Niva}urMM%S6y@P!*M z98rLxd>QdDCLPALFa>p=IS=RKi0aqTbTte3BzV;~csfpkfM0m$8}%Hze$f<|%*Bf| zgzh&ZH5K8=M+44K4Nx*Ev|xo$pIfnG-{py^vSJ%m6lzzok6gWpoFB#ht~}{3=I;w7 U4|(>`Mqb?_xEB6)vkXK02a~N{P5=M^ literal 0 HcmV?d00001 diff --git a/ops/bfsOps/commons/store_client.py b/ops/commons/store_client.py similarity index 98% rename from ops/bfsOps/commons/store_client.py rename to ops/commons/store_client.py index e26ad41..4f57a71 100644 --- a/ops/bfsOps/commons/store_client.py +++ b/ops/commons/store_client.py @@ -22,6 +22,7 @@ def __init__(self, host, port): def request(self, method, url, body=None, headers={}): '''return [True|False], status, data''' try: + print url,body if self.http_conn is None: self.http_conn = httplib.HTTPConnection(self.host, self.port, timeout=HttpConnection.DEFAULT_TIMEOUT) @@ -60,7 +61,7 @@ def genStoreConn(store_ip, store_port): def storeAddFreeVolume(store_ip, base_dir, num_volumes): if num_volumes <= 0: return None - + print store_ip store_conn = genStoreConn(store_ip, config.store_admin_port) url = "/add_free_volume" value = {} diff --git a/ops/commons/store_client.pyc b/ops/commons/store_client.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a607206666f9c8d94ac1f9e6ff38527dc2abde89 GIT binary patch literal 4635 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 literal 0 HcmV?d00001 diff --git a/ops/test/ops_initialization.py b/ops/test/ops_initialization.py new file mode 100644 index 0000000..119e4e1 --- /dev/null +++ b/ops/test/ops_initialization.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import urllib2 +import json + +# initialize bfs space +def space(): + url = 'http://127.0.0.1:9000/bfsops/initialization' + # ips 机器的ip列表 + # dirs 磁盘目录 + # size 每块磁盘的空间大小 + value = {"ips":"xx.xx.xx.xx, yy.yy.yy.yy","dirs":"/data1/bfsdata/,/data2/bfsdata/","size":"10T"} + + jdata = json.dumps(value) + req = urllib2.Request(url, jdata, headers = {"Content-type":"application/json"}) + response = urllib2.urlopen(req) + return response.read() +# initialize groups +def groups(): + url = 'http://127.0.0.1:9000/bfsops/groups' + # ips 要分组的ip列表 + # copys 副本数(包括本身) + # racks 跨机架 默认1即可,具体请参考ops代码 + value = {"ips":"xx.xx.xx.xx, yy.yy.yy.yy", "copys":2, "rack":1} + + jdata = json.dumps(value) + req = urllib2.Request(url, jdata, headers = {"Content-type":"application/json"}) + response = urllib2.urlopen(req) + return response.read() + +# initialize volumes +def volumes(): + url = 'http://127.0.0.1:9000/bfsops/volumes' + # groups 生效某个group + value = {"groups":"2"} + + jdata = json.dumps(value) + req = urllib2.Request(url, jdata, headers = {"Content-type":"application/json"}) + response = urllib2.urlopen(req) + return response.read() + +# store启动后,zookeeper看到/rack 有store节点 + +# 初始化流程: +# 分别依次调用3个函数,分别完成:初始化store;store分组;生效volume. +#step 1: +#space() +#调用完成后,磁盘空间会被分配;bfs存储目录看到生成的volume文件。 + +#step 2: +#groups() +#调用完成后,zookeeper看到/group/ 有组节点 + +#step 3: +#volumes() +#调用完成后,zookeeper看到/volume/有volume节点 + + diff --git a/ops/bfsOps/views/__init__.py b/ops/views/__init__.py similarity index 100% rename from ops/bfsOps/views/__init__.py rename to ops/views/__init__.py diff --git a/ops/views/__init__.pyc b/ops/views/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..60410e557a88df9149957978955cd2ad37516c6f GIT binary patch literal 151 zcmZSn%**w%BReda0ScIav;z?GlDfhvYG#Zz)yn_$Sh$768Qzi z8bFExK@_V4x%w%IC5igEiTPQXiFx`}1(o_hh5BWgspZA`@$s2?nI-Y@dIgmw96+@; Sx%nxjIjMFmKz1<@GXMbOHz7a( literal 0 HcmV?d00001 diff --git a/ops/bfsOps/views/ops.py b/ops/views/ops.py similarity index 92% rename from ops/bfsOps/views/ops.py rename to ops/views/ops.py index 8163f4b..0f37a4c 100644 --- a/ops/bfsOps/views/ops.py +++ b/ops/views/ops.py @@ -6,15 +6,7 @@ from commons import * from commons.global_var import * - from flask import request,render_template,jsonify,session,redirect,url_for,abort -#from bfsOps.decorates import login_required - -@app.route('/') -@app.route('/index.html') -#@login_required -def home(): - return render_template('index.html') @app.route('/bfsops/initialization', methods = ["POST"]) @@ -178,7 +170,7 @@ def bfsopsGroupsGet(): def bfsopsVolumesPost(): if not request.json: abort(400) - groups = list(set(request.json['groups'])) + groups = list(set(request.json['groups'].split(','))) for group_id in groups: if not GROUP_STORE.has_key(group_id.encode('utf-8')): abort(400) @@ -188,7 +180,7 @@ def bfsopsVolumesPost(): resp['errorMsg'] = "" need_break = False - global MAX_VOLUME_ID + global MAX_VOLUME_ID for group_id_u in groups: group_id = group_id_u.encode('utf-8') stores = GROUP_STORE[group_id] @@ -225,8 +217,3 @@ def bfsopsVolumesPost(): resp_str = json.dumps(resp) logger.info("bfsopsVolumesPost() called, success, resp: %s", resp_str) return resp_str - -@app.route('/bfsops/volumes', methods = ["GET"]) -#@login_required -def bfsopsVolumesGet(): - pass diff --git a/ops/views/ops.pyc b/ops/views/ops.pyc new file mode 100644 index 0000000000000000000000000000000000000000..52113af1f609a089c858a611200e11ed53ac2ca4 GIT binary patch literal 7248 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 Date: Thu, 16 Jun 2016 18:48:56 +0800 Subject: [PATCH 3/3] update ops --- ops/README.md | 2 +- ops/setup.py | 8 +------- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/ops/README.md b/ops/README.md index 3f47650..5c5771a 100644 --- a/ops/README.md +++ b/ops/README.md @@ -1,7 +1,7 @@ # bfsops The background management interface of BFS. -## 初始化流程: +## 初始化流程(请参照test/ops_initialization.py): ###step 1 启动store、directory、proxy、pitchfork diff --git a/ops/setup.py b/ops/setup.py index dbaeb04..e405e20 100644 --- a/ops/setup.py +++ b/ops/setup.py @@ -1,16 +1,10 @@ from setuptools import setup setup( - name="IMDaDa", + name="bfs", version="1.0", install_requires=[ "requests", "flask", - "flask-wtf", - "Flask-Login", - "Flask-OAuth", - "Flask-OAuthlib", - "Flask-migrate", - "flask-debugtoolbar", ], )