fix(storage): use new HAPI for storage

pull/613/head
Matt Butcher 10 years ago
parent 50f4349512
commit dcfd1a4284

@ -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.

@ -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)

@ -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
}

@ -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.")
}

@ -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()

Loading…
Cancel
Save