Commit a8642c81 authored by Matt Butcher's avatar Matt Butcher

fix(helm,tiller): change list offset to next result

Previously, paging used the last release name of the current set to ask
for more results. Now switched to using the first name of the next set.

Not sure I like this method. It makes the user experience more
complicated.
parent 6844d3b4
......@@ -63,9 +63,9 @@ message ListReleasesRequest {
// Offset is the last release name that was seen. The next listing
// operation will start with the name after this one.
// Example: If list one returns albert, bernie, carl and we supply
// carl as the offset, the next one should begin with the next release name
// after carl (e.g. dennis).
// Example: If list one returns albert, bernie, carl, and sets 'next: dennis'.
// dennis is the offset. Supplying 'dennis' for the next request should
// cause the next batch to return a set of results starting with 'dennis'.
string offset = 2;
// SortBy is the sort field that the ListReleases server should sort data before returning.
......@@ -100,17 +100,15 @@ message ListReleasesResponse {
// Count is the expected total number of releases to be returned.
int64 count = 1;
// Offset is the last-seen release name, used to offset the next set.
string offset = 2;
// Next is the name of the next release. If this is other than an empty
// string, it means there are more results.
string next = 2;
// Total is the total number of queryable releases.
int64 total = 3;
// Releases is the list of found release objects.
repeated hapi.release.Release releases = 4;
// More indicates whether there are more objects to retrieve.
bool more = 5;
}
// GetReleaseStatusRequest is a request to get the status of a release.
......
......@@ -57,7 +57,7 @@ func init() {
f.BoolVarP(&listByDate, "date", "d", false, "sort by release date")
f.BoolVarP(&listSortDesc, "reverse", "r", false, "reverse the sort order")
f.IntVarP(&listMax, "max", "m", 256, "maximum number of releases to fetch")
f.StringVarP(&listOffset, "offset", "o", "", "the last seen release name, used to offset from start value")
f.StringVarP(&listOffset, "offset", "o", "", "the next release name in the list, used to offset from start value")
RootCommand.AddCommand(listCommand)
}
......@@ -83,6 +83,10 @@ func listCmd(cmd *cobra.Command, args []string) error {
return prettyError(err)
}
if res.Next != "" {
fmt.Printf("\tnext: %s", res.Next)
}
rels := res.Releases
if listLong {
return formatList(rels)
......
......@@ -44,7 +44,6 @@ var (
var ListDefaultLimit int64 = 512
func (s *releaseServer) ListReleases(req *services.ListReleasesRequest, stream services.ReleaseService_ListReleasesServer) error {
more := false
rels, err := s.env.Releases.List()
if err != nil {
return err
......@@ -81,7 +80,7 @@ func (s *releaseServer) ListReleases(req *services.ListReleasesRequest, stream s
i := -1
for ii, cur := range rels {
if cur.Name == req.Offset {
i = ii + 1
i = ii
}
}
if i == -1 {
......@@ -100,22 +99,18 @@ func (s *releaseServer) ListReleases(req *services.ListReleasesRequest, stream s
req.Limit = ListDefaultLimit
}
next := ""
if l > req.Limit {
more = true
next = rels[req.Limit].Name
rels = rels[0:req.Limit]
l = int64(len(rels))
}
last := ""
if l > 0 {
last = rels[l-1].Name
}
res := &services.ListReleasesResponse{
Offset: last,
Next: next,
Count: l,
Total: total,
Releases: rels,
More: more,
}
stream.Send(res)
return nil
......
......@@ -135,14 +135,13 @@ func (*ListSort) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1}
type ListReleasesResponse struct {
// Count is the expected total number of releases to be returned.
Count int64 `protobuf:"varint,1,opt,name=count" json:"count,omitempty"`
// Offset is the last-seen release name, used to offset the next set.
Offset string `protobuf:"bytes,2,opt,name=offset" json:"offset,omitempty"`
// Next is the name of the next release. If this is other than an empty
// string, it means there are more results.
Next string `protobuf:"bytes,2,opt,name=next" json:"next,omitempty"`
// Total is the total number of queryable releases.
Total int64 `protobuf:"varint,3,opt,name=total" json:"total,omitempty"`
// Releases is the list of found release objects.
Releases []*hapi_release2.Release `protobuf:"bytes,4,rep,name=releases" json:"releases,omitempty"`
// More indicates whether there are more objects to retrieve.
More bool `protobuf:"varint,5,opt,name=more" json:"more,omitempty"`
}
func (m *ListReleasesResponse) Reset() { *m = ListReleasesResponse{} }
......@@ -583,49 +582,48 @@ var _ReleaseService_serviceDesc = grpc.ServiceDesc{
}
var fileDescriptor0 = []byte{
// 689 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x9c, 0x55, 0xdd, 0x6e, 0xd3, 0x4c,
0x10, 0xad, 0x9b, 0x34, 0x3f, 0xd3, 0xaf, 0x55, 0x3a, 0x5f, 0x9a, 0x04, 0x5f, 0x20, 0xb4, 0x12,
0x50, 0x0a, 0x75, 0x20, 0xdc, 0x23, 0xa5, 0x6d, 0x54, 0x55, 0x0d, 0xa9, 0xb4, 0xa1, 0x20, 0x71,
0x41, 0xe5, 0xb6, 0x1b, 0x6a, 0xe4, 0xd8, 0xc1, 0xbb, 0xa9, 0xd4, 0x07, 0xe0, 0x41, 0x78, 0x0b,
0x1e, 0x88, 0x07, 0x61, 0xbd, 0xeb, 0xb5, 0xea, 0xd4, 0x86, 0xa8, 0x37, 0xf6, 0xae, 0xcf, 0xd9,
0x39, 0xb3, 0x67, 0x66, 0x12, 0xb0, 0xaf, 0xdd, 0x99, 0xd7, 0xe5, 0x2c, 0xba, 0xf1, 0x2e, 0x19,
0xef, 0x0a, 0xcf, 0xf7, 0x59, 0xe4, 0xcc, 0xa2, 0x50, 0x84, 0xd8, 0x8c, 0x31, 0xc7, 0x60, 0x8e,
0xc6, 0xec, 0x96, 0x3a, 0x71, 0x79, 0xed, 0x46, 0x42, 0x3f, 0x35, 0xdb, 0x6e, 0xdf, 0xfd, 0x1e,
0x06, 0x13, 0xef, 0x6b, 0x02, 0x68, 0x89, 0x88, 0xf9, 0xcc, 0xe5, 0xcc, 0xbc, 0x33, 0x87, 0x0c,
0xe6, 0x05, 0x93, 0x50, 0x03, 0xe4, 0xb7, 0x05, 0xff, 0x0f, 0x3d, 0x2e, 0xa8, 0x86, 0x38, 0x65,
0xdf, 0xe7, 0x8c, 0x0b, 0x6c, 0xc2, 0x9a, 0xef, 0x4d, 0x3d, 0xd1, 0xb1, 0x9e, 0x58, 0x3b, 0x25,
0xaa, 0x37, 0xd8, 0x82, 0x4a, 0x38, 0x99, 0x70, 0x26, 0x3a, 0xab, 0xf2, 0x73, 0x9d, 0x26, 0x3b,
0x7c, 0x07, 0x55, 0x1e, 0x46, 0xe2, 0xfc, 0xe2, 0xb6, 0x53, 0x92, 0xc0, 0x66, 0xef, 0xa9, 0x93,
0x77, 0x27, 0x27, 0x56, 0x1a, 0x4b, 0xa2, 0x13, 0x3f, 0xf6, 0x6f, 0x69, 0x85, 0xab, 0x77, 0x1c,
0x77, 0xe2, 0xf9, 0x82, 0x45, 0x9d, 0xb2, 0x8e, 0xab, 0x77, 0x78, 0x04, 0xa0, 0xe2, 0x86, 0xd1,
0x95, 0xc4, 0xd6, 0x54, 0xe8, 0x9d, 0x25, 0x42, 0x9f, 0xc6, 0x7c, 0x5a, 0xe7, 0x66, 0x49, 0xbe,
0x40, 0xcd, 0x10, 0x48, 0x0f, 0x2a, 0x5a, 0x1e, 0xd7, 0xa1, 0x7a, 0x36, 0x3a, 0x19, 0x9d, 0x7e,
0x1a, 0x35, 0x56, 0xb0, 0x06, 0xe5, 0x51, 0xff, 0xfd, 0xa0, 0x61, 0xe1, 0x16, 0x6c, 0x0c, 0xfb,
0xe3, 0x0f, 0xe7, 0x74, 0x30, 0x1c, 0xf4, 0xc7, 0x83, 0xc3, 0xc6, 0x2a, 0x79, 0x0c, 0xf5, 0x34,
0x2e, 0x56, 0xa1, 0xd4, 0x1f, 0x1f, 0xe8, 0x23, 0x87, 0x03, 0xb9, 0xb2, 0xc8, 0x4f, 0x0b, 0x9a,
0x59, 0x1b, 0xf9, 0x2c, 0x0c, 0x38, 0x8b, 0x7d, 0xbc, 0x0c, 0xe7, 0x41, 0xea, 0xa3, 0xda, 0x14,
0xfa, 0x28, 0xd9, 0x22, 0x14, 0xae, 0xaf, 0x5c, 0x94, 0x6c, 0xb5, 0xc1, 0x37, 0x50, 0x4b, 0x2a,
0xc7, 0xa5, 0x3f, 0xa5, 0x9d, 0xf5, 0xde, 0xb6, 0xf6, 0xc0, 0xd4, 0x38, 0x51, 0xa5, 0x29, 0x0d,
0x11, 0xca, 0xd3, 0x30, 0x62, 0xca, 0xb2, 0x1a, 0x55, 0x6b, 0xb2, 0x07, 0xed, 0x23, 0x66, 0x32,
0x1c, 0x0b, 0x57, 0xcc, 0xd3, 0x6a, 0x4b, 0x7a, 0xe0, 0x4e, 0x99, 0x4a, 0xb2, 0x4e, 0xd5, 0x9a,
0x7c, 0x84, 0xce, 0x7d, 0x7a, 0x72, 0xab, 0x1c, 0x3e, 0x3e, 0x83, 0x72, 0xdc, 0x57, 0xea, 0x46,
0xeb, 0x3d, 0xcc, 0x66, 0x78, 0x2c, 0x11, 0xaa, 0x70, 0xe2, 0xdc, 0x8d, 0x7b, 0x10, 0x06, 0x82,
0x05, 0xe2, 0x6f, 0x79, 0x0c, 0xe1, 0x51, 0x0e, 0x3f, 0x49, 0xa4, 0x0b, 0xd5, 0x44, 0x42, 0x9d,
0x29, 0x74, 0xc6, 0xb0, 0x48, 0x0b, 0x9a, 0x67, 0xb3, 0x2b, 0x57, 0x30, 0x83, 0x68, 0x65, 0xd2,
0x86, 0xed, 0x85, 0xef, 0x5a, 0x81, 0xfc, 0xb0, 0x60, 0xfb, 0x38, 0xe0, 0xb2, 0x0e, 0x7e, 0xf6,
0x08, 0x3e, 0x97, 0xa5, 0x8d, 0xa7, 0x30, 0x51, 0xde, 0xd2, 0xca, 0x7a, 0x54, 0x0f, 0xe2, 0x27,
0xd5, 0x38, 0xee, 0x42, 0xe5, 0xc6, 0xf5, 0xe5, 0x99, 0xac, 0x37, 0x09, 0x53, 0x8d, 0x30, 0x4d,
0x18, 0xd8, 0x86, 0xea, 0x55, 0x74, 0x7b, 0x1e, 0xcd, 0x03, 0xd5, 0x03, 0x35, 0x5a, 0x91, 0x5b,
0x3a, 0x0f, 0xc8, 0x31, 0xb4, 0x16, 0xd3, 0x78, 0xa8, 0x07, 0xb2, 0x11, 0xce, 0x02, 0x2f, 0xf7,
0x4e, 0x79, 0x05, 0x38, 0x81, 0xce, 0x7d, 0xfa, 0x03, 0xb5, 0x7b, 0xbf, 0xd6, 0x60, 0xd3, 0xf4,
0x94, 0x9e, 0x60, 0xf4, 0xe0, 0xbf, 0xbb, 0xa3, 0x83, 0x2f, 0x8a, 0x07, 0x7c, 0xe1, 0x57, 0xca,
0xde, 0x5d, 0x86, 0x9a, 0x14, 0x72, 0xe5, 0xb5, 0x85, 0x1c, 0x1a, 0x8b, 0x3d, 0x8d, 0x7b, 0xf9,
0x31, 0x0a, 0x46, 0xc5, 0x76, 0x96, 0xa5, 0x1b, 0x59, 0xbc, 0x81, 0xad, 0x7b, 0x0d, 0x8c, 0xff,
0x0c, 0x93, 0x9d, 0x0c, 0xbb, 0xbb, 0x34, 0x3f, 0xd5, 0xfd, 0x06, 0x1b, 0x99, 0x96, 0xc6, 0x02,
0xb7, 0xf2, 0xe6, 0xc1, 0x7e, 0xb9, 0x14, 0x37, 0xd5, 0x9a, 0xc2, 0x66, 0xb6, 0x3b, 0xb1, 0x20,
0x40, 0xee, 0x28, 0xd9, 0xaf, 0x96, 0x23, 0xa7, 0x72, 0xb2, 0x8e, 0x8b, 0x2d, 0x59, 0x54, 0xc7,
0x82, 0x4e, 0x2f, 0xaa, 0x63, 0x51, 0xa7, 0x93, 0x95, 0x7d, 0xf8, 0x5c, 0x33, 0xec, 0x8b, 0x8a,
0xfa, 0xf7, 0x7c, 0xfb, 0x27, 0x00, 0x00, 0xff, 0xff, 0x81, 0xdd, 0x53, 0x62, 0xd7, 0x07, 0x00,
0x00,
// 682 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x9c, 0x55, 0xdd, 0x4e, 0x13, 0x41,
0x14, 0x66, 0x69, 0x69, 0xcb, 0x41, 0x48, 0x39, 0x96, 0xb6, 0xee, 0x85, 0x31, 0x93, 0xa8, 0x88,
0xb2, 0xd5, 0x7a, 0x6f, 0x52, 0xa0, 0x21, 0x84, 0x5a, 0x92, 0xa9, 0x68, 0xe2, 0x85, 0x64, 0x81,
0xa9, 0xac, 0x59, 0x76, 0xeb, 0xce, 0x94, 0xc8, 0x03, 0x78, 0xe1, 0x1b, 0xf9, 0x40, 0x3e, 0x88,
0xb3, 0x33, 0x3b, 0x1b, 0xb6, 0xdd, 0xd5, 0x86, 0x9b, 0xdd, 0x39, 0xfb, 0x7d, 0xe7, 0x7c, 0x67,
0xce, 0x4f, 0x0b, 0xf6, 0x95, 0x3b, 0xf1, 0x3a, 0x9c, 0x45, 0x37, 0xde, 0x05, 0xe3, 0x1d, 0xe1,
0xf9, 0x3e, 0x8b, 0x9c, 0x49, 0x14, 0x8a, 0x10, 0x1b, 0x31, 0xe6, 0x18, 0xcc, 0xd1, 0x98, 0xdd,
0x54, 0x1e, 0x17, 0x57, 0x6e, 0x24, 0xf4, 0x53, 0xb3, 0xed, 0xd6, 0xdd, 0xef, 0x61, 0x30, 0xf6,
0xbe, 0x26, 0x80, 0x96, 0x88, 0x98, 0xcf, 0x5c, 0xce, 0xcc, 0x3b, 0xe3, 0x64, 0x30, 0x2f, 0x18,
0x87, 0x1a, 0x20, 0x7f, 0x2c, 0x78, 0x38, 0xf0, 0xb8, 0xa0, 0x1a, 0xe2, 0x94, 0x7d, 0x9f, 0x32,
0x2e, 0xb0, 0x01, 0x2b, 0xbe, 0x77, 0xed, 0x89, 0xb6, 0xf5, 0xc4, 0xda, 0x2e, 0x51, 0x6d, 0x60,
0x13, 0x2a, 0xe1, 0x78, 0xcc, 0x99, 0x68, 0x2f, 0xcb, 0xcf, 0xab, 0x34, 0xb1, 0xf0, 0x1d, 0x54,
0x79, 0x18, 0x89, 0xb3, 0xf3, 0xdb, 0x76, 0x49, 0x02, 0x1b, 0xdd, 0xa7, 0x4e, 0xde, 0x9d, 0x9c,
0x58, 0x69, 0x24, 0x89, 0x4e, 0xfc, 0xd8, 0xbb, 0xa5, 0x15, 0xae, 0xde, 0x71, 0xdc, 0xb1, 0xe7,
0x0b, 0x16, 0xb5, 0xcb, 0x3a, 0xae, 0xb6, 0xf0, 0x10, 0x40, 0xc5, 0x0d, 0xa3, 0x4b, 0x89, 0xad,
0xa8, 0xd0, 0xdb, 0x0b, 0x84, 0x3e, 0x89, 0xf9, 0x74, 0x95, 0x9b, 0x23, 0xf9, 0x02, 0x35, 0x43,
0x20, 0x5d, 0xa8, 0x68, 0x79, 0x5c, 0x83, 0xea, 0xe9, 0xf0, 0x78, 0x78, 0xf2, 0x69, 0x58, 0x5f,
0xc2, 0x1a, 0x94, 0x87, 0xbd, 0xf7, 0xfd, 0xba, 0x85, 0x9b, 0xb0, 0x3e, 0xe8, 0x8d, 0x3e, 0x9c,
0xd1, 0xfe, 0xa0, 0xdf, 0x1b, 0xf5, 0x0f, 0xea, 0xcb, 0xe4, 0x31, 0xac, 0xa6, 0x71, 0xb1, 0x0a,
0xa5, 0xde, 0x68, 0x5f, 0xbb, 0x1c, 0xf4, 0xe5, 0xc9, 0x22, 0xbf, 0x2c, 0x68, 0x64, 0xcb, 0xc8,
0x27, 0x61, 0xc0, 0x59, 0x5c, 0xc7, 0x8b, 0x70, 0x1a, 0xa4, 0x75, 0x54, 0x06, 0x22, 0x94, 0x03,
0xf6, 0xc3, 0x54, 0x51, 0x9d, 0x63, 0xa6, 0x08, 0x85, 0xeb, 0xab, 0x0a, 0x4a, 0xa6, 0x32, 0xf0,
0x0d, 0xd4, 0x92, 0xae, 0x71, 0x59, 0x9b, 0xd2, 0xf6, 0x5a, 0x77, 0x4b, 0xdf, 0xdf, 0xf4, 0x37,
0x51, 0xa4, 0x29, 0x8d, 0xec, 0x42, 0xeb, 0x90, 0x99, 0x4c, 0x46, 0xc2, 0x15, 0xd3, 0xb4, 0xab,
0xb1, 0xae, 0x7b, 0xcd, 0x54, 0x32, 0xb1, 0xae, 0x3c, 0x93, 0x8f, 0xd0, 0x9e, 0xa7, 0x27, 0xd9,
0xe7, 0xf0, 0xf1, 0x19, 0x94, 0xe3, 0xf9, 0x51, 0xb9, 0xaf, 0x75, 0x31, 0x9b, 0xcd, 0x91, 0x44,
0xa8, 0xc2, 0x89, 0x73, 0x37, 0xee, 0x7e, 0x18, 0x08, 0x16, 0x88, 0x7f, 0xe5, 0x31, 0x80, 0x47,
0x39, 0xfc, 0x24, 0x91, 0x0e, 0x54, 0x13, 0x09, 0xe5, 0x53, 0x58, 0x05, 0xc3, 0x22, 0x4d, 0x68,
0x9c, 0x4e, 0x2e, 0x5d, 0xc1, 0x0c, 0xa2, 0x95, 0x49, 0x0b, 0xb6, 0x66, 0xbe, 0x6b, 0x05, 0xf2,
0xd3, 0x82, 0xad, 0xa3, 0x80, 0xcb, 0x9a, 0xfb, 0x59, 0x17, 0x7c, 0x2e, 0x5b, 0x18, 0x6f, 0x5b,
0xa2, 0xbc, 0xa9, 0x95, 0xf5, 0x4a, 0xee, 0xc7, 0x4f, 0xaa, 0x71, 0xdc, 0x81, 0xca, 0x8d, 0xeb,
0x4b, 0x9f, 0x6c, 0x6d, 0x12, 0xa6, 0x5a, 0x55, 0x9a, 0x30, 0xb0, 0x05, 0xd5, 0xcb, 0xe8, 0xf6,
0x2c, 0x9a, 0x06, 0xaa, 0xdf, 0x35, 0x5a, 0x91, 0x26, 0x9d, 0x06, 0xe4, 0x08, 0x9a, 0xb3, 0x69,
0xdc, 0xb7, 0x06, 0x72, 0x10, 0x4e, 0x03, 0x2f, 0xf7, 0x4e, 0x79, 0x0d, 0x38, 0x86, 0xf6, 0x3c,
0xfd, 0x9e, 0xda, 0xdd, 0xdf, 0x2b, 0xb0, 0x61, 0x66, 0x4a, 0x6f, 0x2a, 0x7a, 0xf0, 0xe0, 0xee,
0x8a, 0xe0, 0x8b, 0xe2, 0x45, 0x9e, 0xf9, 0x35, 0xb2, 0x77, 0x16, 0xa1, 0x26, 0x8d, 0x5c, 0x7a,
0x6d, 0x21, 0x87, 0xfa, 0xec, 0x4c, 0xe3, 0x6e, 0x7e, 0x8c, 0x82, 0x55, 0xb1, 0x9d, 0x45, 0xe9,
0x46, 0x16, 0x6f, 0x60, 0x73, 0x6e, 0x80, 0xf1, 0xbf, 0x61, 0xb2, 0x9b, 0x61, 0x77, 0x16, 0xe6,
0xa7, 0xba, 0xdf, 0x60, 0x3d, 0x33, 0xd2, 0x58, 0x50, 0xad, 0xbc, 0x7d, 0xb0, 0x5f, 0x2e, 0xc4,
0x4d, 0xb5, 0xae, 0x61, 0x23, 0x3b, 0x9d, 0x58, 0x10, 0x20, 0x77, 0x95, 0xec, 0x57, 0x8b, 0x91,
0x53, 0x39, 0xd9, 0xc7, 0xd9, 0x91, 0x2c, 0xea, 0x63, 0xc1, 0xa4, 0x17, 0xf5, 0xb1, 0x68, 0xd2,
0xc9, 0xd2, 0x1e, 0x7c, 0xae, 0x19, 0xf6, 0x79, 0x45, 0xfd, 0x4b, 0xbe, 0xfd, 0x1b, 0x00, 0x00,
0xff, 0xff, 0x9a, 0xaa, 0x47, 0x7a, 0xbf, 0x07, 0x00, 0x00,
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment