diff --git a/.gitignore b/.gitignore
index 230eabe..1cb2cc3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,11 +23,8 @@ _testmain.go
*.test
*.prof
*.gitattributes
-<<<<<<< HEAD
*.iml
*.ipr
*.iws
.idea/
-=======
->>>>>>> startfeng/master
diff --git a/README.md b/README.md
index bbad71b..cca52bf 100644
--- a/README.md
+++ b/README.md
@@ -101,4 +101,7 @@ $ nohup python runserver.py &
## API
[api文档](https://github.com/Terry-Mao/bfs/blob/master/doc/api.md)
+
## 更多
+
+ * [bfs-image-server](github.com/YonkaFang/bfs-image-server)
diff --git a/directory/dispatcher.go b/directory/dispatcher.go
index 8937019..2b036ea 100644
--- a/directory/dispatcher.go
+++ b/directory/dispatcher.go
@@ -70,6 +70,7 @@ func (d *Dispatcher) Update(group map[int][]string,
if !write {
continue
}
+
// calc score
for _, sid = range stores {
totalAdd, totalAddDelay, restSpace, minScore = 0, 0, 0, 0
diff --git a/gops/gops b/gops/gops
deleted file mode 100755
index 355a697..0000000
Binary files a/gops/gops and /dev/null differ
diff --git a/gops/models/ops/ops.go b/gops/models/ops/ops.go
index d9e1d8a..26df43d 100644
--- a/gops/models/ops/ops.go
+++ b/gops/models/ops/ops.go
@@ -69,7 +69,7 @@ func (o *Ops)LoadRacks() {
)
if racks, err = o.GetRack(); err != nil {
- beego.Critical(err)
+ beego.Error(err)
}
global.STORES = make(map[string]*types.Store)
@@ -90,7 +90,7 @@ func (o *Ops)LoadGroups() {
)
if groups, err = o.GetGroup(); err != nil {
- beego.Critical(err)
+ beego.Error(err)
}
global.IN_GROUP_STORES = make(map[string]*types.Store)
@@ -111,13 +111,13 @@ func (o *Ops)LoadGroups() {
func (o *Ops)LoadVolumes() {
var (
- volumes []*types.Group
+ volumes []*types.Volume
err error
- volume *types.Group
+ volume *types.Volume
)
- if volumes, err = o.GetGroup(); err != nil {
- beego.Critical(err)
+ if volumes, err = o.GetVolume(); err != nil {
+ beego.Error(err)
}
@@ -178,12 +178,11 @@ func (o *Ops)AddGroup(stores []string, copys, racks int) (err error) {
storeId string
)
- if len(stores) == 0 || len(stores) % copys != 0 {
+ if len(stores) == 0 {
err = addGroupParamsErr
return
}
- stores = stores[0:copys]
groupId = global.MAX_GROUP_ID + 1
for _, storeId = range stores {
if err = o.zk.CreateGroup(groupId, storeId); err != nil {
@@ -209,7 +208,6 @@ func (o *Ops) AddVolume(groupId uint64, n int) (err error) {
for i := 0; i < n; i++ {
vid = global.MAX_VOLUME_ID + 1
- beego.Info(vid)
for _, store = range group.Stores {
if err = o.store.AddVolume(store.Admin, vid); err != nil {
diff --git a/gops/models/types/types.go b/gops/models/types/types.go
index bb62e0c..f6c0207 100644
--- a/gops/models/types/types.go
+++ b/gops/models/types/types.go
@@ -8,6 +8,7 @@ type Store struct {
Admin string `json:"admin"`
Rack string `json:"rack"`
Status int `json:"status"`
+ Volumes []string `json:"volumes"`
}
type Rack struct {
diff --git a/gops/models/zk/zk.go b/gops/models/zk/zk.go
index 97550e9..9a6cb7d 100644
--- a/gops/models/zk/zk.go
+++ b/gops/models/zk/zk.go
@@ -79,7 +79,6 @@ func (z *ZooKeeper) GetRack() (racks []*types.Rack, err error) {
if children, _, err = z.c.Children(_rackRoot); err != nil {
return
}
-
racks = make([]*types.Rack, len(children))
for i, child := range children {
rack = new(types.Rack)
@@ -99,6 +98,12 @@ func (z *ZooKeeper) GetRack() (racks []*types.Rack, err error) {
if err = json.Unmarshal(data, store); err != nil {
return
}
+
+ if store.Volumes , _, err = z.c.Children(_rackRoot + "/" + child + "/" + child1); err != nil {
+ return
+ }
+
+
store.Ip = strings.Split(store.Stat, ":")[0]
rack.Stores[j] = store
}
diff --git a/gops/static/js/index.js b/gops/static/js/index.js
index 1d87972..10ad94a 100644
--- a/gops/static/js/index.js
+++ b/gops/static/js/index.js
@@ -13,11 +13,13 @@ var myapp = ng.module('myapp', []);
var storeInfo = function (host) {
window.open("http://" + host + "/info")
}
-var initFreeVolume = function(host){
+var initFreeVolume = function(host,storeId){
var dailog = $('#initFreeVolumeDialog');
var scope = dailog.scope();
var formData = {}
+
scope.formData = formData;
+ scope.storeId = storeId
formData.host=host;
@@ -75,6 +77,8 @@ myapp.controller('freeStore', function ($scope, $http) {
}).success(function (data) {
if (data.success){
alert("操作成功")
+ var dailog = $('#freeStoreDialog');
+ dailog.modal('hide');
}
})
}
diff --git a/gops/views/codis.tpl b/gops/views/codis.tpl
deleted file mode 100644
index 0a21c69..0000000
--- a/gops/views/codis.tpl
+++ /dev/null
@@ -1,361 +0,0 @@
-
-
-
-
- Codis
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Overview
-
-
-
-
-
- Product Name:
- | [[ product ]]
- |
- Keys:
- | [[ keys ]]
- |
- Mem Used:
- | [[ memUsed ]] MB
- |
- Performace:
- | [[ ops ]] OP/s
- |
-
-
-
-
-
-
-
-
-
-
Server Groups
-
-
-
-
-
-
-
-
-
-
-
group_[[ group.id ]]
-
-
-
-
-
-
-
-
-
-
- Addr
- | Type
- | Mem Used
- | Keys
- |
- |
-
- [[ server.addr ]]
- | [[ server.type ]]
- | [[ serverInfo.used_memory_human ]] / [[ serverInfo.maxmemory / (1024 * 1024 *
- 1024.0) ]] GB
- | [[ serverInfo.db0 ]]
- |
-
- |
-
-
-
-
-
-
-
-
-
-
Migrate Status
-
-
-
-
-
-
-
-
-
-
Migrate Task
- Info
-
-
- Migrate Slot
- | New Group
- | Create At
- | Status
- | Percent
- |
-
- slot_[[ task.slot_id ]]
- | group_[[ task.new_group ]]
- | [[ task.create_at * 1000| date:'yyyy-MM-dd HH:mm:ss Z']]
- | [[ task.status]]
- | [[ task.percent ]] %
- |
-
Migrating Slot Info
-
-
- Slot Id
- | Current Owner Group
- | Migrate From
- | Migrate To
- | Remain Keys
- |
-
- slot_[[ slot.id ]]
- | group_[[ slot.group_id ]]
- | [[slot.state.migrate_status.from ]]
- | [[slot.state.migrate_status.to ]]
- | [[ slotInfo.keys ]]
- |
-
-
-
-
-
-
-
Proxy Status
-
-
-
-
-
-
- Proxy Name
- | Proxy Addr
- | Proxy DebugVars Addr
- | Proxy Status
- |
- |
- [[proxy.id]]
- | [[proxy.addr]]
- | [[proxy.debug_var_addr]]
- | [[proxy.state]]
- [[proxy.state]]
- |
-
-
- |
-
No proxies
-
-
-
-
-
diff --git a/gops/views/index.tpl b/gops/views/index.tpl
index 99e04de..5c80a3f 100644
--- a/gops/views/index.tpl
+++ b/gops/views/index.tpl
@@ -30,35 +30,36 @@
-
@@ -66,10 +67,10 @@
-
没有可用的store...
+
no free store...
@@ -100,20 +101,20 @@
@@ -122,29 +123,31 @@
-
-
+
+
{{rack.name}}
- Store |
- Ip |
- 操作 |
+ Store |
+ Ip |
+ Volumes |
+ Op |
-
+
{{store.id}} |
{{store.ip}} |
+ {{volumeId}}, |
- |
@@ -155,9 +158,9 @@
-
分组信息
-
- 添加分组
+ Groups View
+
+ Add Group
@@ -168,32 +171,34 @@
-
-
+
+
group_{{ group.id }}
- 添加卷
+ Add Volume
- Store |
- Ip |
- 操作 |
+ Store |
+ Ip |
+ Volumes |
+ Op |
-
+
{{store.id}} |
{{store.ip}} |
+ {{volumeId}}, |
-
- 初始化卷
+
+ Init Volume
- 状态
+ Stat
|