From 5df70268246ab399568a4ecadf573d0ed9d28242 Mon Sep 17 00:00:00 2001 From: chenmin1992 <781022537@qq.com> Date: Wed, 12 Jun 2019 13:51:05 +0800 Subject: [PATCH 1/2] remove my own topom --- pkg/models/store.go | 13 +++++++++++++ pkg/models/topom.go | 8 ++++++++ pkg/topom/topom.go | 2 +- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/pkg/models/store.go b/pkg/models/store.go index bfb5f7f86..560d5789a 100644 --- a/pkg/models/store.go +++ b/pkg/models/store.go @@ -123,6 +123,19 @@ func (s *Store) Release() error { return s.client.Delete(s.LockPath()) } +func (s *Store) ReleaseByToken(token string) error { + if b, err := s.client.Read(s.LockPath(),false); err != nil { + return err + } else if b != nil { + if t, err := Decode(b); err != nil { + return err + } else if t.Token == token { + return s.Release() + } + } + return nil +} + func (s *Store) LoadTopom(must bool) (*Topom, error) { return LoadTopom(s.client, s.product, must) } diff --git a/pkg/models/topom.go b/pkg/models/topom.go index 746141fba..63aa1c8d5 100644 --- a/pkg/models/topom.go +++ b/pkg/models/topom.go @@ -18,3 +18,11 @@ type Topom struct { func (t *Topom) Encode() []byte { return jsonEncode(t) } + +func Decode(b []byte) (*Topom, error) { + s := &Topom{} + if err := jsonDecode(s, b); err != nil { + return nil,err + } + return s,nil +} diff --git a/pkg/topom/topom.go b/pkg/topom/topom.go index 027fe5fea..fb4949b2f 100644 --- a/pkg/topom/topom.go +++ b/pkg/topom/topom.go @@ -168,7 +168,7 @@ func (s *Topom) Close() error { defer s.store.Close() if s.online { - if err := s.store.Release(); err != nil { + if err := s.store.ReleaseByToken(s.model.Token); err != nil { log.ErrorErrorf(err, "store: release lock of %s failed", s.config.ProductName) return errors.Errorf("store: release lock of %s failed", s.config.ProductName) } From 46e583f9d488bfa026db7efd9883c533c4fc431f Mon Sep 17 00:00:00 2001 From: chenmin1992 <781022537@qq.com> Date: Wed, 12 Jun 2019 14:08:45 +0800 Subject: [PATCH 2/2] go fmt --- pkg/models/store.go | 2 +- pkg/models/topom.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/models/store.go b/pkg/models/store.go index 560d5789a..026927a5c 100644 --- a/pkg/models/store.go +++ b/pkg/models/store.go @@ -124,7 +124,7 @@ func (s *Store) Release() error { } func (s *Store) ReleaseByToken(token string) error { - if b, err := s.client.Read(s.LockPath(),false); err != nil { + if b, err := s.client.Read(s.LockPath(), false); err != nil { return err } else if b != nil { if t, err := Decode(b); err != nil { diff --git a/pkg/models/topom.go b/pkg/models/topom.go index 63aa1c8d5..0a5bd9606 100644 --- a/pkg/models/topom.go +++ b/pkg/models/topom.go @@ -22,7 +22,7 @@ func (t *Topom) Encode() []byte { func Decode(b []byte) (*Topom, error) { s := &Topom{} if err := jsonDecode(s, b); err != nil { - return nil,err + return nil, err } - return s,nil + return s, nil }