Fixes tests, moves layerhandler in config file
							parent
							
								
									abb901e4ab
								
							
						
					
					
						commit
						cc3c648f44
					
				|  | @ -24,6 +24,9 @@ type Configuration struct { | ||||||
| 	// used to gate requests.
 | 	// used to gate requests.
 | ||||||
| 	Auth Auth `yaml:"auth"` | 	Auth Auth `yaml:"auth"` | ||||||
| 
 | 
 | ||||||
|  | 	// LayerHandler specifies a middleware for serving image layers.
 | ||||||
|  | 	LayerHandler LayerHandler `yaml:"layerhandler"` | ||||||
|  | 
 | ||||||
| 	// Reporting is the configuration for error reporting
 | 	// Reporting is the configuration for error reporting
 | ||||||
| 	Reporting Reporting `yaml:"reporting"` | 	Reporting Reporting `yaml:"reporting"` | ||||||
| 
 | 
 | ||||||
|  | @ -35,9 +38,6 @@ type Configuration struct { | ||||||
| 
 | 
 | ||||||
| 		// Secret specifies the secret key which HMAC tokens are created with.
 | 		// Secret specifies the secret key which HMAC tokens are created with.
 | ||||||
| 		Secret string `yaml:"secret"` | 		Secret string `yaml:"secret"` | ||||||
| 
 |  | ||||||
| 		// LayerHandler specifies a middleware for serving image layers.
 |  | ||||||
| 		LayerHandler LayerHandler `yaml:"layerhandler"` |  | ||||||
| 	} `yaml:"http"` | 	} `yaml:"http"` | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -290,7 +290,11 @@ func (layerHandler *LayerHandler) UnmarshalYAML(unmarshal func(interface{}) erro | ||||||
| // MarshalYAML implements the yaml.Marshaler interface
 | // MarshalYAML implements the yaml.Marshaler interface
 | ||||||
| func (layerHandler LayerHandler) MarshalYAML() (interface{}, error) { | func (layerHandler LayerHandler) MarshalYAML() (interface{}, error) { | ||||||
| 	if layerHandler.Parameters() == nil { | 	if layerHandler.Parameters() == nil { | ||||||
| 		return layerHandler.Type(), nil | 		t := layerHandler.Type() | ||||||
|  | 		if t == "" { | ||||||
|  | 			return nil, nil | ||||||
|  | 		} | ||||||
|  | 		return t, nil | ||||||
| 	} | 	} | ||||||
| 	return map[string]Parameters(layerHandler), nil | 	return map[string]Parameters(layerHandler), nil | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -78,10 +78,10 @@ func NewApp(configuration configuration.Configuration) *App { | ||||||
| 		app.accessController = accessController | 		app.accessController = accessController | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	layerHandlerType := configuration.HTTP.LayerHandler.Type() | 	layerHandlerType := configuration.LayerHandler.Type() | ||||||
| 
 | 
 | ||||||
| 	if layerHandlerType != "" { | 	if layerHandlerType != "" { | ||||||
| 		lh, err := storage.GetLayerHandler(layerHandlerType, configuration.HTTP.LayerHandler.Parameters(), driver) | 		lh, err := storage.GetLayerHandler(layerHandlerType, configuration.LayerHandler.Parameters(), driver) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			panic(fmt.Sprintf("unable to configure layer handler (%s): %v", layerHandlerType, err)) | 			panic(fmt.Sprintf("unable to configure layer handler (%s): %v", layerHandlerType, err)) | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|  | @ -58,10 +58,12 @@ func (lh *layerHandler) GetLayer(w http.ResponseWriter, r *http.Request) { | ||||||
| 	} | 	} | ||||||
| 	defer layer.Close() | 	defer layer.Close() | ||||||
| 
 | 
 | ||||||
| 	handler, err := lh.layerHandler.Resolve(layer) | 	if lh.layerHandler != nil { | ||||||
| 	if handler != nil { | 		handler, _ := lh.layerHandler.Resolve(layer) | ||||||
| 		handler.ServeHTTP(w, r) | 		if handler != nil { | ||||||
| 		return | 			handler.ServeHTTP(w, r) | ||||||
|  | 			return | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	http.ServeContent(w, r, layer.Digest().String(), layer.CreatedAt(), layer) | 	http.ServeContent(w, r, layer.Digest().String(), layer.CreatedAt(), layer) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue