take handler update

forgot to commit this earlier

Signed-off-by: Manish Tomar <manish.tomar@docker.com>
This commit is contained in:
Manish Tomar 2018-08-02 23:13:37 -07:00
parent 328069bb4d
commit 8f6758278d

View file

@ -58,10 +58,11 @@ type App struct {
Config *configuration.Configuration Config *configuration.Configuration
router *mux.Router // main application router, configured with dispatchers router *mux.Router // main application router, configured with dispatchers
driver storagedriver.StorageDriver // driver maintains the app global storage driver instance. driver storagedriver.StorageDriver // driver maintains the app global storage driver instance.
registry distribution.Namespace // registry is the primary registry backend for the app instance. registry distribution.Namespace // registry is the primary registry backend for the app instance.
accessController auth.AccessController // main access controller for application repoRemover distribution.RepositoryRemover // repoRemover provides ability to delete repos
accessController auth.AccessController // main access controller for application
// httpHost is a parsed representation of the http.host parameter from // httpHost is a parsed representation of the http.host parameter from
// the configuration. Only the Scheme and Host fields are used. // the configuration. Only the Scheme and Host fields are used.
@ -320,6 +321,11 @@ func NewApp(ctx context.Context, config *configuration.Configuration) *App {
app.isCache = true app.isCache = true
dcontext.GetLogger(app).Info("Registry configured as a proxy cache to ", config.Proxy.RemoteURL) dcontext.GetLogger(app).Info("Registry configured as a proxy cache to ", config.Proxy.RemoteURL)
} }
var ok bool
app.repoRemover, ok = app.registry.(distribution.RepositoryRemover)
if !ok {
dcontext.GetLogger(app).Warnf("Registry does not implement RempositoryRemover. Will not be able to delete repos and tags")
}
return app return app
} }
@ -696,8 +702,9 @@ func (app *App) dispatcher(dispatch dispatchFunc) http.Handler {
} }
// assign and decorate the authorized repository with an event bridge. // assign and decorate the authorized repository with an event bridge.
context.Repository = notifications.Listen( context.Repository, context.App.repoRemover = notifications.Listen(
repository, repository,
context.App.repoRemover,
app.eventBridge(context, r)) app.eventBridge(context, r))
context.Repository, err = applyRepoMiddleware(app, context.Repository, app.Config.Middleware["repository"]) context.Repository, err = applyRepoMiddleware(app, context.Repository, app.Config.Middleware["repository"])