EnvManager: auto refresh status page despite errors
Change-Id: I2f148d6152a58176ad84e8d1a941e15460fcbdaa
diff --git a/core/installer/welcome/env-manager-tmpl/status.html b/core/installer/welcome/env-manager-tmpl/status.html
index 87ed86d..eb73c21 100644
--- a/core/installer/welcome/env-manager-tmpl/status.html
+++ b/core/installer/welcome/env-manager-tmpl/status.html
@@ -54,17 +54,22 @@
</div>
<script type="text/javascript">
async function refresh() {
- const resp = await fetch(window.location.href);
- if (resp.ok) {
- var tmp = document.createElement("html");
- tmp.innerHTML = await resp.text();
- if (document.getElementsByTagName("form").length === 0) {
- document.getElementById("contents").innerHTML = tmp.getElementsByClassName("env-status")[0].innerHTML;
- } else {
- document.getElementsByClassName("progress")[0].innerHTML = tmp.getElementsByClassName("progress")[0].innerHTML;
+ try {
+ const resp = await fetch(window.location.href);
+ if (resp.ok) {
+ var tmp = document.createElement("html");
+ tmp.innerHTML = await resp.text();
+ if (document.getElementsByTagName("form").length === 0) {
+ document.getElementById("contents").innerHTML = tmp.getElementsByClassName("env-status")[0].innerHTML;
+ } else {
+ document.getElementsByClassName("progress")[0].innerHTML = tmp.getElementsByClassName("progress")[0].innerHTML;
+ }
}
+ } catch (error) {
+ console.log(error);
+ } finally {
+ setTimeout(refresh, 5000);
}
- setTimeout(refresh, 5000);
}
setTimeout(refresh, 5000);
diff --git a/core/installer/welcome/env.go b/core/installer/welcome/env.go
index 856526d..388cba3 100644
--- a/core/installer/welcome/env.go
+++ b/core/installer/welcome/env.go
@@ -323,6 +323,10 @@
}
func (s *EnvServer) createEnv(w http.ResponseWriter, r *http.Request) {
+ if err := s.repo.Pull(); err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ return
+ }
req, err := extractRequest(r)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)