diff options
| author | Michael Vogt <mvo@ubuntu.com> | 2017-11-16 17:05:55 +0100 |
|---|---|---|
| committer | Michael Vogt <mvo@ubuntu.com> | 2017-11-16 17:05:55 +0100 |
| commit | 4eb1eae4cd3d62d4ebb72bc63cdc40635c909f37 (patch) | |
| tree | 15b727ee72c8060ff3e255cfb402d8e27a37b225 | |
| parent | 9eb5314f9ea4719312a2092dccc55a4383920d4d (diff) | |
use struct with bools instead of bitflags (thanks Chipaca)refresh-candidates-managed
| -rw-r--r-- | daemon/api_test.go | 2 | ||||
| -rw-r--r-- | overlord/snapstate/backend.go | 2 | ||||
| -rw-r--r-- | overlord/snapstate/backend_test.go | 2 | ||||
| -rw-r--r-- | overlord/snapstate/snapstate.go | 2 | ||||
| -rw-r--r-- | store/store.go | 22 | ||||
| -rw-r--r-- | store/store_test.go | 58 | ||||
| -rw-r--r-- | store/storetest/storetest.go | 2 |
7 files changed, 45 insertions, 45 deletions
diff --git a/daemon/api_test.go b/daemon/api_test.go index 284091fa96..c9b652646d 100644 --- a/daemon/api_test.go +++ b/daemon/api_test.go @@ -129,7 +129,7 @@ func (s *apiBaseSuite) LookupRefresh(snap *store.RefreshCandidate, user *auth.Us return s.rsnaps[0], s.err } -func (s *apiBaseSuite) ListRefresh(snaps []*store.RefreshCandidate, user *auth.UserState, flags store.RefreshFlags) ([]*snap.Info, error) { +func (s *apiBaseSuite) ListRefresh(snaps []*store.RefreshCandidate, user *auth.UserState, flags *store.RefreshOptions) ([]*snap.Info, error) { s.refreshCandidates = snaps s.user = user diff --git a/overlord/snapstate/backend.go b/overlord/snapstate/backend.go index 748db5a5a0..1fa9305b3f 100644 --- a/overlord/snapstate/backend.go +++ b/overlord/snapstate/backend.go @@ -37,7 +37,7 @@ type StoreService interface { SnapInfo(spec store.SnapSpec, user *auth.UserState) (*snap.Info, error) Find(search *store.Search, user *auth.UserState) ([]*snap.Info, error) LookupRefresh(*store.RefreshCandidate, *auth.UserState) (*snap.Info, error) - ListRefresh([]*store.RefreshCandidate, *auth.UserState, store.RefreshFlags) ([]*snap.Info, error) + ListRefresh([]*store.RefreshCandidate, *auth.UserState, *store.RefreshOptions) ([]*snap.Info, error) Sections(user *auth.UserState) ([]string, error) WriteCatalogs(names io.Writer) error Download(context.Context, string, string, *snap.DownloadInfo, progress.Meter, *auth.UserState) error diff --git a/overlord/snapstate/backend_test.go b/overlord/snapstate/backend_test.go index 2b118bfa74..460b531d8c 100644 --- a/overlord/snapstate/backend_test.go +++ b/overlord/snapstate/backend_test.go @@ -227,7 +227,7 @@ func (f *fakeStore) LookupRefresh(cand *store.RefreshCandidate, user *auth.UserS return nil, store.ErrNoUpdateAvailable } -func (f *fakeStore) ListRefresh(cands []*store.RefreshCandidate, _ *auth.UserState, flags store.RefreshFlags) ([]*snap.Info, error) { +func (f *fakeStore) ListRefresh(cands []*store.RefreshCandidate, _ *auth.UserState, flags *store.RefreshOptions) ([]*snap.Info, error) { f.pokeStateLock() if len(cands) == 0 { diff --git a/overlord/snapstate/snapstate.go b/overlord/snapstate/snapstate.go index b3e2aee4c7..61c7e70346 100644 --- a/overlord/snapstate/snapstate.go +++ b/overlord/snapstate/snapstate.go @@ -612,7 +612,7 @@ func refreshCandidates(st *state.State, names []string, user *auth.UserState) ([ theStore := Store(st) st.Unlock() - updates, err := theStore.ListRefresh(candidatesInfo, user, 0) + updates, err := theStore.ListRefresh(candidatesInfo, user, nil) st.Lock() if err != nil { return nil, nil, nil, err diff --git a/store/store.go b/store/store.go index 8d98956a23..cb372aa475 100644 --- a/store/store.go +++ b/store/store.go @@ -69,15 +69,11 @@ const ( UbuntuCoreWireProtocol = "1" ) -type RefreshFlags int - -const ( - _ = iota - +type RefreshOptions struct { // RefreshManaged indicates to the store that the refresh is // managed via snapd-control. - RefreshManaged -) + RefreshManaged bool +} // the LimitTime should be slightly more than 3 times of our http.Client // Timeout value @@ -1287,7 +1283,11 @@ func currentSnap(cs *RefreshCandidate) *currentSnapJSON { } // query the store for the information about currently offered revisions of snaps -func (s *Store) refreshForCandidates(currentSnaps []*currentSnapJSON, user *auth.UserState, flags RefreshFlags) ([]*snapDetails, error) { +func (s *Store) refreshForCandidates(currentSnaps []*currentSnapJSON, user *auth.UserState, flags *RefreshOptions) ([]*snapDetails, error) { + if flags == nil { + flags = &RefreshOptions{} + } + if len(currentSnaps) == 0 { // nothing to do return nil, nil @@ -1314,7 +1314,7 @@ func (s *Store) refreshForCandidates(currentSnaps []*currentSnapJSON, user *auth logger.Debugf("Deltas enabled. Adding header X-Ubuntu-Delta-Formats: %v", s.deltaFormat) reqOptions.addHeader("X-Ubuntu-Delta-Formats", s.deltaFormat) } - if flags&RefreshManaged != 0 { + if flags.RefreshManaged { reqOptions.addHeader("X-Ubuntu-Refresh-Managed", "true") } @@ -1342,7 +1342,7 @@ func (s *Store) LookupRefresh(installed *RefreshCandidate, user *auth.UserState) return nil, ErrLocalSnap } - latest, err := refreshForCandidates(s, []*currentSnapJSON{cur}, user, 0) + latest, err := refreshForCandidates(s, []*currentSnapJSON{cur}, user, nil) if err != nil { return nil, err } @@ -1361,7 +1361,7 @@ func (s *Store) LookupRefresh(installed *RefreshCandidate, user *auth.UserState) // ListRefresh returns the available updates for a list of refresh candidates. // NOTE ListRefresh can return nil, nil if e.g. all local snaps are passed in -func (s *Store) ListRefresh(installed []*RefreshCandidate, user *auth.UserState, flags RefreshFlags) (snaps []*snap.Info, err error) { +func (s *Store) ListRefresh(installed []*RefreshCandidate, user *auth.UserState, flags *RefreshOptions) (snaps []*snap.Info, err error) { candidateMap := map[string]*RefreshCandidate{} currentSnaps := make([]*currentSnapJSON, 0, len(installed)) for _, cs := range installed { diff --git a/store/store_test.go b/store/store_test.go index 4315a58c62..976f9d4b31 100644 --- a/store/store_test.go +++ b/store/store_test.go @@ -3121,7 +3121,7 @@ func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryRefreshForCandidates(c *C Channel: "stable", Revision: 1, }, - }, nil, 0) + }, nil, nil) c.Assert(err, IsNil) c.Assert(results, HasLen, 1) @@ -3169,14 +3169,14 @@ func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryRefreshForCandidatesRetri SnapID: helloWorldSnapID, Channel: "stable", Revision: 1, - }}, nil, 0) + }}, nil, nil) c.Assert(err, IsNil) c.Assert(n, Equals, 4) c.Assert(results, HasLen, 1) c.Assert(results[0].Name, Equals, "hello-world") } -func mockRFC(newRFC func(*Store, []*currentSnapJSON, *auth.UserState, RefreshFlags) ([]*snapDetails, error)) func() { +func mockRFC(newRFC func(*Store, []*currentSnapJSON, *auth.UserState, *RefreshOptions) ([]*snapDetails, error)) func() { oldRFC := refreshForCandidates refreshForCandidates = newRFC return func() { @@ -3185,7 +3185,7 @@ func mockRFC(newRFC func(*Store, []*currentSnapJSON, *auth.UserState, RefreshFla } func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryLookupRefresh(c *C) { - defer mockRFC(func(_ *Store, currentSnaps []*currentSnapJSON, _ *auth.UserState, _ RefreshFlags) ([]*snapDetails, error) { + defer mockRFC(func(_ *Store, currentSnaps []*currentSnapJSON, _ *auth.UserState, _ *RefreshOptions) ([]*snapDetails, error) { c.Check(currentSnaps, DeepEquals, []*currentSnapJSON{{ SnapID: helloWorldSnapID, Channel: "stable", @@ -3220,7 +3220,7 @@ func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryLookupRefresh(c *C) { } func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryLookupRefreshIgnoreValidation(c *C) { - defer mockRFC(func(_ *Store, currentSnaps []*currentSnapJSON, _ *auth.UserState, _ RefreshFlags) ([]*snapDetails, error) { + defer mockRFC(func(_ *Store, currentSnaps []*currentSnapJSON, _ *auth.UserState, _ *RefreshOptions) ([]*snapDetails, error) { c.Check(currentSnaps, DeepEquals, []*currentSnapJSON{{ SnapID: helloWorldSnapID, Channel: "stable", @@ -3254,7 +3254,7 @@ func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryLookupRefreshIgnoreValida } func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryLookupRefreshLocalSnap(c *C) { - defer mockRFC(func(_ *Store, _ []*currentSnapJSON, _ *auth.UserState, _ RefreshFlags) ([]*snapDetails, error) { + defer mockRFC(func(_ *Store, _ []*currentSnapJSON, _ *auth.UserState, _ *RefreshOptions) ([]*snapDetails, error) { panic("unexpected call to refreshForCandidates") })() @@ -3270,7 +3270,7 @@ func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryLookupRefreshLocalSnap(c func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryLookupRefreshRFCError(c *C) { anError := errors.New("ouchie") - defer mockRFC(func(_ *Store, _ []*currentSnapJSON, _ *auth.UserState, _ RefreshFlags) ([]*snapDetails, error) { + defer mockRFC(func(_ *Store, _ []*currentSnapJSON, _ *auth.UserState, _ *RefreshOptions) ([]*snapDetails, error) { return nil, anError })() @@ -3286,7 +3286,7 @@ func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryLookupRefreshRFCError(c * } func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryLookupRefreshEmptyResponse(c *C) { - defer mockRFC(func(_ *Store, _ []*currentSnapJSON, _ *auth.UserState, _ RefreshFlags) ([]*snapDetails, error) { + defer mockRFC(func(_ *Store, _ []*currentSnapJSON, _ *auth.UserState, _ *RefreshOptions) ([]*snapDetails, error) { return nil, nil })() @@ -3302,7 +3302,7 @@ func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryLookupRefreshEmptyRespons } func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryLookupRefreshNoUpdate(c *C) { - defer mockRFC(func(_ *Store, _ []*currentSnapJSON, _ *auth.UserState, _ RefreshFlags) ([]*snapDetails, error) { + defer mockRFC(func(_ *Store, _ []*currentSnapJSON, _ *auth.UserState, _ *RefreshOptions) ([]*snapDetails, error) { return []*snapDetails{{ SnapID: helloWorldDeveloperID, Revision: 1, @@ -3366,7 +3366,7 @@ func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryListRefresh(c *C) { Channel: "stable", Revision: snap.R(1), }, - }, nil, 0) + }, nil, nil) c.Assert(err, IsNil) c.Assert(results, HasLen, 1) c.Assert(results[0].Name(), Equals, "hello-world") @@ -3425,7 +3425,7 @@ func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryListRefreshIgnoreValidati Revision: snap.R(1), IgnoreValidation: true, }, - }, nil, 0) + }, nil, nil) c.Assert(err, IsNil) c.Assert(results, HasLen, 1) c.Assert(results[0].Name(), Equals, "hello-world") @@ -3478,7 +3478,7 @@ func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryListRefreshDefaultChannel SnapID: helloWorldSnapID, Revision: snap.R(1), }, - }, nil, 0) + }, nil, nil) c.Assert(err, IsNil) c.Assert(results, HasLen, 1) c.Assert(results[0].Name(), Equals, "hello-world") @@ -3525,7 +3525,7 @@ func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryListRefreshRetryOnEOF(c * SnapID: helloWorldSnapID, Channel: "stable", Revision: snap.R(1), - }}, nil, 0) + }}, nil, nil) c.Assert(err, IsNil) c.Assert(n, Equals, 4) c.Assert(results, HasLen, 1) @@ -3567,7 +3567,7 @@ func (t *remoteRepoTestSuite) TestUbuntuStoreUnexpectedEOFhandling(c *C) { SnapID: helloWorldSnapID, Channel: "stable", Revision: 1, - }}, nil, 0) + }}, nil, nil) return err } @@ -3612,7 +3612,7 @@ func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryRefreshForCandidatesEOF(c SnapID: helloWorldSnapID, Channel: "stable", Revision: 1, - }}, nil, 0) + }}, nil, nil) c.Assert(err, NotNil) c.Assert(err, ErrorMatches, `^Post http://127.0.0.1:.*?/metadata: EOF$`) c.Assert(n, Equals, 5) @@ -3644,7 +3644,7 @@ func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryRefreshForCandidatesUnaut SnapID: helloWorldSnapID, Channel: "stable", Revision: 24, - }}, nil, 0) + }}, nil, nil) c.Assert(n, Equals, 1) c.Assert(err, ErrorMatches, `cannot query the store for updates: got unexpected HTTP status code 401 via POST to "http://.*?/metadata"`) } @@ -3663,7 +3663,7 @@ func (t *remoteRepoTestSuite) TestRefreshForCandidatesFailOnDNS(c *C) { SnapID: helloWorldSnapID, Channel: "stable", Revision: 24, - }}, nil, 0) + }}, nil, nil) // the error differs depending on whether a proxy is in use (e.g. on travis), so don't inspect error message c.Assert(err, NotNil) } @@ -3690,7 +3690,7 @@ func (t *remoteRepoTestSuite) TestRefreshForCandidates500(c *C) { SnapID: helloWorldSnapID, Channel: "stable", Revision: 24, - }}, nil, 0) + }}, nil, nil) c.Assert(err, ErrorMatches, `cannot query the store for updates: got unexpected HTTP status code 500 via POST to "http://.*?/metadata"`) c.Assert(n, Equals, 5) } @@ -3718,7 +3718,7 @@ func (t *remoteRepoTestSuite) TestRefreshForCandidates500DurationExceeded(c *C) SnapID: helloWorldSnapID, Channel: "stable", Revision: 24, - }}, nil, 0) + }}, nil, nil) c.Assert(err, ErrorMatches, `cannot query the store for updates: got unexpected HTTP status code 500 via POST to "http://.*?/metadata"`) c.Assert(n, Equals, 1) } @@ -3775,7 +3775,7 @@ func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryListRefreshSkipCurrent(c SnapID: helloWorldSnapID, Channel: "stable", Revision: snap.R(26), - }}, nil, 0) + }}, nil, nil) c.Assert(err, IsNil) c.Assert(results, HasLen, 0) } @@ -3820,7 +3820,7 @@ func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryListRefreshSkipBlocked(c Channel: "stable", Revision: snap.R(25), Block: []snap.Revision{snap.R(26)}, - }}, nil, 0) + }}, nil, nil) c.Assert(err, IsNil) c.Assert(results, HasLen, 0) } @@ -3910,7 +3910,7 @@ func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryDefaultsDeltasOnClassicOn SnapID: helloWorldSnapID, Channel: "stable", Revision: 1, - }}, nil, 0) + }}, nil, nil) } } @@ -3959,7 +3959,7 @@ func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryListRefreshWithDeltas(c * SnapID: helloWorldSnapID, Channel: "stable", Revision: snap.R(24), - }}, nil, 0) + }}, nil, nil) c.Assert(err, IsNil) c.Assert(results, HasLen, 1) c.Assert(results[0].Deltas, HasLen, 2) @@ -4029,7 +4029,7 @@ func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryListRefreshWithoutDeltas( SnapID: helloWorldSnapID, Channel: "stable", Revision: snap.R(24), - }}, nil, 0) + }}, nil, nil) c.Assert(err, IsNil) c.Assert(results, HasLen, 1) c.Assert(results[0].Deltas, HasLen, 0) @@ -4055,17 +4055,17 @@ func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryUpdateNotSendLocalRevs(c SnapID: helloWorldSnapID, Channel: "stable", Revision: snap.R(-2), - }}, nil, 0) + }}, nil, nil) c.Assert(err, IsNil) } -func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryListRefreshFlags(c *C) { +func (t *remoteRepoTestSuite) TestUbuntuStoreRepositoryListRefreshOptions(c *C) { for _, t := range []struct { - flag RefreshFlags + flag *RefreshOptions header string }{ - {0, ""}, - {RefreshManaged, "X-Ubuntu-Refresh-Managed"}, + {nil, ""}, + {&RefreshOptions{RefreshManaged: true}, "X-Ubuntu-Refresh-Managed"}, } { mockServerHit := false diff --git a/store/storetest/storetest.go b/store/storetest/storetest.go index 89f1bb743c..58e5b80501 100644 --- a/store/storetest/storetest.go +++ b/store/storetest/storetest.go @@ -53,7 +53,7 @@ func (Store) LookupRefresh(*store.RefreshCandidate, *auth.UserState) (*snap.Info panic("Store.LookupRefresh not expected") } -func (Store) ListRefresh([]*store.RefreshCandidate, *auth.UserState, store.RefreshFlags) ([]*snap.Info, error) { +func (Store) ListRefresh([]*store.RefreshCandidate, *auth.UserState, *store.RefreshOptions) ([]*snap.Info, error) { panic("Store.ListRefresh not expected") } |
