DodoApp: Status page
Implements basic status page, listing all apps and their commit
statuses. Separates web and api endpoints. Unifies API addresses a bit.
Change-Id: I98f9f949a49b60e80e188f7b51ec0e967666e65b
diff --git a/apps/app-runner/main.go b/apps/app-runner/main.go
index dce8ffe..21be651 100644
--- a/apps/app-runner/main.go
+++ b/apps/app-runner/main.go
@@ -21,7 +21,7 @@
var sshKey = flag.String("ssh-key", "", "Private SSH key to access Git repository")
var appDir = flag.String("app-dir", "", "Path to store application repository locally")
var runCfg = flag.String("run-cfg", "", "Run configuration")
-var manager = flag.String("manager", "", "Address of the manager")
+var managerAddr = flag.String("manager-addr", "", "Address of the manager")
type Command struct {
Bin string `json:"bin"`
@@ -98,6 +98,6 @@
if err := json.NewDecoder(r).Decode(&cmds); err != nil {
panic(err)
}
- s := NewServer(*port, *appId, *repoAddr, signer, *appDir, cmds, self, *manager)
+ s := NewServer(*port, *appId, *repoAddr, signer, *appDir, cmds, self, *managerAddr)
s.Start()
}
diff --git a/apps/app-runner/server.go b/apps/app-runner/server.go
index 7985ac6..f3ee563 100644
--- a/apps/app-runner/server.go
+++ b/apps/app-runner/server.go
@@ -24,7 +24,7 @@
appDir string
runCommands []Command
self string
- manager string
+ managerAddr string
}
func NewServer(port int, appId string, repoAddr string, signer ssh.Signer, appDir string, runCommands []Command, self string, manager string) *Server {
@@ -38,7 +38,7 @@
appDir: appDir,
runCommands: runCommands,
self: self,
- manager: manager,
+ managerAddr: manager,
}
}
@@ -120,7 +120,6 @@
}
type pingReq struct {
- AppId string `json:"appId"`
Address string `json:"address"`
}
@@ -131,9 +130,12 @@
s.pingManager()
}()
}()
- buf, err := json.Marshal(pingReq{s.appId, s.self})
+ buf, err := json.Marshal(pingReq{
+ Address: fmt.Sprintf("%s:%d", s.self, s.port),
+ })
if err != nil {
return
}
- http.Post(s.manager, "application/json", bytes.NewReader(buf))
+ registerWorkerAddr := fmt.Sprintf("%s/api/apps/%s/workers", s.managerAddr, s.appId)
+ http.Post(registerWorkerAddr, "application/json", bytes.NewReader(buf))
}