diff --git a/pkg/static/login.js b/pkg/static/login.js index 3dd37835d2c..605e2d56cb0 100644 --- a/pkg/static/login.js +++ b/pkg/static/login.js @@ -1036,6 +1036,8 @@ function debug(...args) { } } else if (xhr.status == 403) { login_failure(_(decodeURIComponent(xhr.statusText)) || _("Permission denied")); + } else if (xhr.status == 500 && xhr.statusText.indexOf("no-cockpit") > -1) { + login_failure(format(_("A compatible version of Cockpit is not installed on $0."), login_machine || "localhost")); } else if (xhr.statusText) { fatal(decodeURIComponent(xhr.statusText)); } else { diff --git a/test/verify/check-loopback b/test/verify/check-loopback index fa106b24d0f..5dab47ac495 100755 --- a/test/verify/check-loopback +++ b/test/verify/check-loopback @@ -44,8 +44,7 @@ class TestLoopback(testlib.MachineCase): b.set_val('#login-user-input', "admin") b.set_val('#login-password-input', "foobar") b.click('#login-button') - b.wait_visible('#login-fatal') - self.assertIn("no-cockpit", b.text('#login-fatal')) + b.wait_text("#login-error-message", "A compatible version of Cockpit is not installed on localhost.") m.disconnect() self.restore_dir("/etc/ssh", restart_unit=self.sshd_service) @@ -53,8 +52,6 @@ class TestLoopback(testlib.MachineCase): m.execute(self.restart_sshd) m.wait_execute() - b.reload() - b.wait_visible("#login") b.set_val('#login-user-input', "admin") b.set_val('#login-password-input', "foobar") b.click('#login-button')