aboutsummaryrefslogtreecommitdiff
path: root/go/storage
diff options
context:
space:
mode:
authoryourchanges <yourchanges@gmail.com>2015-02-12 17:32:53 +0800
committeryourchanges <yourchanges@gmail.com>2015-02-12 17:32:53 +0800
commit2adf4a108b595ec8b4503b34665591741fa4f963 (patch)
treeda968af4fa066dfd281ae0ef4e6d59d806fed10e /go/storage
parent55c40997b1cd9e33eaa841b8abf5e1678773dd1c (diff)
parenteff83a87d126faf0dd5b05876690271777f41e65 (diff)
downloadseaweedfs-2adf4a108b595ec8b4503b34665591741fa4f963.tar.xz
seaweedfs-2adf4a108b595ec8b4503b34665591741fa4f963.zip
Merge pull request #6 from chrislusf/master
merge
Diffstat (limited to 'go/storage')
-rw-r--r--go/storage/store.go14
1 files changed, 8 insertions, 6 deletions
diff --git a/go/storage/store.go b/go/storage/store.go
index 2c4434b81..d280175f2 100644
--- a/go/storage/store.go
+++ b/go/storage/store.go
@@ -11,6 +11,7 @@ import (
"github.com/chrislusf/weed-fs/go/glog"
"github.com/chrislusf/weed-fs/go/operation"
+ "github.com/chrislusf/weed-fs/go/security"
"github.com/chrislusf/weed-fs/go/util"
"github.com/golang/protobuf/proto"
)
@@ -260,7 +261,7 @@ func (s *Store) SetRack(rack string) {
func (s *Store) SetBootstrapMaster(bootstrapMaster string) {
s.masterNodes = NewMasterNodes(bootstrapMaster)
}
-func (s *Store) Join() (masterNode string, e error) {
+func (s *Store) Join() (masterNode string, secretKey security.Secret, e error) {
masterNode, e = s.masterNodes.findMaster()
if e != nil {
return
@@ -314,22 +315,23 @@ func (s *Store) Join() (masterNode string, e error) {
data, err := proto.Marshal(joinMessage)
if err != nil {
- return "", err
+ return "", "", err
}
jsonBlob, err := util.PostBytes("http://"+masterNode+"/dir/join", data)
if err != nil {
s.masterNodes.reset()
- return "", err
+ return "", "", err
}
var ret operation.JoinResult
if err := json.Unmarshal(jsonBlob, &ret); err != nil {
- return masterNode, err
+ return masterNode, "", err
}
if ret.Error != "" {
- return masterNode, errors.New(ret.Error)
+ return masterNode, "", errors.New(ret.Error)
}
s.volumeSizeLimit = ret.VolumeSizeLimit
+ secretKey = security.Secret(ret.SecretKey)
s.connected = true
return
}
@@ -353,7 +355,7 @@ func (s *Store) Write(i VolumeId, n *Needle) (size uint32, err error) {
}
if s.volumeSizeLimit < v.ContentSize()+3*uint64(size) {
glog.V(0).Infoln("volume", i, "size", v.ContentSize(), "will exceed limit", s.volumeSizeLimit)
- if _, e := s.Join(); e != nil {
+ if _, _, e := s.Join(); e != nil {
glog.V(0).Infoln("error when reporting size:", e)
}
}