stream releases when listing

pull/3782/head
fibonacci1729 8 years ago
parent d32a6ef63b
commit 2dd9b34d28

@ -148,7 +148,7 @@ func (l *listCmd) run() error {
return prettyError(err) return prettyError(err)
} }
if len(res.Releases) == 0 { if len(res.GetReleases()) == 0 {
return nil return nil
} }
@ -239,12 +239,16 @@ func formatList(rels []*release.Release, colWidth uint) string {
table.MaxColWidth = colWidth table.MaxColWidth = colWidth
table.AddRow("NAME", "REVISION", "UPDATED", "STATUS", "CHART", "NAMESPACE") table.AddRow("NAME", "REVISION", "UPDATED", "STATUS", "CHART", "NAMESPACE")
for _, r := range rels { for _, r := range rels {
c := fmt.Sprintf("%s-%s", r.Chart.Metadata.Name, r.Chart.Metadata.Version) md := r.GetChart().GetMetadata()
t := timeconv.String(r.Info.LastDeployed) c := fmt.Sprintf("%s-%s", md.GetName(), md.GetVersion())
s := r.Info.Status.Code.String() t := "-"
v := r.Version if tspb := r.GetInfo().GetLastDeployed(); tspb != nil {
n := r.Namespace t = timeconv.String(tspb)
table.AddRow(r.Name, v, t, s, c, n) }
s := r.GetInfo().GetStatus().GetCode().String()
v := r.GetVersion()
n := r.GetNamespace()
table.AddRow(r.GetName(), v, t, s, c, n)
} }
return table.String() return table.String()
} }

@ -346,8 +346,22 @@ func (h *Client) list(ctx context.Context, req *rls.ListReleasesRequest) (*rls.L
if err != nil { if err != nil {
return nil, err return nil, err
} }
var resp *rls.ListReleasesResponse
return s.Recv() for {
r, err := s.Recv()
if err == io.EOF {
break
}
if err != nil {
return nil, err
}
if resp == nil {
resp = r
continue
}
resp.Releases = append(resp.Releases, r.GetReleases()[0])
}
return resp, nil
} }
// Executes tiller.InstallRelease RPC. // Executes tiller.InstallRelease RPC.

@ -108,13 +108,18 @@ func (s *ReleaseServer) ListReleases(req *services.ListReleasesRequest, stream s
l = int64(len(rels)) l = int64(len(rels))
} }
for i := 0; i < min(len(rels), int(req.Limit)); i++ {
res := &services.ListReleasesResponse{ res := &services.ListReleasesResponse{
Next: next, Next: next,
Count: l, Count: l,
Total: total, Total: total,
Releases: rels, Releases: []*release.Release{rels[i]},
} }
return stream.Send(res) if err := stream.Send(res); err != nil {
return err
}
}
return nil
} }
func filterByNamespace(namespace string, rels []*release.Release) ([]*release.Release, error) { func filterByNamespace(namespace string, rels []*release.Release) ([]*release.Release, error) {

Loading…
Cancel
Save