From 6a81ed0bc3bb54eb03f55905ab731d2c86e26528 Mon Sep 17 00:00:00 2001 From: Adam Reese Date: Tue, 27 Sep 2016 16:58:56 -0700 Subject: [PATCH] fix(tiller): do not create releases for a dry-run --- cmd/tiller/release_server.go | 23 +++++++++++++---------- cmd/tiller/release_server_test.go | 4 ++-- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/cmd/tiller/release_server.go b/cmd/tiller/release_server.go index 6d3f140ae..d080f527c 100644 --- a/cmd/tiller/release_server.go +++ b/cmd/tiller/release_server.go @@ -174,8 +174,7 @@ func (s *releaseServer) ListReleases(req *services.ListReleasesRequest, stream s Total: total, Releases: rels, } - stream.Send(res) - return nil + return stream.Send(res) } func filterReleases(filter string, rels []*release.Release) ([]*release.Release, error) { @@ -281,8 +280,10 @@ func (s *releaseServer) UpdateRelease(c ctx.Context, req *services.UpdateRelease return nil, err } - if err := s.env.Releases.Create(updatedRelease); err != nil { - return nil, err + if !req.DryRun { + if err := s.env.Releases.Create(updatedRelease); err != nil { + return nil, err + } } return res, nil @@ -380,6 +381,9 @@ func (s *releaseServer) prepareUpdate(req *services.UpdateReleaseRequest) (*rele } func (s *releaseServer) RollbackRelease(c ctx.Context, req *services.RollbackReleaseRequest) (*services.RollbackReleaseResponse, error) { + if !checkClientVersion(c) { + return nil, errIncompatibleVersion + } currentRelease, targetRelease, err := s.prepareRollback(req) if err != nil { @@ -391,8 +395,10 @@ func (s *releaseServer) RollbackRelease(c ctx.Context, req *services.RollbackRel return nil, err } - if err := s.env.Releases.Create(targetRelease); err != nil { - return nil, err + if !req.DryRun { + if err := s.env.Releases.Create(targetRelease); err != nil { + return nil, err + } } return rel, nil @@ -438,10 +444,7 @@ func (s *releaseServer) performKubeUpdate(currentRelease, targetRelease *release kubeCli := s.env.KubeClient current := bytes.NewBufferString(currentRelease.Manifest) target := bytes.NewBufferString(targetRelease.Manifest) - if err := kubeCli.Update(targetRelease.Namespace, current, target); err != nil { - return err - } - return nil + return kubeCli.Update(targetRelease.Namespace, current, target) } // prepareRollback finds the previous release and prepares a new release object with diff --git a/cmd/tiller/release_server_test.go b/cmd/tiller/release_server_test.go index d9d988447..5f63c9abe 100644 --- a/cmd/tiller/release_server_test.go +++ b/cmd/tiller/release_server_test.go @@ -629,7 +629,7 @@ func TestUpdateReleaseNoChanges(t *testing.T) { } func TestRollbackReleaseNoHooks(t *testing.T) { - c := context.Background() + c := helm.NewContext() rs := rsFixture() rel := releaseStub() rel.Hooks = []*release.Hook{ @@ -665,7 +665,7 @@ func TestRollbackReleaseNoHooks(t *testing.T) { } func TestRollbackRelease(t *testing.T) { - c := context.Background() + c := helm.NewContext() rs := rsFixture() rel := releaseStub() rs.env.Releases.Create(rel)