Module: check_mk
Branch: master
Commit: e3b136952c5390f590558382c7898f2c2fb143c3
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=e3b136952c5390…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Fri Dec 10 16:36:55 2010 +0100
WATO: Fixed omd mode/site detection
---
ChangeLog | 3 +++
web/htdocs/htmllib.py | 19 ++++++++++++++-----
web/htdocs/wato.py | 5 +++--
3 files changed, 20 insertions(+), 7 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 87316aa..c1189b8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,9 @@
1.1.9i2:
Checks & Agents:
* ibm_imm_health: fix inventory function
+
+ Multisite:
+ * WATO: Fixed omd mode/site detection
1.1.9i1:
INCOMPATIBLE CHANGES:
diff --git a/web/htdocs/htmllib.py b/web/htdocs/htmllib.py
index 333fda4..bd9bdce 100644
--- a/web/htdocs/htmllib.py
+++ b/web/htdocs/htmllib.py
@@ -495,9 +495,18 @@ class html:
if config.debug:
self.write("Booom (%s)" % url)
+ def apache_user(self):
+ return pwd.getpwuid( os.getuid() )[ 0 ]
+
def omd_mode(self):
- apache_user = pwd.getpwuid( os.getuid() )[ 0 ]
- if 'OMD_SITE' in self.req.subprocess_env and 'OMD_MODE' in
self.req.subprocess_env:
- return (apache_user, self.req.subprocess_env['OMD_MODE'],
self.req.subprocess_env['OMD_SITE'])
- else:
- return (apache_user, None, None)
+ # Load mod_python env into regular environment
+ os.environ.update(self.req.subprocess_env)
+
+ omd_mode = None
+ omd_site = None
+ if 'OMD_SITE' in os.environ:
+ omd_site = os.environ['OMD_SITE']
+ omd_mode = 'shared'
+ if omd_site == self.apache_user():
+ omd_mode = 'own'
+ return (omd_mode, omd_site)
diff --git a/web/htdocs/wato.py b/web/htdocs/wato.py
index d84e751..0231071 100644
--- a/web/htdocs/wato.py
+++ b/web/htdocs/wato.py
@@ -493,7 +493,7 @@ def check_mk_automation(command, args=[], indata=""):
commandargs = defaults.check_mk_automation.split()
cmd = commandargs + [ command ] + args
else:
- apache_user, omd_mode, omd_site = html.omd_mode()
+ omd_mode, omd_site = html.omd_mode()
if not omd_mode or omd_mode == 'own':
commandargs = [ 'check_mk', '--automation' ]
cmd = commandargs + [ command ] + args
@@ -513,7 +513,8 @@ def check_mk_automation(command, args=[], indata=""):
"%s ALL = (root) NOPASSWD: %s\ *\n"
"</pre></li>\n"
"<li>Retry this operation</li></ol>\n" %
- (apache_user, apache_user, " ".join(commandargs[1:-1] + [
commandargs[-1].replace(' ', '\ ')])))
+ (html.apache_user(), html.apache_user(), "
".join(commandargs[1:-1] + [ commandargs[-1].replace(' ', '\ ')])))
+
try:
p = subprocess.Popen(cmd,
stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)