diff --git a/pkg/helm/client.go b/pkg/helm/client.go index f0bcd1456..093749c2d 100644 --- a/pkg/helm/client.go +++ b/pkg/helm/client.go @@ -18,6 +18,7 @@ package helm // import "k8s.io/helm/pkg/helm" import ( "fmt" + "github.com/golang/protobuf/ptypes" "golang.org/x/net/context" "google.golang.org/grpc" "gopkg.in/square/go-jose.v1/json" @@ -138,7 +139,7 @@ func (h *Client) DeleteRelease(rlsName string, namespace string, opts ...DeleteO } // UpdateRelease updates a release to a new/different chart -func (h *Client) UpdateRelease(rlsName string, chstr string,namespace string, opts ...UpdateOption) (*rls.UpdateReleaseResponse, error) { +func (h *Client) UpdateRelease(rlsName string, chstr string, namespace string, opts ...UpdateOption) (*rls.UpdateReleaseResponse, error) { // load the chart to update chart, err := chartutil.Load(chstr) if err != nil { @@ -182,7 +183,7 @@ func (h *Client) GetVersion(opts ...VersionOption) (*rls.GetVersionResponse, err } // RollbackRelease rolls back a release to the previous version -func (h *Client) RollbackRelease(rlsName string,namespace string, opts ...RollbackOption) (*rls.RollbackReleaseResponse, error) { +func (h *Client) RollbackRelease(rlsName string, namespace string, opts ...RollbackOption) (*rls.RollbackReleaseResponse, error) { for _, opt := range opts { opt(&h.opts) } @@ -300,6 +301,16 @@ func (h *Client) install(ctx context.Context, req *rls.InstallReleaseRequest) (* resp.Release.Manifest = release.Spec.Manifest resp.Release.Info = new(rs.Info) resp.Release.Info.Status = release.Status.Status + firstDeployed, err := ptypes.TimestampProto(release.Status.FirstDeployed.Time) + if err != nil { + return resp, err + } + resp.Release.Info.FirstDeployed = firstDeployed + lastDeployed, err := ptypes.TimestampProto(release.Status.LastDeployed.Time) + if err != nil { + return resp, err + } + resp.Release.Info.FirstDeployed = lastDeployed return resp, nil } @@ -325,7 +336,7 @@ func (h *Client) delete(ctx context.Context, namespace string, req *rls.Uninstal } // Executes tiller.UpdateRelease RPC. -func (h *Client) update(ctx context.Context,namespace string, req *rls.UpdateReleaseRequest) (*rls.UpdateReleaseResponse, error) { +func (h *Client) update(ctx context.Context, namespace string, req *rls.UpdateReleaseRequest) (*rls.UpdateReleaseResponse, error) { /* c, err := grpc.Dial(h.opts.host, grpc.WithInsecure()) if err != nil { return nil, err @@ -348,7 +359,7 @@ func (h *Client) update(ctx context.Context,namespace string, req *rls.UpdateRel release.Spec.Recreate = req.Recreate release.Spec.Timeout = req.Timeout release.Spec.Chart.Inline = req.Chart - release.Spec.Version = release.Spec.Version + release.Spec.Version = release.Spec.Version + 1 // update the release updatedRelease := new(hapi.Release) err = client.RESTClient().Put().Namespace(namespace).Resource("releases").Name(release.Name).Body(release).Do().Into(updatedRelease) @@ -439,9 +450,21 @@ func (h *Client) status(ctx context.Context, namespace string, req *rls.GetRelea resp.Namespace = release.Namespace resp.Info = new(rs.Info) resp.Info.Status = releaseVersion.Status.Status - /* *resp.Info.FirstDeployed = releaseVersion.Status.FirstDeployed //TODO - *resp.Info.LastDeployed = releaseVersion.Status.LastDeployed - *resp.Info.Deleted = releaseVersion.Status.Deleted*/ + f, err := ptypes.TimestampProto(releaseVersion.Status.FirstDeployed.Time) + if err != nil { + return resp, err + } + resp.Info.FirstDeployed = f + l, err := ptypes.TimestampProto(releaseVersion.Status.LastDeployed.Time) + if err != nil { + return resp, err + } + resp.Info.LastDeployed = l + d, err := ptypes.TimestampProto(releaseVersion.Status.LastDeployed.Time) + if err != nil { + return resp, err + } + resp.Info.Deleted = d return resp, nil } @@ -552,7 +575,7 @@ func makeEventForRollBack(req *rls.RollbackReleaseRequest) (*api.Event, error) { } event := &api.Event{ InvolvedObject: api.ObjectReference{ - Kind: "release", + Kind: "release", }, Reason: "releaseRollback", Message: string(message),