rhmessaging commits: r4085 - mgmt/newdata/cumin/python/cumin.
by rhmessaging-commits@lists.jboss.org
Author: eallen
Date: 2010-07-07 10:42:36 -0400 (Wed, 07 Jul 2010)
New Revision: 4085
Modified:
mgmt/newdata/cumin/python/cumin/stat.py
Log:
Fix warning about depricated conversion from float to int when generating png charts
Modified: mgmt/newdata/cumin/python/cumin/stat.py
===================================================================
--- mgmt/newdata/cumin/python/cumin/stat.py 2010-07-07 08:40:50 UTC (rev 4084)
+++ mgmt/newdata/cumin/python/cumin/stat.py 2010-07-07 14:42:36 UTC (rev 4085)
@@ -753,7 +753,7 @@
def get_y_labels(self, absy, intervals, step):
y_step = absy / intervals
labels = list()
- for i in range(0, intervals + 1):
+ for i in range(0, int(intervals) + 1):
label = dict()
if i % step == 0:
13 years, 12 months
rhmessaging commits: r4084 - in store/trunk/java/bdbstore/src: tools/java/org/apache/qpid/server/store/berkeleydb and 1 other directory.
by rhmessaging-commits@lists.jboss.org
Author: rgemmell
Date: 2010-07-07 04:40:50 -0400 (Wed, 07 Jul 2010)
New Revision: 4084
Modified:
store/trunk/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStore.java
store/trunk/java/bdbstore/src/tools/java/org/apache/qpid/server/store/berkeleydb/BDBStoreUpgrade.java
Log:
Inform users of need to use the previous upgrade tool when they supply a v1 store for upgrade.
Modified: store/trunk/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStore.java
===================================================================
--- store/trunk/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStore.java 2010-07-06 19:53:26 UTC (rev 4083)
+++ store/trunk/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStore.java 2010-07-07 08:40:50 UTC (rev 4084)
@@ -356,8 +356,8 @@
if (_version != 1)
{
closeEnvironment();
- throw new DatabaseException("Error: Attempting to start BDBStore version " + _version
- + " with a version 1 store. Please Upgrade");
+ throw new DatabaseException("Error: Unable to load BDBStore as version " + _version
+ + ". Store on disk contains version 1 data.");
}
else // DB is v1 and _version is v1
{
Modified: store/trunk/java/bdbstore/src/tools/java/org/apache/qpid/server/store/berkeleydb/BDBStoreUpgrade.java
===================================================================
--- store/trunk/java/bdbstore/src/tools/java/org/apache/qpid/server/store/berkeleydb/BDBStoreUpgrade.java 2010-07-06 19:53:26 UTC (rev 4083)
+++ store/trunk/java/bdbstore/src/tools/java/org/apache/qpid/server/store/berkeleydb/BDBStoreUpgrade.java 2010-07-07 08:40:50 UTC (rev 4084)
@@ -91,6 +91,11 @@
private boolean _force;
private static final String VERSION = "2.0";
+ private static final String USER_ABORTED_PROCESS = "User aborted process";
+ private static final String EXPECTED_V2_STORE_GOT_V1 =
+ "Error: Unable to load BDBStore as version 2. Store on disk contains version 1 data.";
+ private static final String EXPECTED_V2_STORE_GOT_V3 =
+ "Error: Unable to load BDBStore as version 2. Store on disk contains version 3 data.";
private static final String OPTION_INPUT_SHORT = "i";
private static final String OPTION_INPUT = "input";
private static final String OPTION_OUTPUT_SHORT = "o";
@@ -239,7 +244,7 @@
{
if (input.equalsIgnoreCase(ANSWER_A) || input.equalsIgnoreCase(ANSWER_ABORT))
{
- throw new RuntimeException("User aborted process");
+ throw new RuntimeException(USER_ABORTED_PROCESS);
}
}
}
@@ -784,7 +789,7 @@
}
catch (RuntimeException re)
{
- if (!("User aborted process").equals(re.getMessage()))
+ if (!(USER_ABORTED_PROCESS).equals(re.getMessage()))
{
re.printStackTrace();
_logger.error("Upgrade Failed: " + re.getMessage());
@@ -843,8 +848,12 @@
}
catch (DatabaseException de)
{
- if (de.getMessage().endsWith("Error: Unable to load BDBStore as version 2. Store on disk contains version 3 data."))
+ if (de.getMessage().endsWith(EXPECTED_V2_STORE_GOT_V1))
{
+ System.out.println("Store '" + fromDir + "' is a version 1 store. You must use the previous v1 -> v2 upgrade tool before this update can proceed.");
+ }
+ else if (de.getMessage().endsWith(EXPECTED_V2_STORE_GOT_V3))
+ {
System.out.println("Store '" + fromDir + "' has already been upgraded to version 3.");
}
else
@@ -855,7 +864,7 @@
}
catch (RuntimeException re)
{
- if (!("User aborted process").equals(re.getMessage()))
+ if (!(USER_ABORTED_PROCESS).equals(re.getMessage()))
{
re.printStackTrace();
_logger.error("Upgrade Failed: " + re.getMessage());
13 years, 12 months
rhmessaging commits: r4083 - mgmt/newdata/rosemary/python/rosemary.
by rhmessaging-commits@lists.jboss.org
Author: justi9
Date: 2010-07-06 15:53:26 -0400 (Tue, 06 Jul 2010)
New Revision: 4083
Modified:
mgmt/newdata/rosemary/python/rosemary/model.py
Log:
Teach the name generator to handle acronyms such as 'CPU'
Modified: mgmt/newdata/rosemary/python/rosemary/model.py
===================================================================
--- mgmt/newdata/rosemary/python/rosemary/model.py 2010-07-06 19:19:04 UTC (rev 4082)
+++ mgmt/newdata/rosemary/python/rosemary/model.py 2010-07-06 19:53:26 UTC (rev 4083)
@@ -710,10 +710,26 @@
chars = list()
chars.append(name[0].upper())
- for char in name[1:]:
- if char.isupper():
- chars.append(" ")
+ name = name[1:]
- chars.append(char)
+ prev = None
+ curr = None
+ next = None
+ for i in range(len(name)):
+ curr = name[i]
+
+ try:
+ next = name[i + 1]
+ except IndexError:
+ next = None
+
+ if curr.isupper():
+ if (prev and prev.islower()) or (next and next.islower()):
+ chars.append(" ")
+
+ chars.append(curr)
+
+ prev = curr
+
return "".join(chars)
13 years, 12 months
rhmessaging commits: r4082 - mgmt/newdata/rosemary/python/rosemary.
by rhmessaging-commits@lists.jboss.org
Author: justi9
Date: 2010-07-06 15:19:04 -0400 (Tue, 06 Jul 2010)
New Revision: 4082
Modified:
mgmt/newdata/rosemary/python/rosemary/model.py
Log:
Generate better approximations of human-readable titles
Modified: mgmt/newdata/rosemary/python/rosemary/model.py
===================================================================
--- mgmt/newdata/rosemary/python/rosemary/model.py 2010-07-06 18:32:53 UTC (rev 4081)
+++ mgmt/newdata/rosemary/python/rosemary/model.py 2010-07-06 19:19:04 UTC (rev 4082)
@@ -293,7 +293,7 @@
log.debug("Initializing %s", self)
if not self._title:
- self._title = self._name
+ self._title = generate_title(self._name)
for hdr in self._headers:
hdr.init()
@@ -506,7 +506,7 @@
def init(self):
if not self.title:
- self.title = self.name
+ self.title = generate_title(self.name)
def __repr__(self):
args = (self.__class__.__name__, self.cls._name, self.name)
@@ -703,3 +703,17 @@
class RosemaryNotFound(Exception):
pass
+
+def generate_title(name):
+ assert name
+
+ chars = list()
+ chars.append(name[0].upper())
+
+ for char in name[1:]:
+ if char.isupper():
+ chars.append(" ")
+
+ chars.append(char)
+
+ return "".join(chars)
13 years, 12 months
rhmessaging commits: r4081 - mgmt/newdata/cumin/model.
by rhmessaging-commits@lists.jboss.org
Author: justi9
Date: 2010-07-06 14:32:53 -0400 (Tue, 06 Jul 2010)
New Revision: 4081
Modified:
mgmt/newdata/cumin/model/rosemary.xml
Log:
Set System.nodeName's title to Host; fix some indentation
Modified: mgmt/newdata/cumin/model/rosemary.xml
===================================================================
--- mgmt/newdata/cumin/model/rosemary.xml 2010-07-06 18:25:37 UTC (rev 4080)
+++ mgmt/newdata/cumin/model/rosemary.xml 2010-07-06 18:32:53 UTC (rev 4081)
@@ -133,46 +133,52 @@
<title>Bytes</title>
</statistic>
- <statistic name="msgPersistEnqueues">
- <title>Messages Enqueued</title>
- </statistic>
+ <statistic name="msgPersistEnqueues">
+ <title>Messages Enqueued</title>
+ </statistic>
- <statistic name="msgPersistDequeues">
- <title>Messages Dequeued</title>
- </statistic>
+ <statistic name="msgPersistDequeues">
+ <title>Messages Dequeued</title>
+ </statistic>
- <statistic name="bytePersistEnqueues">
- <title>Bytes Enqueued</title>
- </statistic>
+ <statistic name="bytePersistEnqueues">
+ <title>Bytes Enqueued</title>
+ </statistic>
- <statistic name="bytePersistDequeues">
- <title>Bytes Dequeued</title>
- </statistic>
+ <statistic name="bytePersistDequeues">
+ <title>Bytes Dequeued</title>
+ </statistic>
- <statistic name="msgTotalEnqueues">
- <title>Messages Enqueued</title>
- </statistic>
+ <statistic name="msgTotalEnqueues">
+ <title>Messages Enqueued</title>
+ </statistic>
- <statistic name="msgTotalDequeues">
- <title>Messages Dequeued</title>
- </statistic>
+ <statistic name="msgTotalDequeues">
+ <title>Messages Dequeued</title>
+ </statistic>
- <statistic name="byteTotalEnqueues">
- <title>Bytes Enqueued</title>
- </statistic>
+ <statistic name="byteTotalEnqueues">
+ <title>Bytes Enqueued</title>
+ </statistic>
- <statistic name="byteTotalDequeues">
- <title>Bytes Dequeued</title>
- </statistic>
+ <statistic name="byteTotalDequeues">
+ <title>Bytes Dequeued</title>
+ </statistic>
- <statistic name="unackedMessages">
- <title>Messages Unacked</title>
- </statistic>
+ <statistic name="unackedMessages">
+ <title>Messages Unacked</title>
+ </statistic>
- <statistic name="messageLatency">
- <title>Message Latency</title>
- </statistic>
+ <statistic name="messageLatency">
+ <title>Message Latency</title>
+ </statistic>
</class>
+
+ <class name="System">
+ <property name="nodeName">
+ <title>Host</title>
+ </property>
+ </class>
</package>
<package name="org.apache.qpid.cluster">
13 years, 12 months
rhmessaging commits: r4080 - mgmt/newdata/wooly/python/wooly.
by rhmessaging-commits@lists.jboss.org
Author: justi9
Date: 2010-07-06 14:25:37 -0400 (Tue, 06 Jul 2010)
New Revision: 4080
Modified:
mgmt/newdata/wooly/python/wooly/datatable.py
Log:
Display a maximum of 20 page links
Modified: mgmt/newdata/wooly/python/wooly/datatable.py
===================================================================
--- mgmt/newdata/wooly/python/wooly/datatable.py 2010-07-06 18:16:21 UTC (rev 4079)
+++ mgmt/newdata/wooly/python/wooly/datatable.py 2010-07-06 18:25:37 UTC (rev 4080)
@@ -238,6 +238,8 @@
count = self.table.count.get(session)
limit = self.table.header.limit.get(session)
+ count = min(count, 20 * limit)
+
return [(x[1], x[0] + 1) for x in enumerate(range(0, count, limit))]
def render_title(self, session):
13 years, 12 months
rhmessaging commits: r4079 - mgmt/newdata/cumin/python/cumin/grid.
by rhmessaging-commits@lists.jboss.org
Author: eallen
Date: 2010-07-06 14:16:21 -0400 (Tue, 06 Jul 2010)
New Revision: 4079
Modified:
mgmt/newdata/cumin/python/cumin/grid/limit.py
mgmt/newdata/cumin/python/cumin/grid/limit.strings
mgmt/newdata/cumin/python/cumin/grid/pool.py
Log:
Added Limits tab to Pool view.
Added Limits list to Limits view
Added SetLimit task
Modified: mgmt/newdata/cumin/python/cumin/grid/limit.py
===================================================================
--- mgmt/newdata/cumin/python/cumin/grid/limit.py 2010-07-06 18:13:12 UTC (rev 4078)
+++ mgmt/newdata/cumin/python/cumin/grid/limit.py 2010-07-06 18:16:21 UTC (rev 4079)
@@ -17,20 +17,35 @@
log = logging.getLogger("cumin.limit")
class LimitDataSet(object):
- def __init__(self, app, negotiator):
+ def __init__(self, app, collector):
self.app = app
- self.negotiator = negotiator
+ self.collector = collector
+ def get_negotiator(self, session):
+ collector = self.collector.get(session)
+ cls = self.app.model.com_redhat_grid.Negotiator
+
+ # TODO: why is there more than 1 negotiator?
+ negs = cls.get_selection(session.cursor, Pool=collector.Pool)
+ youngest = negs[0]
+ for neg in negs:
+ if neg._qmf_update_time > youngest._qmf_update_time:
+ youngest = neg
+ negotiator = youngest
+
+ return negotiator
+
def get_items(self, session):
- negotiator = self.negotiator.get(session)
+ negotiator = self.get_negotiator(session)
if not negotiator:
return
limits = self.app.model.get_negotiator_limits(negotiator)
- if limits is None:
+ if limits is None or len(limits) == 0:
return ()
+ #limits = {'a':{'CURRENT': 1, 'MAX': 2}}
keys = limits.keys()
keys.sort()
@@ -41,10 +56,10 @@
for x in keys]
class LimitSet(CuminItemTable):
- def __init__(self, app, name, negotiator):
+ def __init__(self, app, name, collector):
super(LimitSet, self).__init__(app, name)
- self.data = LimitDataSet(app, negotiator)
+ self.data = LimitDataSet(app, collector)
self.defer_enabled = True
@@ -60,32 +75,22 @@
col.align = "right"
self.add_column(col)
- self.limit_count = self.LimitCount(app, "limit_count")
- self.add_child(self.limit_count)
-
def do_get_items(self, session):
return self.data.get_items(session)
def render_title(self, session):
- return self.limit_count.render(session)
+ return "Limits"
- class LimitCount(Widget):
- def __init__(self, app, name):
- super(LimitSet.LimitCount, self).__init__(app, name)
-
- self.defer_enabled = True
- self.update_enabled = True
-
- def render_count(self, session):
- return len(self.parent.get_items(session))
-
class NameColumn(ItemTableColumn):
def render_title(self, session):
return "Name"
def render_content(self, session, data):
limit = data["name"]
- href = self.frame.limit.get_href(session, limit)
+ negotiator = self.parent.data.get_negotiator(session)
+ self.frame.limit.id.set(session, negotiator._id)
+ self.frame.limit.set_limit.form.limit_name.set(session, limit)
+ href = self.frame.limit.set_limit.get_href(session)
return fmt_link(href, limit)
class CurrentColumn(ItemTableColumn):
@@ -100,16 +105,76 @@
def get_default(self, session):
return dict()
-class LimitFrame(CuminFrame):
- def __init__(self, app, name, negotiator):
- super(LimitFrame, self).__init__(app, name)
+class LimitFrame(ObjectFrame):
+ def __init__(self, app, name):
+ cls = app.model.com_redhat_grid.Negotiator
- self.object = Parameter(app, "name")
- self.add_parameter(self.object)
+ super(LimitFrame, self).__init__(app, name, cls)
- self.view = LimitView(app, "view", negotiator, self.object)
- self.add_mode(self.view)
+ self.set_limit = NegotiatorLimitTask(app, self)
+class NegotiatorLimitTask(ObjectTask):
+ def __init__(self, app, frame):
+ super(NegotiatorLimitTask, self).__init__(app, frame)
+
+ self.form = NegotiatorLimitForm(app, self.name, self)
+
+ def get_title(self, session):
+ return "Set Limit"
+
+ def do_enter(self, session, osession):
+ self.form.limit_name.set(session, self.form.limit_name.get(osession))
+
+ def do_invoke(self, invoc, negotiator, limit_name, limit_max):
+ action = QmfCall(self.app)
+ results = action.execute(negotiator, "SetLimit", limit_name, limit_max)
+
+ if results.error:
+ raise results.error
+
+ invoc.status_code = results.status
+ invoc.end()
+
+class NegotiatorLimitForm(ObjectTaskForm):
+ def __init__(self, app, name, task):
+ super(NegotiatorLimitForm, self).__init__(app, name, task)
+
+ self.limit_name = self.LimitName(app, "name")
+ self.add_field(self.limit_name)
+
+ self.limit_max = self.LimitMax(app, "max")
+ self.limit_max.required = True
+ self.add_field(self.limit_max)
+
+ def process_submit(self, session):
+ self.validate(session)
+
+ if not self.errors.get(session):
+ limit_name = self.limit_name.get(session)
+ limit_max = self.limit_max.get(session)
+ negotiator = self.object.get(session)
+
+ self.task.invoke(session, negotiator, limit_name, limit_max)
+ self.task.exit_with_redirect(session)
+
+ class LimitName(StringField):
+ def __init__(self, app, name):
+ super(NegotiatorLimitForm.LimitName, self).__init__(app, name)
+
+ self.input = self.DisabledInput(app, "input")
+ self.replace_child(self.input)
+
+ def render_title(self, session):
+ return "Limit name"
+
+ class DisabledInput(StringInput):
+ # used to override html and css
+ pass
+
+ class LimitMax(IntegerField):
+ def render_title(self, session):
+ return "Max Allowance"
+
class NegotiatorLimitSetForm(CuminForm):
def __init__(self, app, name, task):
super(LimitEdit, self).__init__(app, name)
@@ -151,7 +216,7 @@
self.task.exit_with_redirect(session)
class LimitView(CuminView):
- def __init__(self, app, name, negotiator, limit):
+ def __init__(self, app, name, limit):
super(LimitView, self).__init__(app, name, None)
self.tabs = TabbedModeSet(app, "tabs")
Modified: mgmt/newdata/cumin/python/cumin/grid/limit.strings
===================================================================
--- mgmt/newdata/cumin/python/cumin/grid/limit.strings 2010-07-06 18:13:12 UTC (rev 4078)
+++ mgmt/newdata/cumin/python/cumin/grid/limit.strings 2010-07-06 18:16:21 UTC (rev 4079)
@@ -4,3 +4,29 @@
[LimitCount.deferred_html]
<span id="{id}">Limits <span class="count">(?)</span></span>
+[DisabledInput.css]
+input.disabled {
+ border: 0px;
+ background-color: white;
+ color: black;
+ cursor:default;
+}
+
+[DisabledInput.html]
+<input class="disabled" type="text" name="{name}" id="{name}" value="{value}" tabindex="{tab_index}" size="{size}"/>
+<script type="text/javascript">
+//<![CDATA[
+// Using input attribute disabled="disabled' has the unfortunate side effect of not sending the input value
+// when the form is submitted. So we just leave it enabled and filter out keyboard input with javascript.
+window.addEvent("domready",
+ function () {
+ $("{name}").addEvent("keypress",
+ function (e) {
+ if (!(e.key in {tab:1, left:1, right:1}))
+ if (! (e.key == 'c' && e.control) )
+ new Event(e).stop();
+ } )
+ }
+);
+//]]>
+</script>
Modified: mgmt/newdata/cumin/python/cumin/grid/pool.py
===================================================================
--- mgmt/newdata/cumin/python/cumin/grid/pool.py 2010-07-06 18:13:12 UTC (rev 4078)
+++ mgmt/newdata/cumin/python/cumin/grid/pool.py 2010-07-06 18:16:21 UTC (rev 4079)
@@ -72,8 +72,8 @@
#self.collector = CollectorFrame(app, "coll")
#elf.add_mode(self.collector)
- #self.limit = LimitFrame(app, "limit", negotiator)
- #self.add_mode(self.limit)
+ self.limit = LimitFrame(app, "limit")
+ self.add_mode(self.limit)
overview = PoolOverview(app, "overview", self.object)
self.view.add_tab(overview)
@@ -92,8 +92,8 @@
negotiators = NegotiatorSelector(app, "negotiators", self.object)
self.view.add_tab(negotiators)
- #self.limits = LimitSet(app, "limits", negotiator)
- #self.view.add_tab(self.limits)
+ self.limits = LimitSet(app, "limits", self.object)
+ self.view.add_tab(self.limits)
self.submission_add = SubmissionAdd(app, self)
13 years, 12 months
rhmessaging commits: r4078 - mgmt/newdata/cumin/python/cumin.
by rhmessaging-commits@lists.jboss.org
Author: eallen
Date: 2010-07-06 14:13:12 -0400 (Tue, 06 Jul 2010)
New Revision: 4078
Modified:
mgmt/newdata/cumin/python/cumin/model.py
Log:
Fixup negotiator limits store
Modified: mgmt/newdata/cumin/python/cumin/model.py
===================================================================
--- mgmt/newdata/cumin/python/cumin/model.py 2010-07-06 18:11:09 UTC (rev 4077)
+++ mgmt/newdata/cumin/python/cumin/model.py 2010-07-06 18:13:12 UTC (rev 4078)
@@ -1950,10 +1950,11 @@
def completion(status, data):
self.data = data["Limits"]
- self.negotiator.GetLimits(completion, None)
+ self.model.app.session.call_method \
+ (completion, self.negotiator, "GetLimits", ())
def delete(self):
- del self.model.limits_by_negotiator[self.negotiator]
+ del self.model.limits_by_negotiator[self.negotiator._qmf_agent_id]
super(NegotiatorLimitStore, self).delete()
@@ -1971,6 +1972,6 @@
(completion, self.submission, "GetJobSummaries", ())
def delete(self):
- del self.model.job_summaries_by_submission[self.submission]
+ del self.model.job_summaries_by_submission[self.submission._qmf_agent_id]
super(SubmissionJobSummaryStore, self).delete()
13 years, 12 months
rhmessaging commits: r4077 - mgmt/newdata/cumin/python/cumin/grid.
by rhmessaging-commits@lists.jboss.org
Author: eallen
Date: 2010-07-06 14:11:09 -0400 (Tue, 06 Jul 2010)
New Revision: 4077
Modified:
mgmt/newdata/cumin/python/cumin/grid/negotiator.py
Log:
Changed the order of some negotiator tasks
Modified: mgmt/newdata/cumin/python/cumin/grid/negotiator.py
===================================================================
--- mgmt/newdata/cumin/python/cumin/grid/negotiator.py 2010-07-06 18:09:37 UTC (rev 4076)
+++ mgmt/newdata/cumin/python/cumin/grid/negotiator.py 2010-07-06 18:11:09 UTC (rev 4077)
@@ -24,16 +24,13 @@
super(NegotiatorFrame, self).__init__(app, name, cls)
- #self.start = DaemonStart(app, self, "NEGOTIATOR")
- #self.stop = DaemonStop(app, self, "NEGOTIATOR")
-
self.group_add = NegotiatorGroupAdd(app, self)
self.edit_dynamic_quota = NegotiatorEditDynamicQuota(app, self)
self.edit_static_quota = NegotiatorEditStaticQuota(app, self)
self.edit_prio_factor = NegotiatorEditPrioFactor(app, self)
- self.user_prio_factor = NegotiatorUserPrioFactor(app, self)
self.edit_regroup = NegotiatorEditRegroup(app, self)
+ self.user_prio_factor = NegotiatorUserPrioFactor(app, self)
self.user_regroup = NegotiatorUserRegroup(app, self)
overview = NegotiatorOverview(app, "overview", self.object, self)
13 years, 12 months
rhmessaging commits: r4076 - mgmt/newdata/cumin/python/cumin/grid.
by rhmessaging-commits@lists.jboss.org
Author: eallen
Date: 2010-07-06 14:09:37 -0400 (Tue, 06 Jul 2010)
New Revision: 4076
Modified:
mgmt/newdata/cumin/python/cumin/grid/job.py
Log:
Consolidate some job task classes
Modified: mgmt/newdata/cumin/python/cumin/grid/job.py
===================================================================
--- mgmt/newdata/cumin/python/cumin/grid/job.py 2010-07-06 18:08:09 UTC (rev 4075)
+++ mgmt/newdata/cumin/python/cumin/grid/job.py 2010-07-06 18:09:37 UTC (rev 4076)
@@ -730,10 +730,23 @@
self.form = JobActionForm(app, self.name, self, verb)
+ self.method = None
+
def do_enter(self, session, osession):
job_id = self.frame.job_id.get(osession)
self.form.job_id.set(session, job_id)
+ def do_invoke(self, invoc, scheduler, job_id, reason):
+ assert self.method
+
+ action = QmfCall(self.app)
+ results = action.execute(scheduler, self.method, job_id, reason)
+
+ if results.error:
+ raise results.error
+ invoc.status_code = results.status
+ invoc.end()
+
class JobActionForm(ObjectTaskForm):
def __init__(self, app, name, task, verb):
super(JobActionForm, self).__init__(app, name, task)
@@ -777,32 +790,30 @@
def __init__(self, app, frame):
super(JobHold, self).__init__(app, frame, "held")
+ self.method = "HoldJob"
+
def get_title(self, session):
return "Hold Job"
- def do_invoke(self, invoc, scheduler, job_id, reason):
- self.qmf_call(invoc, scheduler, "HoldJob", job_id, reason)
class JobRelease(JobAction):
def __init__(self, app, frame):
super(JobRelease, self).__init__(app, frame, "held")
+ self.method = "ReleaseJob"
+
def get_title(self, session):
return "Release Job"
- def do_invoke(self, invoc, scheduler, job_id, reason):
- self.qmf_call(invoc, scheduler, "ReleaseJob", job_id, reason)
-
class JobRemove(JobAction):
def __init__(self, app, frame):
super(JobRemove, self).__init__(app, frame, "removed")
+ self.method = "RemoveJob"
+
def get_title(self, session):
return "Remove Job"
- def do_invoke(self, invoc, scheduler, job_id, reason):
- self.qmf_call(invoc, scheduler, "RemoveJob", job_id, reason)
-
class JobSetAttribute(ObjectTask):
def get_title(self, session):
pass
13 years, 12 months