Merge lp:~sergiusens/snapweb/originNamespacesInconsistencies into lp:~snappy-dev/snapweb/trunk

Proposed by Sergio Schvezov on 2015-05-06
Status: Merged
Merged at revision: 126
Proposed branch: lp:~sergiusens/snapweb/originNamespacesInconsistencies
Merge into: lp:~snappy-dev/snapweb/trunk
Diff against target: 530 lines (+106/-76)
9 files modified
dependencies.tsv (+1/-1)
snappy/common_test.go (+7/-3)
snappy/converge.go (+42/-21)
snappy/converge_test.go (+39/-32)
snappy/handlers.go (+12/-12)
snappy/icon.go (+2/-2)
www/src/js/controllers/snaps.js (+2/-2)
www/src/js/models/snap.js (+0/-2)
www/src/js/views/snap-layout.js (+1/-1)
To merge this branch: bzr merge lp:~sergiusens/snapweb/originNamespacesInconsistencies
Reviewer Review Type Date Requested Status
John Lenton 2015-05-06 Approve on 2015-05-07
Review via email: mp+258438@code.launchpad.net

Commit Message

Using package types to determine the resource name (ID) as frameworks and oem packages installed locally contain no origin/namespace

Description of the Change

After or in this MP you will need to add/use https://code.launchpad.net/~sergiusens/snappy/storeSnapType/+merge/258437 which means updating dependencies.tsv

To post a comment you must log in.
John Lenton (chipaca) :
review: Approve
Snappy Tarmac (snappydevtarmac) wrote :
Download full text (4.2 KiB)

The attempt to merge lp:~sergiusens/webdm/originNamespacesInconsistencies into lp:webdm failed. Below is the output from the failed tests.

Checking formatting
Installing godeps
Install golint
Obtaining dependencies
update github.com/blakesmith/ar failed; trying to fetch newer version
update github.com/cheggaaa/pb failed; trying to fetch newer version
github.com/blakesmith/ar now at c9a977dd0cc1392b023382c7bfa5a22af8d3b730
update github.com/gorilla/context failed; trying to fetch newer version
github.com/cheggaaa/pb now at e8c7cc515bfde3e267957a3b110080ceed51354e
update gopkg.in/check.v1 failed; trying to fetch newer version
github.com/gorilla/context now at 50c25fb3b2b3b3cc724e9b6ac75fb44b3bccd0da
update gopkg.in/yaml.v2 failed; trying to fetch newer version
gopkg.in/check.v1 now at 64131543e7896d5bcc6bd5a76287eb75ea96c673
update launchpad.net/snappy failed; trying to fetch newer version
gopkg.in/yaml.v2 now at 49c95bdc21843256fb6c4e0d370a05f24a0bf213
update github.com/gorilla/mux failed; trying to fetch newer version
launchpad.net/snappy now at snappy_tarmac-20150506140221-gy35a67lv7tmc0nl
update github.com/juju/loggo failed; trying to fetch newer version
github.com/gorilla/mux now at e444e69cbd2e2e3e0749a2f3c717cec491552bbf
update github.com/mvo5/goconfigparser failed; trying to fetch newer version
github.com/juju/loggo now at 4c7cbce140ca070eeb59a28f4bf9507e511711f9
github.com/mvo5/goconfigparser now at 26426272dda20cc76aa1fa44286dc743d2972fe8
Building
Running tests from /tmp/tmp.uwBckxE9WO/src/launchpad.net/webdm
? launchpad.net/webdm/cmd/snappyd [no test files]
? launchpad.net/webdm/oem [no test files]
=== RUN Test
2015/05/07 06:41:40 Icon path for installed package cannot be set the icon does not exist
2015/05/07 06:41:40 Icon path for installed package cannot be set the icon does not exist
2015/05/07 06:41:40 Icon path for installed package cannot be set the icon does not exist
2015/05/07 06:41:40 Icon path for installed package cannot be set the icon does not exist
2015/05/07 06:41:40 Icon path for installed package cannot be set the icon does not exist
2015/05/07 06:41:40 Icon path for installed package cannot be set the icon does not exist
2015/05/07 06:41:40 Icon path for installed package cannot be set the icon does not exist
2015/05/07 06:41:40 Icon path for installed package cannot be set the icon does not exist
2015/05/07 06:41:40 Icon path for installed package cannot be set the icon does not exist

