Use app.driver.Stat for registry health check
`app.driver.List` on `"/"` is very expensive if registry contains significant amount of images. And the result isn't used anyways. In most (if not all) storage drivers, `Stat` has a cheaper implementation, so use it instead to achieve the same goal. Signed-off-by: yixi zhang <yixi@memsql.com>master
							parent
							
								
									2d500932f2
								
							
						
					
					
						commit
						8e915d69f4
					
				|  | @ -345,7 +345,7 @@ func (app *App) RegisterHealthChecks(healthRegistries ...*health.Registry) { | |||
| 		} | ||||
| 
 | ||||
| 		storageDriverCheck := func() error { | ||||
| 			_, err := app.driver.List(app, "/") // "/" should always exist
 | ||||
| 			_, err := app.driver.Stat(app, "/") // "/" should always exist
 | ||||
| 			return err                          // any error will be treated as failure
 | ||||
| 		} | ||||
| 
 | ||||
|  |  | |||
|  | @ -137,7 +137,7 @@ func (base *Base) Stat(ctx context.Context, path string) (storagedriver.FileInfo | |||
| 	ctx, done := context.WithTrace(ctx) | ||||
| 	defer done("%s.Stat(%q)", base.Name(), path) | ||||
| 
 | ||||
| 	if !storagedriver.PathRegexp.MatchString(path) { | ||||
| 	if !storagedriver.PathRegexp.MatchString(path) && path != "/" { | ||||
| 		return nil, storagedriver.InvalidPathError{Path: path, DriverName: base.StorageDriver.Name()} | ||||
| 	} | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue