+function upgrade_check_callback(response_object) {
+ if (response_object.status === 500) {
+ // python crashed
+ upgrade_error("internal server error, please try again later")
+ console.log("upgrade server issue")
+ } else if (response_object.status === 502) {
+ // python part offline
+ upgrade_error("internal server error, please try again later")
+ console.log("upgrade server issue")
+ } else if (response_object.status === 503) {
+ // handle overload
+ upgrade_error("server overloaded, retry in 5 minutes")
+ console.log("server overloaded")
+ setTimeout(upgrade_request, 300000)
+ } else if (response_object.status === 201) {
+ upgrade_info("Setting up ImageBuilder", true)
+ console.log("setting up imagebuilder")
+ setTimeout(upgrade_request, 5000)
+ } else if (response_object.status === 204) {
+ // no upgrades
+ upgrade_info("No upgrades available")
+ } else if (response_object.status === 400) {
+ // bad request
+ console.log(response_object.responseText)
+ response_object_content = JSON.parse(response_object.responseText)
+ upgrade_error(response_object_content.error)
+ } else if (response_object.status === 200) {
+ // new release/upgrades
+ response_content = JSON.parse(response_object.responseText)
+
+ // create simple output to tell user whats going to be upgrade (release/packages)
+ info_output = ""
+ if(response_content.version != undefined) {
+ info_output += "<h3>new upgrade available</h3>"
+ info_output += data.release.version + " to " + response_content.version
+ latest_version = response_content.version;
+ }
+ if(response_content.upgrades != undefined) {
+ info_output += "<h3>package upgrades available</h3>"
+ for (upgrade in response_content.upgrades) {
+ info_output += "<b>" + upgrade + "</b>: " + response_content.upgrades[upgrade][1] + " to " + response_content.upgrades[upgrade][0] + "</br>"
+ }
+ }
+ data.packages = response_content.packages
+ upgrade_info(info_output)
+
+ // directly request image if not in advanced mode
+ if(data.advanced_mode == 1) {
+ document.getElementById("edit_button").style.display = "block";
+ document.getElementById("upgrade_button").value = "request image";
+ document.getElementById("upgrade_button").style.display = "block";
+ document.getElementById("upgrade_button").disabled = false;
+ document.getElementById("upgrade_button").onclick = upgrade_request;
+ } else {
+ upgrade_request();
+ }
+ }
+}