Merge lp:~sergiusens/snapweb/queryPackageNames into lp:~stephen-stewart/snapweb/disabled-install-buttons-for-oem-types

Proposed by Sergio Schvezov
Status: Superseded
Proposed branch: lp:~sergiusens/snapweb/queryPackageNames
Merge into: lp:~stephen-stewart/snapweb/disabled-install-buttons-for-oem-types
Diff against target: 111 lines (+30/-15)
2 files modified
snappy/converge.go (+27/-5)
snappy/handlers.go (+3/-10)
To merge this branch: bzr merge lp:~sergiusens/snapweb/queryPackageNames
Reviewer Review Type Date Requested Status
Stephen Stewart Pending
Review via email: mp+258639@code.launchpad.net

This proposal has been superseded by a proposal from 2015-05-08.

Commit message

Add support to query package names (with polish).

To post a comment you must log in.
139. By Sergio Schvezov

Don't do useless operations when we have the availability of someone else doing it for us.

Unmerged revisions

139. By Sergio Schvezov

Don't do useless operations when we have the availability of someone else doing it for us.

138. By Sergio Schvezov

Adding package query support

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'snappy/converge.go'
--- snappy/converge.go 2015-05-07 16:29:23 +0000
+++ snappy/converge.go 2015-05-08 14:57:49 +0000
@@ -54,8 +54,9 @@
54}54}
5555
56type listFilter struct {56type listFilter struct {
57 Types []string57 types []string
58 InstalledOnly bool58 installedOnly bool
59 query string
59}60}
6061
61// for easier stubbing during testing62// for easier stubbing during testing
@@ -97,19 +98,34 @@
9798
98 typeFilter := func(string) bool { return true }99 typeFilter := func(string) bool { return true }
99100
100 if len(filter.Types) != 0 {101 if len(filter.types) != 0 {
101 regex, err := regexp.Compile("^(?:" + strings.Join(filter.Types, "|") + ")")102 regex, err := regexp.Compile("^(?:" + strings.Join(filter.types, "|") + ")")
102 if err != nil {103 if err != nil {
103 return nil, err104 return nil, err
104 }105 }
105 typeFilter = regex.MatchString106 typeFilter = regex.MatchString
106 }107 }
107108
109 queryFilter := func(string) bool { return true }
110
111 if filter.query != "" {
112 regex, err := regexp.Compile("^(?:" + filter.query + ")")
113 if err != nil {
114 return nil, err
115 }
116 queryFilter = regex.MatchString
117 }
118
108 installedSnapQs := make([]snapPkg, 0, len(installedSnaps))119 installedSnapQs := make([]snapPkg, 0, len(installedSnaps))
109 for i := range installedSnaps {120 for i := range installedSnaps {
110 if !typeFilter(string(installedSnaps[i].Type())) {121 if !typeFilter(string(installedSnaps[i].Type())) {
111 continue122 continue
112 }123 }
124
125 if !queryFilter(installedSnaps[i].Name()) {
126 continue
127 }
128
113 installedSnapQs = append(installedSnapQs, h.snapQueryToPayload(installedSnaps[i]))129 installedSnapQs = append(installedSnapQs, h.snapQueryToPayload(installedSnaps[i]))
114 }130 }
115131
@@ -126,18 +142,24 @@
126 if !typeFilter(string(alias.Type())) {142 if !typeFilter(string(alias.Type())) {
127 continue143 continue
128 }144 }
145 if !queryFilter(alias.Name()) {
146 continue
147 }
129 remoteSnapQs = append(remoteSnapQs, h.snapQueryToPayload(alias))148 remoteSnapQs = append(remoteSnapQs, h.snapQueryToPayload(alias))
130 } else {149 } else {
131 for _, part := range remote.Parts {150 for _, part := range remote.Parts {
132 if !typeFilter(string(part.Type())) {151 if !typeFilter(string(part.Type())) {
133 continue152 continue
134 }153 }
154 if !queryFilter(part.Name()) {
155 continue
156 }
135 remoteSnapQs = append(remoteSnapQs, h.snapQueryToPayload(part))157 remoteSnapQs = append(remoteSnapQs, h.snapQueryToPayload(part))
136 }158 }
137 }159 }
138 }160 }
139161
140 return mergeSnaps(installedSnapQs, remoteSnapQs, filter.InstalledOnly), nil162 return mergeSnaps(installedSnapQs, remoteSnapQs, filter.installedOnly), nil
141}163}
142164
143func (h *Handler) doRemovePackage(progress *webprogress.WebProgress, ID string) {165func (h *Handler) doRemovePackage(progress *webprogress.WebProgress, ID string) {
144166
=== modified file 'snappy/handlers.go'
--- snappy/handlers.go 2015-05-07 16:29:23 +0000
+++ snappy/handlers.go 2015-05-08 14:57:49 +0000
@@ -20,7 +20,6 @@
20import (20import (
21 "encoding/json"21 "encoding/json"
22 "fmt"22 "fmt"
23 "io"
24 "log"23 "log"
25 "net/http"24 "net/http"
26 "strings"25 "strings"
@@ -54,17 +53,11 @@
54func (h *Handler) getAll(w http.ResponseWriter, r *http.Request) {53func (h *Handler) getAll(w http.ResponseWriter, r *http.Request) {
55 w.Header().Set("Content-Type", "application/json")54 w.Header().Set("Content-Type", "application/json")
56 enc := json.NewEncoder(w)55 enc := json.NewEncoder(w)
57 dec := json.NewDecoder(r.Body)
5856
59 filter := listFilter{57 filter := listFilter{
60 InstalledOnly: installedOnly(r.FormValue("installed_only")),58 installedOnly: installedOnly(r.FormValue("installed_only")),
61 Types: types(r.FormValue("types")),59 types: types(r.FormValue("types")),
62 }60 query: r.FormValue("q"),
63
64 if err := dec.Decode(&filter); err != nil && err != io.EOF {
65 w.WriteHeader(http.StatusInternalServerError)
66 enc.Encode(fmt.Sprintf("Error: %s", err))
67 return
68 }61 }
6962
70 payload, err := h.allPackages(&filter)63 payload, err := h.allPackages(&filter)

Subscribers

People subscribed via source and target branches