RemoteRepo by UUID lookup.

This commit is contained in:
Andrey Smirnov
2013-12-23 20:29:42 +04:00
parent c38592dc02
commit 8cb25c037b
2 changed files with 21 additions and 0 deletions
+10
View File
@@ -320,6 +320,16 @@ func (collection *RemoteRepoCollection) ByName(name string) (*RemoteRepo, error)
return nil, fmt.Errorf("mirror with name %s not found", name) return nil, fmt.Errorf("mirror with name %s not found", name)
} }
// ByUUID looks up repository by uuid
func (collection *RemoteRepoCollection) ByUUID(uuid string) (*RemoteRepo, error) {
for _, r := range collection.list {
if r.UUID == uuid {
return r, nil
}
}
return nil, fmt.Errorf("mirror with uuid %s not found", uuid)
}
// ForEach runs method for each repository // ForEach runs method for each repository
func (collection *RemoteRepoCollection) ForEach(handler func(*RemoteRepo)) { func (collection *RemoteRepoCollection) ForEach(handler func(*RemoteRepo)) {
for _, r := range collection.list { for _, r := range collection.list {
+11
View File
@@ -147,7 +147,18 @@ func (s *RemoteRepoCollectionSuite) TestAddByName(c *C) {
r, err = collection.ByName("yandex") r, err = collection.ByName("yandex")
c.Assert(err, IsNil) c.Assert(err, IsNil)
c.Assert(r.String(), Equals, repo.String()) c.Assert(r.String(), Equals, repo.String())
}
func (s *RemoteRepoCollectionSuite) TestByUUID(c *C) {
r, err := s.collection.ByUUID("some-uuid")
c.Assert(err, ErrorMatches, "*.not found")
repo, _ := NewRemoteRepo("yandex", "http://mirror.yandex.ru/debian/", "squeeze", []string{"main"}, []string{})
c.Assert(s.collection.Add(repo), IsNil)
r, err = s.collection.ByUUID(repo.UUID)
c.Assert(err, IsNil)
c.Assert(r.String(), Equals, repo.String())
} }
func (s *RemoteRepoCollectionSuite) TestUpdateLoadComplete(c *C) { func (s *RemoteRepoCollectionSuite) TestUpdateLoadComplete(c *C) {