----------------------------------------------------------------------
FAIL: converge_test.go:215: MergeSuite.TestManyInstalledAndManyRemotesSomeInstalling

converge_test.go:248:
    c.Check(snaps[3].Status, Equals, webprogress.StatusInstalling)
... obtained webprogress.Status = "uninstalled"
... expected webprogress.Status = "installing"

2015/05/07 06:41:40 Icon path for installed package cannot be set the icon does not exist
2015/05/07 06:41:40 Icon path for installed package cannot be set the icon does not exist
2015/05/07 06:41:40 Icon path for installed package cannot be set the icon does not exist
2015/05/07 06:41:40 Icon path for installed package cannot be set the icon does not exist
WARNING: cannot create /tmp/chec...

Read more...

Snappy Tarmac (snappydevtarmac) wrote :
Download full text (107.3 KiB)

The attempt to merge lp:~sergiusens/webdm/originNamespacesInconsistencies into lp:webdm failed. Below is the output from the failed tests.

Checking formatting
Installing godeps
Install golint
Obtaining dependencies
update github.com/blakesmith/ar failed; trying to fetch newer version
update github.com/cheggaaa/pb failed; trying to fetch newer version
github.com/blakesmith/ar now at c9a977dd0cc1392b023382c7bfa5a22af8d3b730
update github.com/gorilla/context failed; trying to fetch newer version
github.com/cheggaaa/pb now at e8c7cc515bfde3e267957a3b110080ceed51354e
update gopkg.in/check.v1 failed; trying to fetch newer version
github.com/gorilla/context now at 50c25fb3b2b3b3cc724e9b6ac75fb44b3bccd0da
update gopkg.in/yaml.v2 failed; trying to fetch newer version
gopkg.in/check.v1 now at 64131543e7896d5bcc6bd5a76287eb75ea96c673
update launchpad.net/snappy failed; trying to fetch newer version
gopkg.in/yaml.v2 now at 49c95bdc21843256fb6c4e0d370a05f24a0bf213
update github.com/gorilla/mux failed; trying to fetch newer version
launchpad.net/snappy now at snappy_tarmac-20150507103214-pgd90adryua6v6wi
update github.com/juju/loggo failed; trying to fetch newer version
github.com/gorilla/mux now at e444e69cbd2e2e3e0749a2f3c717cec491552bbf
update github.com/mvo5/goconfigparser failed; trying to fetch newer version
github.com/juju/loggo now at 4c7cbce140ca070eeb59a28f4bf9507e511711f9
github.com/mvo5/goconfigparser now at 26426272dda20cc76aa1fa44286dc743d2972fe8
Building
Obtaining npm dependencies

> spawn-sync@1.0.6 postinstall /tmp/tmp.SQmXGLE7JY/src/launchpad.net/webdm/node_modules/gulp-imagemin/node_modules/imagemin/node_modules/imagemin-pngquant/node_modules/pngquant-bin/node_modules/bin-wrapper/node_modules/bin-check/node_modules/spawn-sync
> node postinstall

> spawn-sync@1.0.6 postinstall /tmp/tmp.SQmXGLE7JY/src/launchpad.net/webdm/node_modules/gulp-imagemin/node_modules/imagemin/node_modules/imagemin-optipng/node_modules/optipng-bin/node_modules/bin-wrapper/node_modules/bin-check/node_modules/spawn-sync
> node postinstall

> spawn-sync@1.0.6 postinstall /tmp/tmp.SQmXGLE7JY/src/launchpad.net/webdm/node_modules/gulp-imagemin/node_modules/imagemin/node_modules/imagemin-gifsicle/node_modules/gifsicle/node_modules/bin-wrapper/node_modules/bin-check/node_modules/spawn-sync
> node postinstall

Running tests from /tmp/tmp.SQmXGLE7JY/src/launchpad.net/webdm
? launchpad.net/webdm/cmd/snappyd [no test files]
? launchpad.net/webdm/oem [no test files]
FAIL launchpad.net/webdm/snappy [build failed]
? launchpad.net/webdm/webprogress [no test files]

# we always run in a fresh dir in tarmac
export GOPATH=$(mktemp -d)
trap 'rm -rf "$GOPATH"' EXIT

