Module: check_mk
Branch: master
Commit: 9b143f63ecfa8ab8b47435d39ab68bdd8a5583e8
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=9b143f63ecfa8a…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Fri Jan 20 11:29:47 2012 +0100
Improved wato replication
* Replication: Can now handle replication sites which use the form based auth
* Replication: Added option to ignore problems with the ssl certificates used in ssl secured replications
---
ChangeLog | 3 +++
web/htdocs/login.py | 1 +
web/htdocs/wato.py | 17 ++++++++++++++---
3 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 4dcb6e0..3f17220 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -59,6 +59,9 @@
* Snapshot/Factory Reset is possible even with a broken config
* Added error messages to user edit dialog to prevent notification problems
caused by incomplete configuration
+ * Replication: Can now handle replication sites which use the form based auth
+ * Replication: Added option to ignore problems with the ssl certificates
+ used in ssl secured replications
* FIX: Fixed missing folders in "move to" dropdown fields
* FIX: Fixed "move to target folders" after CSV import
* FIX: Fixed problem with duplicate extra_buttons when using the i18n of multiisite
diff --git a/web/htdocs/login.py b/web/htdocs/login.py
index 0f74f53..774418a 100644
--- a/web/htdocs/login.py
+++ b/web/htdocs/login.py
@@ -146,6 +146,7 @@ def do_login():
# handle the sent login form
err = None
if html.var('_login'):
+ html.write('xxxxx')
try:
username = html.var('_username', '')
if username == '':
diff --git a/web/htdocs/wato.py b/web/htdocs/wato.py
index c7a2c33..86f835b 100644
--- a/web/htdocs/wato.py
+++ b/web/htdocs/wato.py
@@ -5486,6 +5486,8 @@ def mode_edit_site(phase):
# Persist
new_site["persist"] = html.get_checkbox("persist")
+ # Handle the insecure replication flag
+ new_site["insecure"] = html.get_checkbox("insecure")
# Status host
sh_site = html.var("sh_site")
@@ -5641,7 +5643,7 @@ def mode_edit_site(phase):
# Persistent connections
html.write("<tr><td class=legend>")
- html.write(_("<i>If you enable persistent connections then Multisite will try to keep open "
+ html.write(_("Persistent Connection<br><i>If you enable persistent connections then Multisite will try to keep open "
"the connection to the remote sites. This brings a great speed up in high-latency "
"situations but locks a number of threads in the Livestatus module of the target site. "))
html.write("</td><td class=content>")
@@ -5711,6 +5713,10 @@ def mode_edit_site(phase):
"that URL will be fetched by the Apache server of the local "
"site itself, whilst the URL-Prefix is used by your local Browser.")))
html.text_input("multisiteurl", site.get("multisiteurl", ""), size=60)
+ html.checkbox("insecure", site.get("insecure", False))
+ html.write(_('Ignore SSL certificate errors<br>'
+ '<i>This might be needed to make the synchronization accept problems with '
+ 'SSL certificates when using an SSL secured connection.</i>'))
html.write("</td></tr>")
html.write("<tr><td colspan=2 class=buttons>")
html.button("save", _("Save"))
@@ -5785,7 +5791,10 @@ def do_site_login(site_id, name, password):
raise MKUserError("_passwd",
_("Please specify your password."))
- o = open_url(site["multisiteurl"] + "automation_login.py", name, password)
+ # Trying basic auth AND form based auth to ensure the site login works
+ o = open_url(site["multisiteurl"] + 'automation_login.py?_login=1'
+ '&_username=%s&_password=%s&_origtarget=automation_login.py' %
+ (name, password), name, password)
response = o.read()
try:
return eval(response)
@@ -6086,7 +6095,9 @@ def push_snapshot_to_site(site, do_restart):
# you know a better method for uploading, without the use of external
# programs...
# -s -S: Disable progress meter but enable error messages
- response_text = os.popen("curl -s -S -F snapshot=@%s '%s'" % (sync_snapshot_file, url)).read()
+ insecure = site.get('insecure', False) and ' --insecure' or ''
+ response_text = os.popen("curl -s -S%s -F snapshot=@%s '%s' 2>&1" %
+ (insecure, sync_snapshot_file, url)).read()
try:
response = eval(response_text)
return response
Module: check_mk
Branch: master
Commit: 118f15eabd93792e033a2e2fef30aff0b8d77d04
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=118f15eabd9379…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Fri Jan 20 10:04:49 2012 +0100
Checkboxes visualize user input errors now
---
web/htdocs/htmllib.py | 4 ++--
web/htdocs/pages.css | 13 ++++++++++++-
2 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/web/htdocs/htmllib.py b/web/htdocs/htmllib.py
index d6b78d5..58399cd 100644
--- a/web/htdocs/htmllib.py
+++ b/web/htdocs/htmllib.py
@@ -517,7 +517,7 @@ class html:
add_attr = [] # do not use [] as default element, it will be a global variable!
error = self.user_errors.get(varname)
if error:
- html = "<x class=inputerror>"
+ self.write("<x class=inputerror><span class=checkbox>")
# Problem with checkboxes: The browser will add the variable
# only to the URL if the box is checked. So in order to detect
# wether we should add the default value, we need to detect
@@ -541,7 +541,7 @@ class html:
if label:
self.write('<label for="%s">%s</label>\n' % (id, label))
if error:
- html += "</x>"
+ self.write("</span></x>")
# Get value of checkbox. Return True, False or None. None means
# that no form has been submitted. The problem here is the distintion
diff --git a/web/htdocs/pages.css b/web/htdocs/pages.css
index 81dc880..cec1284 100644
--- a/web/htdocs/pages.css
+++ b/web/htdocs/pages.css
@@ -475,10 +475,21 @@ input.date, input.time {
font-family: monospace;
}
-.inputerror input, .inputerror textarea {
+.inputerror input, .inputerror textarea, span.checkbox {
background-color: #f84;
}
+.inputerror span.checkbox {
+ display: block;
+ float: left;
+ height: 17px;
+ margin-right: 2px;
+}
+
+.inputerror span.checkbox input {
+ margin: 1px;
+}
+
/*-------------------------------------------------------------------------.
| _ _ _ |
| / \ ___| |_(_) ___ _ __ ___ |
Module: check_mk
Branch: master
Commit: 895ba4a007d29a64947733608e661e69d0b78864
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=895ba4a007d29a…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Fri Jan 20 10:06:38 2012 +0100
Added error messages to user edit dialog to prevent notification
problems caused by incomplete configuration
---
ChangeLog | 2 ++
web/htdocs/wato.py | 16 ++++++++++++++++
2 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 08d4744..4dcb6e0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -57,6 +57,8 @@
* Supporting localized tag titles
* Using Username as default value for full names when editing users
* Snapshot/Factory Reset is possible even with a broken config
+ * Added error messages to user edit dialog to prevent notification problems
+ caused by incomplete configuration
* FIX: Fixed missing folders in "move to" dropdown fields
* FIX: Fixed "move to target folders" after CSV import
* FIX: Fixed problem with duplicate extra_buttons when using the i18n of multiisite
diff --git a/web/htdocs/wato.py b/web/htdocs/wato.py
index e177317..c7a2c33 100644
--- a/web/htdocs/wato.py
+++ b/web/htdocs/wato.py
@@ -6597,6 +6597,22 @@ def mode_edit_user(phase):
# Notifications
new_user["notifications_enabled"] = html.get_checkbox("notifications_enabled")
+
+ # Check if user can receive notifications
+ if new_user["notifications_enabled"]:
+ if not new_user["email"]:
+ raise MKUserError("email",
+ _('You have enabled the notifications but missed to configure a '
+ 'Email address. You need to configure your mail address in order '
+ 'to be able to receive emails.'))
+
+ if not new_user["contactgroups"]:
+ raise MKUserError("notifications_enabled",
+ _('You have enabled the notifications but missed to make the '
+ 'user member of at least one contact group. You need to make '
+ 'the user member of a contact group which has hosts assigned '
+ 'in order to be able to receive emails.'))
+
ntp = html.var("notification_period")
if ntp not in timeperiods:
ntp = "24X7"