1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

replace == by HasPrefix for names and improve error message

This commit is contained in:
Victor Vieux 2013-10-17 19:43:25 +00:00
parent 387aeb78fb
commit c4923757f1
3 changed files with 7 additions and 4 deletions

3
api.go
View file

@ -1088,6 +1088,9 @@ func postContainerLink(srv *Server, version float64, w http.ResponseWriter, r *h
} }
if err := srv.runtime.RenameLink(currentName, newName); err != nil { if err := srv.runtime.RenameLink(currentName, newName); err != nil {
if strings.HasSuffix(err.Error(), "name are not unique") {
return fmt.Errorf("Conflict, %s already exists", newName)
}
return err return err
} }

View file

@ -288,7 +288,7 @@ func (db *Database) Delete(name string) error {
return err return err
} }
if _, err := conn.Exec("DELETE FROM edge WHERE parent_id = ? AND name = ?;", parent.id, n); err != nil { if _, err := conn.Exec("DELETE FROM edge WHERE parent_id = ? AND name LIKE ?;", parent.id, n+"%"); err != nil {
return err return err
} }
return nil return nil
@ -356,7 +356,7 @@ func (db *Database) Rename(currentName, newName string) error {
return err return err
} }
rows, err := conn.Exec("UPDATE edge SET name = ? WHERE parent_id = ? AND name = ?;", newEdgeName, parent.id, name) rows, err := conn.Exec("UPDATE edge SET name = ? WHERE parent_id = ? AND name LIKE ?;", newEdgeName, parent.id, name+"%")
if err != nil { if err != nil {
return err return err
} }
@ -433,7 +433,7 @@ func (db *Database) children(conn *sql.DB, name string, depth int) <-chan WalkMe
// Return the entity based on the parent path and name // Return the entity based on the parent path and name
func (db *Database) child(conn *sql.DB, parent *Entity, name string) *Entity { func (db *Database) child(conn *sql.DB, parent *Entity, name string) *Entity {
var id string var id string
if err := conn.QueryRow("SELECT entity_id FROM edge WHERE parent_id = ? AND name = ?;", parent.id, name).Scan(&id); err != nil { if err := conn.QueryRow("SELECT entity_id FROM edge WHERE parent_id = ? AND name LIKE ?;", parent.id, name+"%").Scan(&id); err != nil {
return nil return nil
} }
return &Entity{id} return &Entity{id}

View file

@ -518,7 +518,7 @@ func (runtime *Runtime) RenameLink(oldName, newName string) error {
// This is not rename but adding a new link for the default name // This is not rename but adding a new link for the default name
// Strip the leading '/' // Strip the leading '/'
if entity.ID() == oldName[1:] { if strings.HasPrefix(entity.ID(), oldName[1:]) {
_, err := runtime.containerGraph.Set(newName, entity.ID()) _, err := runtime.containerGraph.Set(newName, entity.ID())
return err return err
} }