Installer: Handle custom networks/domains
Change-Id: Id88e82a0757365466d92fb31223e21b7199ef940
diff --git a/core/installer/welcome/appmanager.go b/core/installer/welcome/appmanager.go
index a4430b8..2c434c6 100644
--- a/core/installer/welcome/appmanager.go
+++ b/core/installer/welcome/appmanager.go
@@ -93,6 +93,7 @@
func (s *AppManagerServer) Start() error {
r := mux.NewRouter()
r.PathPrefix("/static/").Handler(cachingHandler{http.FileServer(http.FS(staticAssets))})
+ r.HandleFunc("/api/networks", s.handleNetworks).Methods(http.MethodGet)
r.HandleFunc("/api/app-repo", s.handleAppRepo)
r.HandleFunc("/api/app/{slug}/install", s.handleAppInstall).Methods(http.MethodPost)
r.HandleFunc("/api/app/{slug}", s.handleApp).Methods(http.MethodGet)
@@ -116,6 +117,23 @@
Instances []installer.AppInstanceConfig `json:"instances,omitempty"`
}
+func (s *AppManagerServer) handleNetworks(w http.ResponseWriter, r *http.Request) {
+ env, err := s.m.Config()
+ if err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ return
+ }
+ networks, err := s.m.CreateNetworks(env)
+ if err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ return
+ }
+ if err := json.NewEncoder(w).Encode(networks); err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ return
+ }
+}
+
func (s *AppManagerServer) handleAppRepo(w http.ResponseWriter, r *http.Request) {
all, err := s.r.GetAll()
if err != nil {
@@ -414,10 +432,15 @@
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
+ networks, err := s.m.CreateNetworks(global)
+ if err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ return
+ }
data := appPageData{
App: a,
Instances: instances,
- AvailableNetworks: installer.CreateNetworks(global),
+ AvailableNetworks: networks,
CurrentPage: a.Name(),
}
if err := s.tmpl.app.Execute(w, data); err != nil {
@@ -452,12 +475,17 @@
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
+ networks, err := s.m.CreateNetworks(global)
+ if err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ return
+ }
t := s.tasks[slug]
data := appPageData{
App: a,
Instance: instance,
Instances: instances,
- AvailableNetworks: installer.CreateNetworks(global),
+ AvailableNetworks: networks,
Task: t,
CurrentPage: instance.Id,
}