diff options
author | Michael DeHaan <mdehaan@redhat.com> | 2008-04-23 14:49:47 -0400 |
---|---|---|
committer | Michael DeHaan <mdehaan@redhat.com> | 2008-04-23 14:49:47 -0400 |
commit | 899a61bdf1a1369c656a9e34513b17f558e864bc (patch) | |
tree | 51b2cf6e02e63c5531e7e5db88f7f0794be51384 /scripts | |
parent | 5cde562c195f159c460cd2ef181a402eadad3bf2 (diff) | |
download | third_party-cobbler-899a61bdf1a1369c656a9e34513b17f558e864bc.tar.gz third_party-cobbler-899a61bdf1a1369c656a9e34513b17f558e864bc.tar.xz third_party-cobbler-899a61bdf1a1369c656a9e34513b17f558e864bc.zip |
Support "fake" query string URLs to support xend's esoteric parser that doesn't like query strings on the kernel options line.
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/services.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/scripts/services.py b/scripts/services.py index b41d6a0..8fcb8f8 100755 --- a/scripts/services.py +++ b/scripts/services.py @@ -33,6 +33,8 @@ def handler(req): """ my_uri = req.uri + + # apache.log_error("cannot load /var/lib/cobbler/web.ss") req.add_common_vars() @@ -42,6 +44,26 @@ def handler(req): form = {} for x in fs.keys(): form[x] = str(fs.get(x,'default')) + + if my_uri.find("?") == -1: + # support fake query strings + # something log /cobbler/web/op/ks/server/foo + # which is needed because of xend parser errors + # not tolerating ";" and also libvirt on 5.1 not + # tolerating "&" (nor "&"). + + tokens = my_uri.split("/") + tokens = tokens[3:] + label = True + field = "" + for t in tokens: + if label: + field = t + apache.log_error("field %s" % field) + else: + form[field] = t + apache.log_error("adding %s to %s" % (field,t)) + label = not label form["REMOTE_ADDR"] = req.subprocess_env.get("REMOTE_ADDR",None) form["REMOTE_MAC"] = req.subprocess_env.get("HTTP_X_RHN_PROVISIONING_MAC_0",None) |