[rhmessaging-commits] rhmessaging commits: r3666 - in mgmt/trunk: cumin/python/cumin/account and 3 other directories.
rhmessaging-commits at lists.jboss.org
rhmessaging-commits at lists.jboss.org
Mon Oct 5 11:58:24 EDT 2009
Author: justi9
Date: 2009-10-05 11:58:23 -0400 (Mon, 05 Oct 2009)
New Revision: 3666
Modified:
mgmt/trunk/cumin/python/cumin/account/widgets.py
mgmt/trunk/cumin/python/cumin/grid/model.py
mgmt/trunk/cumin/python/cumin/grid/scheduler.py
mgmt/trunk/cumin/python/cumin/grid/submission.py
mgmt/trunk/cumin/python/cumin/grid/test.py
mgmt/trunk/cumin/python/cumin/messaging/brokerlink.py
mgmt/trunk/cumin/python/cumin/server.py
mgmt/trunk/cumin/python/cumin/widgets.py
mgmt/trunk/wooly/python/wooly/__init__.py
mgmt/trunk/wooly/python/wooly/forms.py
mgmt/trunk/wooly/python/wooly/forms.strings
mgmt/trunk/wooly/python/wooly/server.py
Log:
* Remove old origin machinery; it's no longer used since we serve
forms under a different page
* Remove old validate machinery from forms; now that we have an
'errors' attribute on form, we instead update it in the form
'check' traversal
* Fix some places where we should have been using ScalarInput and
ScalarField
* Introduce a ShowableFieldSet for showing and hiding a set of fields
* Remove some method setters (a deprecated pattern)
* Add new fields to the submission form, and extend the submission
add task
* Choose a default scheduler at random
* Reenable cumin table updates; I had mistakenly disabled it
previously
Modified: mgmt/trunk/cumin/python/cumin/account/widgets.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/account/widgets.py 2009-10-03 21:11:21 UTC (rev 3665)
+++ mgmt/trunk/cumin/python/cumin/account/widgets.py 2009-10-05 15:58:23 UTC (rev 3666)
@@ -171,7 +171,7 @@
crypted = subject.password
if crypt_password(curr, crypted) != crypted:
- error = FormError("The password is incorrect", self.__current)
+ error = FormError("The password is incorrect")
self.errors.add(session, error)
if new0 != new1:
Modified: mgmt/trunk/cumin/python/cumin/grid/model.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/grid/model.py 2009-10-03 21:11:21 UTC (rev 3665)
+++ mgmt/trunk/cumin/python/cumin/grid/model.py 2009-10-05 15:58:23 UTC (rev 3666)
@@ -46,25 +46,44 @@
self.form.pool.set(session, pool)
- def do_invoke(self, completion, session, scheduler,
- description, command, args):
+ def do_invoke(self, completion, session,
+ scheduler, description, executable,
+ args=None,
+ iwd="/tmp",
+ stdin=None,
+ stdout=None,
+ stderr=None,
+ requirements="TRUE",
+ universe="VANILLA"):
if hasattr(session, "user_session"):
- user = session.user_session.subject.name
+ user_name = session.user_session.subject.name
else:
- user = "nobody"
+ user_name = "nobody"
- ad = {"Submission": {"TYPE": self.STRING_TYPE, "VALUE": description},
- "Cmd": {"TYPE": self.STRING_TYPE, "VALUE": command},
- "Args": {"TYPE": self.STRING_TYPE, "VALUE": args},
- "Requirements": {"TYPE": self.EXPR_TYPE, "VALUE": "TRUE"},
- "JobUniverse": {"TYPE": self.INTEGER_TYPE,
- "VALUE": "%s" % (self.UNIVERSE["VANILLA"],)},
- "Iwd": {"TYPE": self.STRING_TYPE, "VALUE": "/tmp"},
- "User": {"TYPE": self.STRING_TYPE,
- "VALUE": "%s@%s" % (user, scheduler.Machine)}}
+ ad = {
+ "Submission": {"TYPE": self.STRING_TYPE,
+ "VALUE": condor_string(description)},
+ "Cmd": {"TYPE": self.STRING_TYPE,
+ "VALUE": condor_string(executable)},
+ "Args": {"TYPE": self.STRING_TYPE,
+ "VALUE": condor_string(args)},
+ "Requirements": {"TYPE": self.EXPR_TYPE, "VALUE": requirements},
+ "JobUniverse": {"TYPE": self.INTEGER_TYPE,
+ "VALUE": str(self.UNIVERSE[universe])},
+ "Iwd": {"TYPE": self.STRING_TYPE,
+ "VALUE": condor_string(iwd)},
+ "Owner": {"TYPE": self.STRING_TYPE,
+ "VALUE": "guest3"}
+ }
+# "User": {"TYPE": self.STRING_TYPE,
+# "VALUE": condor_string("example at example.com")}
+
scheduler.Submit(self.app.model.mint.model, completion, ad, None)
+def condor_string(string):
+ return "\"%s\"" % string
+
class NegotiatorStartTask(QmfTask):
def __init__(self, app, cls):
super(NegotiatorStartTask, self).__init__(app, cls)
Modified: mgmt/trunk/cumin/python/cumin/grid/scheduler.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/grid/scheduler.py 2009-10-03 21:11:21 UTC (rev 3665)
+++ mgmt/trunk/cumin/python/cumin/grid/scheduler.py 2009-10-05 15:58:23 UTC (rev 3666)
@@ -1,5 +1,7 @@
import logging
+from random import choice
+
from wooly import *
from wooly.widgets import *
from wooly.forms import *
@@ -89,34 +91,32 @@
href = self.page.main.inventory.system.get_href(session, sys)
return fmt_link(href, data["system_name"])
-class SchedulerSelectField(FormField):
+class SchedulerSelectField(ScalarField):
def __init__(self, app, name, pool):
- super(SchedulerSelectField, self).__init__(app, name)
+ super(SchedulerSelectField, self).__init__(app, name, None)
self.pool = pool
self.param = SchedulerParameter(app, "param")
self.add_parameter(self.param)
- self.schedulers = self.SchedulerOptions(app, "schedulers", self.param)
- self.add_child(self.schedulers)
+ self.input = self.SchedulerOptions(app, "input", self.param)
+ self.add_child(self.input)
def get(self, session):
scheduler = self.param.get(session)
if not scheduler:
- for item in self.schedulers.get_items(session):
- scheduler = item
- break
+ items = self.input.get_items(session)
+ if items:
+ scheduler = choice(items)
+
return scheduler
def render_title(self, session):
return "Scheduler"
- def render_inputs(self, session):
- return self.schedulers.render(session)
-
class SchedulerOptions(OptionInputSet):
def do_get_items(self, session):
pool = self.parent.pool.get(session)
Modified: mgmt/trunk/cumin/python/cumin/grid/submission.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/grid/submission.py 2009-10-03 21:11:21 UTC (rev 3665)
+++ mgmt/trunk/cumin/python/cumin/grid/submission.py 2009-10-05 15:58:23 UTC (rev 3666)
@@ -1,4 +1,5 @@
import logging
+import shlex
from cumin.widgets import *
from cumin.util import *
@@ -123,45 +124,93 @@
self.task = task
+ self.content = Widget(app, "fields")
+ self.add_child(self.content)
+
+ self.main = FormFieldSet(app, "main")
+ self.content.add_child(self.main)
+
+ self.extra = ShowableFieldSet(app, "extra")
+ self.content.add_child(self.extra)
+
from scheduler import SchedulerSelectField # XXX
self.scheduler = SchedulerSelectField(app, "scheduler", self.pool)
- self.add_field(self.scheduler)
+ self.scheduler.required = True
+ self.main.add_field(self.scheduler)
self.description = self.DescriptionField(app, "description")
self.description.input.size = 50
- self.add_field(self.description)
+ self.description.required = True
+ self.main.add_field(self.description)
self.command = self.CommandField(app, "command")
- self.command.input.size = 50
- self.add_field(self.command)
+ self.command.input.columns = 50
+ self.command.required = True
+ self.main.add_field(self.command)
- self.args = self.ArgumentsField(app, "args")
- self.args.input.size = 50
- self.add_field(self.args)
+ self.requirements = self.RequirementsField(app, "requirements")
+ self.requirements.input.columns = 50
+ self.main.add_field(self.requirements)
- self.inputs = self.InputsField(app, "inputs")
- self.add_field(self.inputs)
+ self.directory = self.WorkingDirectoryField(app, "directory")
+ self.directory.input.size = 50
+ self.extra.add_field(self.directory)
- self.outputs = self.OutputsField(app, "outputs")
- self.add_field(self.outputs)
+ self.stdin = self.StdinField(app, "stdin")
+ self.stdin.input.size = 50
+ self.extra.add_field(self.stdin)
+ self.stdout = self.StdoutField(app, "stdout")
+ self.stdout.input.size = 50
+ self.extra.add_field(self.stdout)
+
+ self.stderr = self.StderrField(app, "stderr")
+ self.stderr.input.size = 50
+ self.extra.add_field(self.stderr)
+
#self.options = self.OptionsField(app, "options")
- #self.add_field(self.options)
+ #self.main.add_field(self.options)
+ self.attributes_ = self.AttributesField(app, "attributes")
+ self.attributes_.input.columns = 50
+ self.extra.add_field(self.attributes_)
+
+ def check(self, session):
+ self.main.check(session)
+ self.extra.check(session)
+
def process_submit(self, session):
self.check(session)
if not self.errors.get(session):
scheduler = self.scheduler.get(session)
-
- assert scheduler
-
description = self.description.get(session)
command = self.command.get(session)
- args = self.args.get(session)
+ requirements = self.requirements.get(session)
+ directory = self.directory.get(session)
+ stdin = self.stdin.get(session)
+ stdout = self.stdout.get(session)
+ stderr = self.stderr.get(session)
- self.task.invoke(session, scheduler, description, command, args)
+ tokens = shlex.split(command)
+
+ executable = tokens[0]
+ args = tokens[1:]
+
+ if not requirements:
+ requirements = "TRUE"
+
+ self.task.invoke(session, scheduler, description,
+ executable,
+ args=args,
+ iwd=directory,
+ stdin=stdin,
+ stdout=stdout,
+ stderr=stderr,
+ requirements=requirements)
+# universe=universe) # XXX
+
self.task.exit_with_redirect(session, scheduler)
def render_title(self, session):
@@ -195,22 +244,30 @@
def render_title(self, session):
return "Description"
- class CommandField(StringField):
+ class CommandField(MultilineStringField):
def render_title(self, session):
return "Command"
- class ArgumentsField(StringField):
+ class RequirementsField(MultilineStringField):
def render_title(self, session):
- return "Arguments"
+ return "Requirements"
- class InputsField(MultilineStringField):
+ class WorkingDirectoryField(StringField):
def render_title(self, session):
- return "Inputs"
+ return "Working directory"
- class OutputsField(MultilineStringField):
+ class StdinField(StringField):
def render_title(self, session):
- return "Outputs"
+ return "Standard input"
+ class StdoutField(StringField):
+ def render_title(self, session):
+ return "Standard output"
+
+ class StderrField(StringField):
+ def render_title(self, session):
+ return "Standard error"
+
class OptionsField(CheckboxField):
def __init__(self, app, name):
super(SubmissionAddForm.OptionsField, self).__init__(app, name)
@@ -228,3 +285,7 @@
class UseCloud(CheckboxFieldOption):
def render_title(self, session):
return "Use cloud"
+
+ class AttributesField(MultilineStringField):
+ def render_title(self, session):
+ return "Extra attributes"
Modified: mgmt/trunk/cumin/python/cumin/grid/test.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/grid/test.py 2009-10-03 21:11:21 UTC (rev 3665)
+++ mgmt/trunk/cumin/python/cumin/grid/test.py 2009-10-05 15:58:23 UTC (rev 3666)
@@ -42,8 +42,7 @@
check_render(ns)
task.form.description.set(ns, session.id)
- task.form.command.set(ns, "/bin/sleep")
- task.form.args.set(ns, "5m")
+ task.form.command.set(ns, "/bin/sleep 5m")
check_submit_form(ns, task.form)
Modified: mgmt/trunk/cumin/python/cumin/messaging/brokerlink.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/messaging/brokerlink.py 2009-10-03 21:11:21 UTC (rev 3665)
+++ mgmt/trunk/cumin/python/cumin/messaging/brokerlink.py 2009-10-05 15:58:23 UTC (rev 3666)
@@ -324,12 +324,12 @@
self.more.add_field(self.help)
self.tag = TextField(app, "tag")
- self.tag.set_required(False)
+ self.tag.required = False
self.tag.set_title("Tag")
self.more.add_field(self.tag)
self.excludes = TextField(app, "excludes")
- self.excludes.set_required(False)
+ self.excludes.required = False
self.excludes.set_title("Excludes")
self.more.add_field(self.excludes)
@@ -445,7 +445,7 @@
def render_title(self, session):
return "Address"
- class PortField(StringField):
+ class PortField(IntegerField):
def __init__(self, app, name):
super(LinkForm.PortField, self).__init__(app, name)
@@ -455,14 +455,6 @@
def render_title(self, session):
return "Port"
- def do_validate(self, session, errors):
- try:
- port = self.get(session)
- if port:
- int(port)
- except:
- errors.append(FormError("Port must be a number"))
-
class UsernameField(StringField):
def render_title(self, session):
return "Username"
Modified: mgmt/trunk/cumin/python/cumin/server.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/server.py 2009-10-03 21:11:21 UTC (rev 3665)
+++ mgmt/trunk/cumin/python/cumin/server.py 2009-10-05 15:58:23 UTC (rev 3666)
@@ -39,14 +39,15 @@
usess = UserSession(self.app, user)
session.set_cookie("session", usess.id)
- page.set_redirect_url(session, session.marshal())
+ page.redirect.set(session, session.marshal())
return False
lpage = self.app.login_page
+
lsess = Session(lpage)
lpage.origin.set(lsess, session.marshal())
- page.set_redirect_url(session, lsess.marshal())
+ page.redirect.set(session, lsess.marshal())
return False
Modified: mgmt/trunk/cumin/python/cumin/widgets.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/widgets.py 2009-10-03 21:11:21 UTC (rev 3665)
+++ mgmt/trunk/cumin/python/cumin/widgets.py 2009-10-05 15:58:23 UTC (rev 3666)
@@ -740,7 +740,7 @@
self.html_class = CuminTable.__name__
- # XXX self.update_enabled = True
+ self.update_enabled = True
self.paginator = Paginator(app, "page")
self.add_child(self.paginator)
@@ -1054,14 +1054,11 @@
def render_title(self, session):
return "Name"
- def set_required(self, required):
- self.required = required
-
def check(self, session):
name = self.get(session)
if name == "" and self.required:
- self.form.errors.add(session, MissingValueError())
+ self.form.errors.add(session, MissingValueError(self))
else:
for char in self.illegal_chars:
if char in name:
@@ -1074,22 +1071,7 @@
break
- def do_validate(self, session, errors):
- name = self.get(session)
-
- if name == "" and self.required:
- errors.append(MissingValueError())
- else:
- for char in self.illegal_chars:
- if char in name:
- msg = "The name contains illegal characters"
- if self.legal_chars_desc:
- msg = msg + "; " + self.legal_chars_desc
-
- errors.append(FormError(msg))
-
- break
-
+# XXX what?
class TextField(NameField):
def __init__(self, app, name):
super(TextField, self).__init__(app, name)
@@ -1141,24 +1123,6 @@
if results.count() > 0:
self.form.errors.add(session, DuplicateValueError())
- # XXX get rid of this
- def do_validate(self, session, errors):
- super(UniqueNameField, self).do_validate(session, errors)
-
- if not errors:
- name = self.get(session)
-
- args = {self.__field: name, }
- results = self.__class.selectBy(**args)
-
- if self.__object:
- object = self.__object.get(session)
- if object:
- results = results.filter(self.__class.q.id != object.id)
-
- if results.count() > 0:
- errors.append(DuplicateValueError())
-
class DuplicateValueError(FormError):
def __init__(self, fld="name"):
super(DuplicateValueError, self).__init__()
Modified: mgmt/trunk/wooly/python/wooly/__init__.py
===================================================================
--- mgmt/trunk/wooly/python/wooly/__init__.py 2009-10-03 21:11:21 UTC (rev 3665)
+++ mgmt/trunk/wooly/python/wooly/__init__.py 2009-10-05 15:58:23 UTC (rev 3666)
@@ -528,8 +528,6 @@
self.page = page
self.trunk = None
- self.origin = None
-
self.values_by_path = dict()
self.cookies_by_name = dict() # name => (newly set?, value, expires)
self.headers_by_name = dict()
@@ -762,32 +760,6 @@
name, value = crumb.split("=", 1)
self.cookies_by_name[name.strip()] = (False, value.strip(), None)
- def set_origin(self, origin):
- self.origin = self.fix_origin(origin)
-
- def fix_origin(self, origin):
- if origin:
- try:
- # clean up refering url
- url = urlsplit(origin)
- query = url.query
- if query:
- namevals = query.split(";")
- newquery = dict()
- for nameval in namevals:
- name, value = nameval.split("=", 1)
- # remove the parent's origin
- if not name.endswith(".origin"):
- newquery[name] = value
-
- origin = ";".join(["%s=%s" % item for item in newquery.iteritems()])
- return "?".join([url.path, origin])
- except:
- pass
-
- def get_origin(self):
- return self.origin
-
def __repr__(self):
return "%s(trunk=%s,app=%s)" % \
(self.__class__.__name__, self.trunk, self.app)
Modified: mgmt/trunk/wooly/python/wooly/forms.py
===================================================================
--- mgmt/trunk/wooly/python/wooly/forms.py 2009-10-03 21:11:21 UTC (rev 3665)
+++ mgmt/trunk/wooly/python/wooly/forms.py 2009-10-05 15:58:23 UTC (rev 3666)
@@ -14,37 +14,11 @@
self.form_params = set()
- self.origin = Parameter(app, "origin")
- self.add_parameter(self.origin)
-
- # XXX need a better name
- def has_errors(self, session):
- return len(self.errors.get(session))
-
def check(self, session):
pass
- def get_origin(self, session):
- origin = self.origin.get(session)
-
- # this will happen if we load the page
- # directly from a saved url and not through
- # a link on another page
- if not origin:
- try:
- branch = session.branch()
- self.frame.view.show(branch) # XXX big dep problem
- origin = branch.marshal()
- except: # we don't have a show_view # XXX ah, weird
- pass
-
- return origin
-
def render_hidden_inputs(self, session, *args):
writer = Writer()
- # remember our roots
- if not self.origin.get(session):
- self.origin.set(session, session.get_origin())
params = set(session.page.get_page_parameters(session))
params.difference_update(self.form_params)
@@ -76,9 +50,8 @@
% (name, value))
class FormError(object):
- def __init__(self, message=None, widget=None):
+ def __init__(self, message):
self.message = message
- self.widget = widget
def get_message(self, session):
return self.message
@@ -139,12 +112,6 @@
def get_default(self, session):
return self.param.get_default(session)
- def set_tab_index(self, tab_index):
- self.tab_index = tab_index
-
- def set_disabled(self, disabled):
- self.disabled = disabled
-
def render_name(self, session, *args):
return self.param.path
@@ -158,8 +125,14 @@
return self.disabled and "disabled=\"disabled\"" or None
class MissingValueError(FormError):
+ def __init__(self, widget):
+ super(MissingValueError, self).__init__(None)
+
+ self.widget = widget
+
def get_message(self, session):
- return "This value is required"
+ title = self.widget.render_title(session)
+ return "The '%s' field must have a value" % title
class EmptyInputError(FormError):
def __init__(self):
@@ -280,14 +253,14 @@
def render_item_checked_attr(self, session, *args):
return None
-class RadioInputSet(FormInput, ItemSet):
+class RadioInputSet(ScalarInput, ItemSet):
def render_item_value(self, session, *args):
return None
def render_item_checked_attr(self, session, *args):
return None
-class OptionInputSet(FormInput, ItemSet):
+class OptionInputSet(ScalarInput, ItemSet):
def render_item_value(self, session, item):
return None
@@ -299,8 +272,11 @@
super(FormField, self).__init__(app, name)
self.css_class = "field"
+
self.form = None
+ self.required = False
+
def init(self):
super(FormField, self).init()
@@ -313,16 +289,6 @@
def check(self, session):
pass
- def validate(self, session):
- errors = self.form.errors.get(session)
-
- self.do_validate(session, errors)
-
- return errors
-
- def do_validate(self, session, errors):
- pass
-
def render_help(self, session, *args):
pass
@@ -345,15 +311,6 @@
for field in self.fields:
field.check(session)
- # XXX get rid of this
- def validate(self, session):
- errors = list()
-
- for field in self.fields:
- errors.extend(field.validate(session))
-
- return errors
-
def render_message(self, session, *args):
pass
@@ -365,6 +322,10 @@
return writer.to_string()
+class ShowableFieldSet(FormFieldSet):
+ def __init__(self, app, name):
+ super(ShowableFieldSet, self).__init__(app, name)
+
class ScalarField(FormField):
def __init__(self, app, name, input):
super(ScalarField, self).__init__(app, name)
@@ -383,6 +344,13 @@
def set(self, session, value):
return self.input.set(session, value)
+ def check(self, session):
+ value = self.get(session)
+
+ if value in ("", None) and self.required:
+ error = MissingValueError(self)
+ self.form.errors.add(session, error)
+
def render_inputs(self, session, *args):
return self.input.render(session)
@@ -414,17 +382,17 @@
self.input = IntegerInput(app, "input")
self.add_child(self.input)
- def do_validate(self, session, errors):
- val = self.get(session)
- try:
- val = int(val)
- except:
- if val:
- error = FormError("A Numeric Value is Expected")
- errors.append(error)
- else:
- self.set(session, self.input.param.get_default(session))
+ def check(self, session):
+ value = self.get(session)
+ if value:
+ try:
+ value = int(value)
+ except:
+ title = self.render_title(session)
+ message = "The '%s' field must be a number" % title
+ self.form.errors.append(FormError(message))
+
# XXX make this use a RadioInputSet instead?
class RadioField(FormField):
def __init__(self, app, name, param):
@@ -530,11 +498,11 @@
self.add_parameter(self.return_url)
self.cancel_button = self.Cancel(app, "cancel")
- self.cancel_button.set_tab_index(201)
+ self.cancel_button.tab_index = 201
self.add_button(self.cancel_button)
self.submit_button = self.Submit(app, "submit")
- self.submit_button.set_tab_index(200)
+ self.submit_button.tab_index = 200
self.add_button(self.submit_button)
def submit(self, session):
@@ -558,7 +526,7 @@
# XXX get rid of this?
def process_return(self, session):
url = self.return_url.get(session)
- self.page.set_redirect_url(session, url)
+ self.page.redirect.set(session, url)
def process_cancel(self, session):
self.process_return(session)
Modified: mgmt/trunk/wooly/python/wooly/forms.strings
===================================================================
--- mgmt/trunk/wooly/python/wooly/forms.strings 2009-10-03 21:11:21 UTC (rev 3665)
+++ mgmt/trunk/wooly/python/wooly/forms.strings 2009-10-05 15:58:23 UTC (rev 3666)
@@ -155,6 +155,41 @@
<tbody>{fields}</tbody>
</table>
+[ShowableFieldSet.css]
+div.ShowableFieldSet > a {
+ margin: 2em 0;
+}
+
+div.ShowableFieldSet > table {
+ display: none;
+}
+
+[ShowableFieldSet.javascript]
+(function() {
+ wooly.toggleFieldDisplay = function(id) {
+ elem = $(id);
+ a = elem.getFirst("a");
+ table = elem.getFirst("table");
+
+ if (table.getStyle("display") === "table") {
+ table.setStyle("display", "none");
+ a.set("text", "Show extra fields");
+ } else {
+ table.setStyle("display", "table");
+ a.set("text", "Hide extra fields");
+ }
+ }
+}())
+
+[ShowableFieldSet.html]
+<div id="{id}" class="ShowableFieldSet">
+ <a onclick="wooly.toggleFieldDisplay('{id}');">Show extra fields</a>
+
+ <table class="FormFieldSet">
+ <tbody>{fields}</tbody>
+ </table>
+</div>
+
[RadioFieldOption.html]
<div>
<input type="radio" name="{name}" id="{id}" value="{value}"
Modified: mgmt/trunk/wooly/python/wooly/server.py
===================================================================
--- mgmt/trunk/wooly/python/wooly/server.py 2009-10-03 21:11:21 UTC (rev 3665)
+++ mgmt/trunk/wooly/python/wooly/server.py 2009-10-05 15:58:23 UTC (rev 3666)
@@ -124,9 +124,6 @@
except KeyError:
pass
- # XXX set this on page instead
- session.set_origin(env.get("HTTP_REFERER"))
-
for key, value in env.iteritems():
if key.startswith("HTTP_"):
name = key[5:].lower()
More information about the rhmessaging-commits
mailing list