mirror of
https://github.com/portainer/portainer.git
synced 2025-07-24 15:59:41 +02:00
Merge branch "refactor-backend-settings" into internal
This commit is contained in:
commit
f4d90306b3
7 changed files with 28 additions and 37 deletions
|
@ -29,8 +29,8 @@ type (
|
|||
}
|
||||
)
|
||||
|
||||
func (a *api) run(configuration *Config) {
|
||||
handler := a.newHandler(configuration)
|
||||
func (a *api) run(settings *Settings) {
|
||||
handler := a.newHandler(settings)
|
||||
if err := http.ListenAndServe(a.bindAddress, handler); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
// Config defines the configuration available under the /config endpoint
|
||||
type Config struct {
|
||||
Swarm bool `json:"swarm"`
|
||||
HiddenLabels pairList `json:"hiddenLabels"`
|
||||
Registries pairList `json:"registries"`
|
||||
}
|
||||
|
||||
// newConfig creates a new Config from command flags
|
||||
func newConfig(swarm bool, labels, registries pairList) Config {
|
||||
return Config{
|
||||
Swarm: swarm,
|
||||
HiddenLabels: labels,
|
||||
Registries: registries,
|
||||
}
|
||||
}
|
||||
|
||||
// configurationHandler defines a handler function used to encode the configuration in JSON
|
||||
func configurationHandler(w http.ResponseWriter, r *http.Request, c *Config) {
|
||||
json.NewEncoder(w).Encode(*c)
|
||||
}
|
|
@ -10,7 +10,7 @@ import (
|
|||
)
|
||||
|
||||
// newHandler creates a new http.Handler with CSRF protection
|
||||
func (a *api) newHandler(c *Config) http.Handler {
|
||||
func (a *api) newHandler(settings *Settings) http.Handler {
|
||||
var (
|
||||
mux = http.NewServeMux()
|
||||
fileHandler = http.FileServer(http.Dir(a.assetPath))
|
||||
|
@ -22,8 +22,8 @@ func (a *api) newHandler(c *Config) http.Handler {
|
|||
mux.Handle("/", fileHandler)
|
||||
mux.Handle("/dockerapi/", http.StripPrefix("/dockerapi", handler))
|
||||
mux.Handle("/ws/exec", websocket.Handler(a.execContainer))
|
||||
mux.HandleFunc("/config", func(w http.ResponseWriter, r *http.Request) {
|
||||
configurationHandler(w, r, c)
|
||||
mux.HandleFunc("/settings", func(w http.ResponseWriter, r *http.Request) {
|
||||
settingsHandler(w, r, settings)
|
||||
})
|
||||
return CSRFHandler(newCSRFWrapper(mux))
|
||||
}
|
||||
|
|
|
@ -34,12 +34,12 @@ func main() {
|
|||
TLSKeyPath: *tlskey,
|
||||
}
|
||||
|
||||
configuration := &Config{
|
||||
settings := &Settings{
|
||||
Swarm: *swarm,
|
||||
HiddenLabels: *labels,
|
||||
Registries: *registries,
|
||||
}
|
||||
|
||||
api := newAPI(apiConfig)
|
||||
api.run(configuration)
|
||||
api.run(settings)
|
||||
}
|
||||
|
|
18
api/settings.go
Normal file
18
api/settings.go
Normal file
|
@ -0,0 +1,18 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
// Settings defines the settings available under the /settings endpoint
|
||||
type Settings struct {
|
||||
Swarm bool `json:"swarm"`
|
||||
HiddenLabels pairList `json:"hiddenLabels"`
|
||||
Registries pairList `json:"registries"`
|
||||
}
|
||||
|
||||
// configurationHandler defines a handler function used to encode the configuration in JSON
|
||||
func settingsHandler(w http.ResponseWriter, r *http.Request, s *Settings) {
|
||||
json.NewEncoder(w).Encode(*s)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue