Move initialization code from main.go to the registry package

This makes it easier to embed a registry instance inside another
application.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
This commit is contained in:
Aaron Lehmann 2015-08-20 13:56:36 -07:00
parent 8f5f6a4e59
commit 8dd51d6460
6 changed files with 307 additions and 14 deletions

View file

@ -1038,7 +1038,7 @@ func newTestEnv(t *testing.T, deleteEnabled bool) *testEnv {
func newTestEnvWithConfig(t *testing.T, config *configuration.Configuration) *testEnv {
ctx := context.Background()
app := NewApp(ctx, *config)
app := NewApp(ctx, config)
server := httptest.NewServer(handlers.CombinedLoggingHandler(os.Stderr, app))
builder, err := v2.NewURLBuilderFromString(server.URL + config.HTTP.Prefix)

View file

@ -47,7 +47,7 @@ const defaultCheckInterval = 10 * time.Second
type App struct {
context.Context
Config configuration.Configuration
Config *configuration.Configuration
router *mux.Router // main application router, configured with dispatchers
driver storagedriver.StorageDriver // driver maintains the app global storage driver instance.
@ -69,7 +69,7 @@ type App struct {
// NewApp takes a configuration and returns a configured app, ready to serve
// requests. The app only implements ServeHTTP and can be wrapped in other
// handlers accordingly.
func NewApp(ctx context.Context, configuration configuration.Configuration) *App {
func NewApp(ctx context.Context, configuration *configuration.Configuration) *App {
app := &App{
Config: configuration,
Context: ctx,
@ -117,10 +117,10 @@ func NewApp(ctx context.Context, configuration configuration.Configuration) *App
panic(err)
}
app.configureSecret(&configuration)
app.configureEvents(&configuration)
app.configureRedis(&configuration)
app.configureLogHook(&configuration)
app.configureSecret(configuration)
app.configureEvents(configuration)
app.configureRedis(configuration)
app.configureLogHook(configuration)
options := []storage.RegistryOption{}

View file

@ -31,7 +31,7 @@ func TestAppDispatcher(t *testing.T) {
t.Fatalf("error creating registry: %v", err)
}
app := &App{
Config: configuration.Configuration{},
Config: &configuration.Configuration{},
Context: ctx,
router: v2.Router(),
driver: driver,
@ -164,7 +164,7 @@ func TestNewApp(t *testing.T) {
// Mostly, with this test, given a sane configuration, we are simply
// ensuring that NewApp doesn't panic. We might want to tweak this
// behavior.
app := NewApp(ctx, config)
app := NewApp(ctx, &config)
server := httptest.NewServer(app)
builder, err := v2.NewURLBuilderFromString(server.URL)

View file

@ -23,7 +23,7 @@ func TestFileHealthCheck(t *testing.T) {
}
defer tmpfile.Close()
config := configuration.Configuration{
config := &configuration.Configuration{
Storage: configuration.Storage{
"inmemory": configuration.Parameters{},
},
@ -83,7 +83,7 @@ func TestTCPHealthCheck(t *testing.T) {
}
}()
config := configuration.Configuration{
config := &configuration.Configuration{
Storage: configuration.Storage{
"inmemory": configuration.Parameters{},
},
@ -142,7 +142,7 @@ func TestHTTPHealthCheck(t *testing.T) {
}
}))
config := configuration.Configuration{
config := &configuration.Configuration{
Storage: configuration.Storage{
"inmemory": configuration.Parameters{},
},