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
1=== modified file 'snappy/converge.go'
2--- snappy/converge.go 2015-05-07 16:29:23 +0000
3+++ snappy/converge.go 2015-05-08 14:57:49 +0000
4@@ -54,8 +54,9 @@
5 }
6
7 type listFilter struct {
8- Types []string
9- InstalledOnly bool
10+ types []string
11+ installedOnly bool
12+ query string
13 }
14
15 // for easier stubbing during testing
16@@ -97,19 +98,34 @@
17
18 typeFilter := func(string) bool { return true }
19
20- if len(filter.Types) != 0 {
21- regex, err := regexp.Compile("^(?:" + strings.Join(filter.Types, "|") + ")")
22+ if len(filter.types) != 0 {
23+ regex, err := regexp.Compile("^(?:" + strings.Join(filter.types, "|") + ")")
24 if err != nil {
25 return nil, err
26 }
27 typeFilter = regex.MatchString
28 }
29
30+ queryFilter := func(string) bool { return true }
31+
32+ if filter.query != "" {
33+ regex, err := regexp.Compile("^(?:" + filter.query + ")")
34+ if err != nil {
35+ return nil, err
36+ }
37+ queryFilter = regex.MatchString
38+ }
39+
40 installedSnapQs := make([]snapPkg, 0, len(installedSnaps))
41 for i := range installedSnaps {
42 if !typeFilter(string(installedSnaps[i].Type())) {
43 continue
44 }
45+
46+ if !queryFilter(installedSnaps[i].Name()) {
47+ continue
48+ }
49+
50 installedSnapQs = append(installedSnapQs, h.snapQueryToPayload(installedSnaps[i]))
51 }
52
53@@ -126,18 +142,24 @@
54 if !typeFilter(string(alias.Type())) {
55 continue
56 }
57+ if !queryFilter(alias.Name()) {
58+ continue
59+ }
60 remoteSnapQs = append(remoteSnapQs, h.snapQueryToPayload(alias))
61 } else {
62 for _, part := range remote.Parts {
63 if !typeFilter(string(part.Type())) {
64 continue
65 }
66+ if !queryFilter(part.Name()) {
67+ continue
68+ }
69 remoteSnapQs = append(remoteSnapQs, h.snapQueryToPayload(part))
70 }
71 }
72 }
73
74- return mergeSnaps(installedSnapQs, remoteSnapQs, filter.InstalledOnly), nil
75+ return mergeSnaps(installedSnapQs, remoteSnapQs, filter.installedOnly), nil
76 }
77
78 func (h *Handler) doRemovePackage(progress *webprogress.WebProgress, ID string) {
79
80=== modified file 'snappy/handlers.go'
81--- snappy/handlers.go 2015-05-07 16:29:23 +0000
82+++ snappy/handlers.go 2015-05-08 14:57:49 +0000
83@@ -20,7 +20,6 @@
84 import (
85 "encoding/json"
86 "fmt"
87- "io"
88 "log"
89 "net/http"
90 "strings"
91@@ -54,17 +53,11 @@
92 func (h *Handler) getAll(w http.ResponseWriter, r *http.Request) {
93 w.Header().Set("Content-Type", "application/json")
94 enc := json.NewEncoder(w)
95- dec := json.NewDecoder(r.Body)
96
97 filter := listFilter{
98- InstalledOnly: installedOnly(r.FormValue("installed_only")),
99- Types: types(r.FormValue("types")),
100- }
101-
102- if err := dec.Decode(&filter); err != nil && err != io.EOF {
103- w.WriteHeader(http.StatusInternalServerError)
104- enc.Encode(fmt.Sprintf("Error: %s", err))
105- return
106+ installedOnly: installedOnly(r.FormValue("installed_only")),
107+ types: types(r.FormValue("types")),
108+ query: r.FormValue("q"),
109 }
110
111 payload, err := h.allPackages(&filter)

Subscribers

People subscribed via source and target branches