From dcfd1a4284177ea6c36767432384512562f6d621 Mon Sep 17 00:00:00 2001 From: Matt Butcher Date: Wed, 20 Apr 2016 13:02:49 -0600 Subject: [PATCH] fix(storage): use new HAPI for storage --- cmd/tiller/environment/environment.go | 14 +++++++------- cmd/tiller/environment/environment_test.go | 22 +++++++++++----------- cmd/tiller/releases_server.go | 4 ++++ pkg/storage/memory.go | 22 +++++++++++----------- pkg/storage/memory_test.go | 10 +++++----- 5 files changed, 38 insertions(+), 34 deletions(-) diff --git a/cmd/tiller/environment/environment.go b/cmd/tiller/environment/environment.go index b8a38c0ad..e8949b1cd 100644 --- a/cmd/tiller/environment/environment.go +++ b/cmd/tiller/environment/environment.go @@ -2,8 +2,8 @@ package environment import ( "github.com/deis/tiller/pkg/engine" - "github.com/deis/tiller/pkg/hapi" "github.com/deis/tiller/pkg/proto/hapi/chart" + "github.com/deis/tiller/pkg/proto/hapi/release" "github.com/deis/tiller/pkg/storage" ) @@ -65,14 +65,14 @@ type ReleaseStorage interface { // If a release with the same name exists, this returns an error. // // It may return other errors in cases where it cannot write to storage. - Create(*hapi.Release) error + Create(*release.Release) error // Read takes a name and returns a release that has that name. // // It will only return releases that are not deleted and not superseded. // // It will return an error if no relevant release can be found, or if storage // is not properly functioning. - Read(name string) (*hapi.Release, error) + Read(name string) (*release.Release, error) // Update looks for a release with the same name and updates it with the // present release contents. @@ -82,24 +82,24 @@ type ReleaseStorage interface { // // It will return an error if a previous release is not found. It may also // return an error if the storage backend encounters an error. - Update(*hapi.Release) error + Update(*release.Release) error // Delete marks a Release as deleted. // // It returns the deleted record. If the record is not found or if the // underlying storage encounters an error, this will return an error. - Delete(name string) (*hapi.Release, error) + Delete(name string) (*release.Release, error) // List lists all active (non-deleted, non-superseded) releases. // // To get deleted or superseded releases, use Query. - List() ([]*hapi.Release, error) + List() ([]*release.Release, error) // Query takes a map of labels and returns any releases that match. // // Query will search all releases, including deleted and superseded ones. // The provided map will be used to filter results. - Query(map[string]string) ([]*hapi.Release, error) + Query(map[string]string) ([]*release.Release, error) } // KubeClient represents a client capable of communicating with the Kubernetes API. diff --git a/cmd/tiller/environment/environment_test.go b/cmd/tiller/environment/environment_test.go index 2ab7d7f2d..5cfbf22ae 100644 --- a/cmd/tiller/environment/environment_test.go +++ b/cmd/tiller/environment/environment_test.go @@ -3,8 +3,8 @@ package environment import ( "testing" - "github.com/deis/tiller/pkg/hapi" "github.com/deis/tiller/pkg/proto/hapi/chart" + "github.com/deis/tiller/pkg/proto/hapi/release" ) type mockEngine struct { @@ -16,33 +16,33 @@ func (e *mockEngine) Render(chrt *chart.Chart, v *chart.Config) (map[string]stri } type mockReleaseStorage struct { - rel *hapi.Release + rel *release.Release } -func (r *mockReleaseStorage) Create(v *hapi.Release) error { +func (r *mockReleaseStorage) Create(v *release.Release) error { r.rel = v return nil } -func (r *mockReleaseStorage) Read(k string) (*hapi.Release, error) { +func (r *mockReleaseStorage) Read(k string) (*release.Release, error) { return r.rel, nil } -func (r *mockReleaseStorage) Update(v *hapi.Release) error { +func (r *mockReleaseStorage) Update(v *release.Release) error { r.rel = v return nil } -func (r *mockReleaseStorage) Delete(k string) (*hapi.Release, error) { +func (r *mockReleaseStorage) Delete(k string) (*release.Release, error) { return r.rel, nil } -func (r *mockReleaseStorage) List() ([]*hapi.Release, error) { - return []*hapi.Release{}, nil +func (r *mockReleaseStorage) List() ([]*release.Release, error) { + return []*release.Release{}, nil } -func (r *mockReleaseStorage) Query(labels map[string]string) ([]*hapi.Release, error) { - return []*hapi.Release{}, nil +func (r *mockReleaseStorage) Query(labels map[string]string) ([]*release.Release, error) { + return []*release.Release{}, nil } type mockKubeClient struct { @@ -76,7 +76,7 @@ func TestReleaseStorage(t *testing.T) { env := New() env.Releases = rs - release := &hapi.Release{Name: "mariner"} + release := &release.Release{Name: "mariner"} if err := env.Releases.Create(release); err != nil { t.Fatalf("failed to store release: %s", err) diff --git a/cmd/tiller/releases_server.go b/cmd/tiller/releases_server.go index 6dab276cb..25d0e97ea 100644 --- a/cmd/tiller/releases_server.go +++ b/cmd/tiller/releases_server.go @@ -69,6 +69,10 @@ func (s *releaseServer) InstallRelease(c ctx.Context, req *services.InstallRelea }, } + if err := s.env.Releases.Create(r); err != nil { + return nil, err + } + return &services.InstallReleaseResponse{Release: r}, errNotImplemented } diff --git a/pkg/storage/memory.go b/pkg/storage/memory.go index 16d5650db..55ce53366 100644 --- a/pkg/storage/memory.go +++ b/pkg/storage/memory.go @@ -3,17 +3,17 @@ package storage import ( "errors" - "github.com/deis/tiller/pkg/hapi" + "github.com/deis/tiller/pkg/proto/hapi/release" ) // Memory is an in-memory ReleaseStorage implementation. type Memory struct { - releases map[string]*hapi.Release + releases map[string]*release.Release } func NewMemory() *Memory { return &Memory{ - releases: map[string]*hapi.Release{}, + releases: map[string]*release.Release{}, } } @@ -22,7 +22,7 @@ var ErrNotFound = errors.New("release not found") // Read returns the named Release. // // If the release is not found, an ErrNotFound error is returned. -func (m *Memory) Read(k string) (*hapi.Release, error) { +func (m *Memory) Read(k string) (*release.Release, error) { v, ok := m.releases[k] if !ok { return v, ErrNotFound @@ -31,7 +31,7 @@ func (m *Memory) Read(k string) (*hapi.Release, error) { } // Create sets a release. -func (m *Memory) Create(rel *hapi.Release) error { +func (m *Memory) Create(rel *release.Release) error { m.releases[rel.Name] = rel return nil } @@ -39,7 +39,7 @@ func (m *Memory) Create(rel *hapi.Release) error { var ErrNoRelease = errors.New("no release found") // Update sets a release. -func (m *Memory) Update(rel *hapi.Release) error { +func (m *Memory) Update(rel *release.Release) error { if _, ok := m.releases[rel.Name]; !ok { return ErrNoRelease } @@ -50,7 +50,7 @@ func (m *Memory) Update(rel *hapi.Release) error { return nil } -func (m *Memory) Delete(name string) (*hapi.Release, error) { +func (m *Memory) Delete(name string) (*release.Release, error) { rel, ok := m.releases[name] if !ok { return nil, ErrNoRelease @@ -60,8 +60,8 @@ func (m *Memory) Delete(name string) (*hapi.Release, error) { } // List returns all releases -func (m *Memory) List() ([]*hapi.Release, error) { - buf := make([]*hapi.Release, len(m.releases)) +func (m *Memory) List() ([]*release.Release, error) { + buf := make([]*release.Release, len(m.releases)) i := 0 for _, v := range m.releases { buf[i] = v @@ -69,6 +69,6 @@ func (m *Memory) List() ([]*hapi.Release, error) { } return buf, nil } -func (m *Memory) Query(labels map[string]string) ([]*hapi.Release, error) { - return []*hapi.Release{}, errors.New("Cannot implement until hapi.Release is defined.") +func (m *Memory) Query(labels map[string]string) ([]*release.Release, error) { + return []*release.Release{}, errors.New("Cannot implement until release.Release is defined.") } diff --git a/pkg/storage/memory_test.go b/pkg/storage/memory_test.go index b07e664ad..d2105b928 100644 --- a/pkg/storage/memory_test.go +++ b/pkg/storage/memory_test.go @@ -3,12 +3,12 @@ package storage import ( "testing" - "github.com/deis/tiller/pkg/hapi" + "github.com/deis/tiller/pkg/proto/hapi/release" ) func TestCreate(t *testing.T) { k := "test-1" - r := &hapi.Release{Name: k} + r := &release.Release{Name: k} ms := NewMemory() if err := ms.Create(r); err != nil { @@ -22,7 +22,7 @@ func TestCreate(t *testing.T) { func TestRead(t *testing.T) { k := "test-1" - r := &hapi.Release{Name: k} + r := &release.Release{Name: k} ms := NewMemory() ms.Create(r) @@ -36,7 +36,7 @@ func TestRead(t *testing.T) { func TestUpdate(t *testing.T) { k := "test-1" - r := &hapi.Release{Name: k} + r := &release.Release{Name: k} ms := NewMemory() if err := ms.Create(r); err != nil { @@ -56,7 +56,7 @@ func TestList(t *testing.T) { rels := []string{"a", "b", "c"} for _, k := range rels { - ms.Create(&hapi.Release{Name: k}) + ms.Create(&release.Release{Name: k}) } l, err := ms.List()