# this is a hack, but not sure tarmac is golang friendly
mkdir -p $GOPATH/src/launchpad.net/webdm
cp -a . $GOPATH/src/launchpad.net/webdm/
cd $GOPATH/src/launchpad.net/webdm

./run-checks
gopkg.in/yaml.v2
launchpad.net/webdm/oem
github.com/gorilla/context
github.com/gorilla/mux
github.com/mvo5/goconfigparser
github.com/blakesmith/ar
launchpad.net/snappy/helpers
launchpad.net/snappy/clickdeb
launchpad.net/snappy/coreconfig
github.com/juju/loggo
launchpad.net/snappy/logger
launchpad.net/snappy/partition
launchpa...

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'dependencies.tsv'
2--- dependencies.tsv 2015-05-06 15:54:38 +0000
3+++ dependencies.tsv 2015-05-07 15:42:20 +0000
4@@ -6,4 +6,4 @@
5 github.com/mvo5/goconfigparser git 26426272dda20cc76aa1fa44286dc743d2972fe8 2015-02-12T09:37:50Z
6 gopkg.in/check.v1 git 64131543e7896d5bcc6bd5a76287eb75ea96c673 2014-10-24T13:38:53Z
7 gopkg.in/yaml.v2 git 49c95bdc21843256fb6c4e0d370a05f24a0bf213 2015-02-24T22:57:58Z
8-launchpad.net/snappy bzr snappy_tarmac-20150506140221-gy35a67lv7tmc0nl 442
9+launchpad.net/snappy bzr snappy_tarmac-20150507103214-pgd90adryua6v6wi 444
10
11=== modified file 'snappy/common_test.go'
12--- snappy/common_test.go 2015-05-05 22:49:07 +0000
13+++ snappy/common_test.go 2015-05-07 15:42:20 +0000
14@@ -30,6 +30,7 @@
15 type fakeSnappyPart struct {
16 snappy.Part
17 name string
18+ namespace string
19 version string
20 vendor string
21 description string
22@@ -45,7 +46,8 @@
23
24 func newDefaultFakePart() *fakeSnappyPart {
25 return &fakeSnappyPart{
26- name: "camlistore.sergiusens",
27+ name: "camlistore",
28+ namespace: "sergiusens",
29 version: "2.0",
30 installed: true,
31 snapType: snappy.SnapTypeApp,
32@@ -54,9 +56,10 @@
33 }
34 }
35
36-func newFakePart(name, version string, installed bool) *fakeSnappyPart {
37+func newFakePart(name, namespace, version string, installed bool) *fakeSnappyPart {
38 return &fakeSnappyPart{
39 name: name,
40+ namespace: namespace,
41 version: version,
42 installed: installed,
43 snapType: snappy.SnapTypeApp,
44@@ -76,6 +79,7 @@
45 return &fakeSnappyPartServices{
46 fakeSnappyPart: fakeSnappyPart{
47 name: "camlistore.sergiusens",
48+ namespace: "sergiusens",
49 version: "2.0",
50 installed: true,
51 snapType: snappy.SnapTypeApp,
52@@ -112,7 +116,7 @@
53 }
54
55 func (p fakeSnappyPart) Namespace() string {
56- return "ubuntu"
57+ return p.namespace
58 }
59
60 func (p fakeSnappyPart) Version() string {
61
62=== modified file 'snappy/converge.go'
63--- snappy/converge.go 2015-05-06 15:14:12 +0000
64+++ snappy/converge.go 2015-05-07 15:42:20 +0000
65@@ -29,6 +29,7 @@
66 )
67
68 type snapPkg struct {
69+ ID string `json:"id"`
70 Name string `json:"name"`
71 Origin string `json:"origin"`
72 Version string `json:"version"`
73@@ -59,14 +60,25 @@
74 // for easier stubbing during testing
75 var activeSnapByName = snappy.ActiveSnapByName
76
77-func (h *Handler) packagePayload(pkgName string) (snapPkg, error) {
78+func (h *Handler) packagePayload(resource string) (snapPkg, error) {
79+ var pkgName, namespace string
80+ if s := strings.Split(resource, "."); len(s) == 2 {
81+ pkgName = s[0]
82+ namespace = s[1]
83+ } else {
84+ pkgName = resource
85+ }
86+
87 snapQ := activeSnapByName(pkgName)
88 if snapQ != nil {
89- return h.snapQueryToPayload(snapQ), nil
90+ // the second check is for locally installed snaps that lose their origin.
91+ if snapQ.Namespace() == namespace || snapQ.Type() != snappy.SnapTypeApp {
92+ return h.snapQueryToPayload(snapQ), nil
93+ }
94 }
95
96 mStore := snappy.NewMetaStoreRepository()
97- found, err := mStore.Details(pkgName)
98+ found, err := mStore.Details(resource)
99 if err == nil && len(found) != 0 {
100 return h.snapQueryToPayload(found[0]), nil
101 }
102@@ -99,48 +111,47 @@
103 if alias := remote.Alias; alias != nil {
104 remoteSnapQs = append(remoteSnapQs, h.snapQueryToPayload(alias))
105 } else {
106- /*
107- TODO reenable once we can filter by type
108- for _, part := range remote.Parts {
109- remoteSnapQs = append(remoteSnapQs, h.snapQueryToPayload(part))
110- }
111- */
112+ for _, part := range remote.Parts {
113+ remoteSnapQs = append(remoteSnapQs, h.snapQueryToPayload(part))
114+ }
115 }
116 }
117
118 return mergeSnaps(installedSnapQs, remoteSnapQs, installedOnly), nil
119 }
120
121-func (h *Handler) doRemovePackage(progress *webprogress.WebProgress, pkgName string) {
122+func (h *Handler) doRemovePackage(progress *webprogress.WebProgress, ID string) {
123+ pkgName := strings.Split(ID, ".")[0]
124+
125 err := snappy.Remove(pkgName, 0, progress)
126 progress.ErrorChan <- err
127 close(progress.ErrorChan)
128 }
129
130-func (h *Handler) removePackage(pkgName string) error {
131- progress, err := h.statusTracker.Add(pkgName, webprogress.OperationRemove)
132+func (h *Handler) removePackage(ID string) error {
133+ progress, err := h.statusTracker.Add(ID, webprogress.OperationRemove)
134 if err != nil {
135 return err
136 }
137
138- go h.doRemovePackage(progress, pkgName)
139+ go h.doRemovePackage(progress, ID)
140
141 return nil
142 }
143
144-func (h *Handler) doInstallPackage(progress *webprogress.WebProgress, pkgName string) {
145- _, err := snappy.Install(pkgName, 0, progress)
146+func (h *Handler) doInstallPackage(progress *webprogress.WebProgress, ID string) {
147+ _, err := snappy.Install(ID, 0, progress)
148 progress.ErrorChan <- err
149 close(progress.ErrorChan)
150 }
151
152-func (h *Handler) installPackage(pkgName string) error {
153- progress, err := h.statusTracker.Add(pkgName, webprogress.OperationInstall)
154+func (h *Handler) installPackage(ID string) error {
155+ progress, err := h.statusTracker.Add(ID, webprogress.OperationInstall)
156 if err != nil {
157 return err
158 }
159
160- go h.doInstallPackage(progress, pkgName)
161+ go h.doInstallPackage(progress, ID)
162
163 return nil
164 }
165@@ -178,6 +189,10 @@
166 return snapPkgs
167 }
168
169+func isNamespaceless(snap snappy.Part) bool {
170+ return snap.Type() == snappy.SnapTypeOem || snap.Type() == snappy.SnapTypeFramework
171+}
172+
173 func hasPortInformation(snap snappy.Part) bool {
174 return snap.Type() == snappy.SnapTypeApp || snap.Type() == snappy.SnapTypeFramework
175 }
176@@ -192,6 +207,12 @@
177 Type: snapQ.Type(),
178 }
179
180+ if isNamespaceless(snapQ) {
181+ snap.ID = snapQ.Name()
182+ } else {
183+ snap.ID = snapQ.Name() + "." + snapQ.Namespace()
184+ }
185+
186 if hasPortInformation(snapQ) {
187 if snapInstalled, ok := snapQ.(snappy.Services); ok {
188 port, uri := uiAccess(snapInstalled.Services())
189@@ -201,7 +222,7 @@
190 }
191
192 if snapQ.IsInstalled() {
193- iconPath, err := localIconPath(snapQ.Name(), snapQ.Icon())
194+ iconPath, err := localIconPath(snap.ID, snapQ.Icon())
195 if err != nil {
196 log.Println("Icon path for installed package cannot be set", err)
197 iconPath = ""
198@@ -214,10 +235,10 @@
199 snap.DownloadSize = snapQ.DownloadSize()
200 }
201
202- if stat, ok := h.statusTracker.Get(snap.Name); ok {
203+ if stat, ok := h.statusTracker.Get(snap.ID); ok {
204 snap.Status = stat.Status
205 if stat.Done() {
206- defer h.statusTracker.Remove(snap.Name)
207+ defer h.statusTracker.Remove(snap.ID)
208
209 if stat.Error != nil {
210 snap.Message = stat.Error.Error()
211
212=== modified file 'snappy/converge_test.go'
213--- snappy/converge_test.go 2015-05-06 17:14:44 +0000
214+++ snappy/converge_test.go 2015-05-07 15:42:20 +0000
215@@ -111,13 +111,13 @@
216
217 func (s *MergeSuite) TestOneInstalledAndNoRemote(c *C) {
218 installed := []snapPkg{
219- s.h.snapQueryToPayload(newFakePart("app1.canonical", "1.0", true)),
220+ s.h.snapQueryToPayload(newFakePart("app1", "canonical", "1.0", true)),
221 }
222
223 snaps := mergeSnaps(installed, nil, true)
224
225 c.Assert(snaps, HasLen, 1)
226- c.Assert(snaps[0].Name, Equals, "app1.canonical")
227+ c.Assert(snaps[0].Name, Equals, "app1")
228 c.Assert(snaps[0].Version, Equals, "1.0")
229 c.Assert(snaps[0].Status, Equals, webprogress.StatusInstalled)
230
231@@ -127,57 +127,60 @@
232
233 func (s *MergeSuite) TestManyInstalledAndNoRemote(c *C) {
234 installed := []snapPkg{
235- s.h.snapQueryToPayload(newFakePart("app1.canonical", "1.0", true)),
236- s.h.snapQueryToPayload(newFakePart("app2.canonical", "2.0", true)),
237- s.h.snapQueryToPayload(newFakePart("app3.canonical", "3.0", true)),
238+ s.h.snapQueryToPayload(newFakePart("app1", "canonical", "1.0", true)),
239+ s.h.snapQueryToPayload(newFakePart("app2", "canonical", "2.0", true)),
240+ s.h.snapQueryToPayload(newFakePart("app3", "canonical", "3.0", true)),
241 }
242
243 snaps := mergeSnaps(installed, nil, true)
244
245 c.Assert(snaps, HasLen, 3)
246- c.Assert(snaps[0].Name, Equals, "app1.canonical")
247+ c.Assert(snaps[0].Name, Equals, "app1")
248 c.Assert(snaps[0].Version, Equals, "1.0")
249 c.Assert(snaps[0].Status, Equals, webprogress.StatusInstalled)
250
251- c.Assert(snaps[1].Name, Equals, "app2.canonical")
252+ c.Assert(snaps[1].Name, Equals, "app2")
253 c.Assert(snaps[1].Version, Equals, "2.0")
254 c.Assert(snaps[1].Status, Equals, webprogress.StatusInstalled)
255
256- c.Assert(snaps[2].Name, Equals, "app3.canonical")
257+ c.Assert(snaps[2].Name, Equals, "app3")
258 c.Assert(snaps[2].Version, Equals, "3.0")
259 c.Assert(snaps[2].Status, Equals, webprogress.StatusInstalled)
260 }
261
262 func (s *MergeSuite) TestManyInstalledAndManyRemotes(c *C) {
263 installed := []snapPkg{
264- s.h.snapQueryToPayload(newFakePart("app1.canonical", "1.0", true)),
265- s.h.snapQueryToPayload(newFakePart("app2.canonical", "2.0", true)),
266- s.h.snapQueryToPayload(newFakePart("app3.canonical", "3.0", true)),
267+ s.h.snapQueryToPayload(newFakePart("app1", "canonical", "1.0", true)),
268+ s.h.snapQueryToPayload(newFakePart("app2", "canonical", "2.0", true)),
269+ s.h.snapQueryToPayload(newFakePart("app3", "canonical", "3.0", true)),
270 }
271
272 remotes := []snapPkg{
273- s.h.snapQueryToPayload(newFakePart("app1.canonical", "1.0", false)),
274- s.h.snapQueryToPayload(newFakePart("app2.canonical", "2.0", false)),
275- s.h.snapQueryToPayload(newFakePart("app3.ubuntu", "3.0", false)),
276+ s.h.snapQueryToPayload(newFakePart("app1", "canonical", "1.0", false)),
277+ s.h.snapQueryToPayload(newFakePart("app2", "canonical", "2.0", false)),
278+ s.h.snapQueryToPayload(newFakePart("app4", "ubuntu", "3.0", false)),
279 }
280
281 // Only installed
282 snaps := mergeSnaps(installed, remotes, true)
283
284 c.Assert(snaps, HasLen, 3)
285- c.Check(snaps[0].Name, Equals, "app1.canonical")
286+ c.Check(snaps[0].Name, Equals, "app1")
287+ c.Check(snaps[0].Origin, Equals, "canonical")
288 c.Check(snaps[0].Version, Equals, "1.0")
289 c.Check(snaps[0].Status, Equals, webprogress.StatusInstalled)
290 c.Check(snaps[0].InstalledSize, Equals, int64(30))
291 c.Check(snaps[0].DownloadSize, Equals, int64(0))
292
293- c.Check(snaps[1].Name, Equals, "app2.canonical")
294+ c.Check(snaps[1].Name, Equals, "app2")
295+ c.Check(snaps[1].Origin, Equals, "canonical")
296 c.Check(snaps[1].Version, Equals, "2.0")
297 c.Check(snaps[1].Status, Equals, webprogress.StatusInstalled)
298 c.Check(snaps[1].InstalledSize, Equals, int64(30))
299 c.Check(snaps[1].DownloadSize, Equals, int64(0))
300
301- c.Check(snaps[2].Name, Equals, "app3.canonical")
302+ c.Check(snaps[2].Name, Equals, "app3")
303+ c.Check(snaps[0].Origin, Equals, "canonical")
304 c.Check(snaps[2].Version, Equals, "3.0")
305 c.Check(snaps[2].Status, Equals, webprogress.StatusInstalled)
306 c.Check(snaps[2].InstalledSize, Equals, int64(30))
307@@ -187,25 +190,29 @@
308 snaps = mergeSnaps(installed, remotes, false)
309
310 c.Assert(snaps, HasLen, 4)
311- c.Check(snaps[0].Name, Equals, "app1.canonical")
312+ c.Check(snaps[0].Name, Equals, "app1")
313+ c.Check(snaps[0].Origin, Equals, "canonical")
314 c.Check(snaps[0].Version, Equals, "1.0")
315 c.Check(snaps[0].Status, Equals, webprogress.StatusInstalled)
316 c.Check(snaps[0].InstalledSize, Equals, int64(30))
317 c.Check(snaps[0].DownloadSize, Equals, int64(0))
318
319- c.Check(snaps[1].Name, Equals, "app2.canonical")
320+ c.Check(snaps[1].Name, Equals, "app2")
321+ c.Check(snaps[1].Origin, Equals, "canonical")
322 c.Check(snaps[1].Version, Equals, "2.0")
323 c.Check(snaps[1].Status, Equals, webprogress.StatusInstalled)
324 c.Check(snaps[1].InstalledSize, Equals, int64(30))
325 c.Check(snaps[1].DownloadSize, Equals, int64(0))
326
327- c.Check(snaps[2].Name, Equals, "app3.canonical")
328+ c.Check(snaps[2].Name, Equals, "app3")
329+ c.Check(snaps[2].Origin, Equals, "canonical")
330 c.Check(snaps[2].Version, Equals, "3.0")
331 c.Check(snaps[2].Status, Equals, webprogress.StatusInstalled)
332 c.Check(snaps[2].InstalledSize, Equals, int64(30))
333 c.Check(snaps[2].DownloadSize, Equals, int64(0))
334
335- c.Check(snaps[3].Name, Equals, "app3.ubuntu")
336+ c.Check(snaps[3].Name, Equals, "app4")
337+ c.Check(snaps[3].Origin, Equals, "ubuntu")
338 c.Check(snaps[3].Version, Equals, "3.0")
339 c.Check(snaps[3].Status, Equals, webprogress.StatusUninstalled)
340 c.Check(snaps[3].InstalledSize, Equals, int64(0))
341@@ -216,40 +223,40 @@
342 s.h.statusTracker.Add("app4.ubuntu", webprogress.OperationInstall)
343
344 installed := []snapPkg{
345- s.h.snapQueryToPayload(newFakePart("app1.canonical", "1.0", true)),
346- s.h.snapQueryToPayload(newFakePart("app2.canonical", "2.0", true)),
347- s.h.snapQueryToPayload(newFakePart("app3.canonical", "3.0", true)),
348+ s.h.snapQueryToPayload(newFakePart("app1", "canonical", "1.0", true)),
349+ s.h.snapQueryToPayload(newFakePart("app2", "canonical", "2.0", true)),
350+ s.h.snapQueryToPayload(newFakePart("app3", "canonical", "3.0", true)),
351 }
352
353 remotes := []snapPkg{
354- s.h.snapQueryToPayload(newFakePart("app1.canonical", "1.0", false)),
355- s.h.snapQueryToPayload(newFakePart("app4.ubuntu", "2.0", false)),
356- s.h.snapQueryToPayload(newFakePart("app5.ubuntu", "3.0", false)),
357+ s.h.snapQueryToPayload(newFakePart("app1", "canonical", "1.0", false)),
358+ s.h.snapQueryToPayload(newFakePart("app4", "ubuntu", "2.0", false)),
359+ s.h.snapQueryToPayload(newFakePart("app5", "ubuntu", "3.0", false)),
360 }
361
362 // Installed and remotes
363 snaps := mergeSnaps(installed, remotes, false)
364
365 c.Assert(snaps, HasLen, 5)
366- c.Check(snaps[0].Name, Equals, "app1.canonical")
367+ c.Check(snaps[0].Name, Equals, "app1")
368 c.Check(snaps[0].Version, Equals, "1.0")
369 c.Check(snaps[0].Status, Equals, webprogress.StatusInstalled)
370
371- c.Check(snaps[1].Name, Equals, "app2.canonical")
372+ c.Check(snaps[1].Name, Equals, "app2")
373 c.Check(snaps[1].Version, Equals, "2.0")
374 c.Check(snaps[1].Status, Equals, webprogress.StatusInstalled)
375
376- c.Check(snaps[2].Name, Equals, "app3.canonical")
377+ c.Check(snaps[2].Name, Equals, "app3")
378 c.Check(snaps[2].Version, Equals, "3.0")
379 c.Check(snaps[2].Status, Equals, webprogress.StatusInstalled)
380
381- c.Check(snaps[3].Name, Equals, "app4.ubuntu")
382+ c.Check(snaps[3].Name, Equals, "app4")
383 c.Check(snaps[3].Version, Equals, "2.0")
384 c.Check(snaps[3].Status, Equals, webprogress.StatusInstalling)
385 c.Check(snaps[3].InstalledSize, Equals, int64(0))
386 c.Check(snaps[3].DownloadSize, Equals, int64(60))
387
388- c.Check(snaps[4].Name, Equals, "app5.ubuntu")
389+ c.Check(snaps[4].Name, Equals, "app5")
390 c.Check(snaps[4].Version, Equals, "3.0")
391 c.Check(snaps[4].Status, Equals, webprogress.StatusUninstalled)
392 c.Check(snaps[4].InstalledSize, Equals, int64(0))
393
394=== modified file 'snappy/handlers.go'
395--- snappy/handlers.go 2015-05-06 14:41:13 +0000
396+++ snappy/handlers.go 2015-05-07 15:42:20 +0000
397@@ -73,13 +73,13 @@
398 w.Header().Set("Content-Type", "application/json")
399 // Get the Key.
400 vars := mux.Vars(r)
401- pkgName := vars["pkg"]
402+ resource := vars["id"]
403 enc := json.NewEncoder(w)
404
405- payload, err := h.packagePayload(pkgName)
406+ payload, err := h.packagePayload(resource)
407 if err != nil {
408 w.WriteHeader(http.StatusNotFound)
409- enc.Encode(fmt.Sprintln(err, pkgName))
410+ enc.Encode(fmt.Sprintln(err, resource))
411 return
412 }
413
414@@ -99,12 +99,12 @@
415 w.Header().Set("Content-Type", "application/json")
416 // Get the Key.
417 vars := mux.Vars(r)
418- pkgName := vars["pkg"]
419+ ID := vars["id"]
420
421- err := h.installPackage(pkgName)
422+ err := h.installPackage(ID)
423 msg, status := respond(err)
424
425- response := response{Message: msg, Package: pkgName}
426+ response := response{Message: msg, Package: ID}
427 bs, err := json.Marshal(response)
428 if err != nil {
429 // giving up on json
430@@ -122,12 +122,12 @@
431 w.Header().Set("Content-Type", "application/json")
432 // Get the Key.
433 vars := mux.Vars(r)
434- pkgName := vars["pkg"]
435+ ID := vars["id"]
436
437- err := h.removePackage(pkgName)
438+ err := h.removePackage(ID)
439 msg, status := respond(err)
440
441- response := response{Message: msg, Package: pkgName}
442+ response := response{Message: msg, Package: ID}
443 bs, err := json.Marshal(response)
444 if err != nil {
445 // giving up on json
446@@ -178,13 +178,13 @@
447 m.HandleFunc("/", h.getAll).Methods("GET")
448
449 // get specific package
450- m.HandleFunc("/{pkg}", h.get).Methods("GET")
451+ m.HandleFunc("/{id}", h.get).Methods("GET")
452
453 // Add a package
454- m.HandleFunc("/{pkg}", h.add).Methods("PUT")
455+ m.HandleFunc("/{id}", h.add).Methods("PUT")
456
457 // Remove a package
458- m.HandleFunc("/{pkg}", h.remove).Methods("DELETE")
459+ m.HandleFunc("/{id}", h.remove).Methods("DELETE")
460
461 return m
462 }
463
464=== modified file 'snappy/icon.go'
465--- snappy/icon.go 2015-05-03 20:35:34 +0000
466+++ snappy/icon.go 2015-05-07 15:42:20 +0000
467@@ -37,13 +37,13 @@
468 ErrIconNotExist = errors.New("the icon does not exist")
469 )
470
471-func localIconPath(pkgName, iconPath string) (relativePath string, err error) {
472+func localIconPath(ID, iconPath string) (relativePath string, err error) {
473 dataPath, relativePath, err := IconDir()
474 if err != nil {
475 return "", err
476 }
477
478- baseIcon := fmt.Sprintf("%s_%s", pkgName, filepath.Base(iconPath))
479+ baseIcon := fmt.Sprintf("%s_%s", ID, filepath.Base(iconPath))
480
481 relativePath = filepath.Join(relativePath, baseIcon)
482 iconDstPath := filepath.Join(dataPath, baseIcon)
483
484=== modified file 'www/src/js/controllers/snaps.js'
485--- www/src/js/controllers/snaps.js 2015-04-22 20:44:46 +0000
486+++ www/src/js/controllers/snaps.js 2015-05-07 15:42:20 +0000
487@@ -9,7 +9,7 @@
488
489 module.exports = {
490 snap: function(name, section) {
491- var snap = new Snap({name: name});
492+ var snap = new Snap({id: id});
493
494 snap.fetch({
495 success: function(snap) {
496@@ -28,7 +28,7 @@
497 };
498
499 snapChannel.comply('show', function(model) {
500- var name = model.get('name');
501+ var name = model.get('id');
502 var url = 'snap/' + name + '/';
503 var view = new SnapLayoutView({
504 model: model
505
506=== modified file 'www/src/js/models/snap.js'
507--- www/src/js/models/snap.js 2015-05-06 18:57:26 +0000
508+++ www/src/js/models/snap.js 2015-05-07 15:42:20 +0000
509@@ -27,8 +27,6 @@
510
511 urlRoot: CONF.PACKAGES,
512
513- idAttribute: 'name',
514-
515 initialize: function() {
516
517 this.on('add sync', function(model, response, opts) {
518
519=== modified file 'www/src/js/views/snap-layout.js'
520--- www/src/js/views/snap-layout.js 2015-05-06 18:57:26 +0000
521+++ www/src/js/views/snap-layout.js 2015-05-07 15:42:20 +0000
522@@ -76,7 +76,7 @@
523 e.preventDefault();
524 var section = e.target.getAttribute('href');
525 var view = this._getSectionView(section);
526- var name = this.model.get('name');
527+ var name = this.model.get('id');
528 // XXX url sane
529 var url = 'snap/' + name + '/' + section;
530 // if section is already in place, don't showChildView

Subscribers

People subscribed via source and target branches