Author: croberts
Date: 2012-12-11 18:59:05 +0000 (Tue, 11 Dec 2012)
New Revision: 5580
Added:
branches/elephant/cumin/python/cumin/gridhadoop/jobtracker.py
branches/elephant/cumin/python/cumin/gridhadoop/namenode.py
branches/elephant/cumin/python/cumin/gridhadoop/tasktracker.py
Modified:
branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py
branches/elephant/cumin/python/cumin/gridhadoop/main.py
Log:
Refactoring gridhadoop module so that each entity type has its own file. More grid-like
that way.
Modified: branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py
===================================================================
--- branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py 2012-12-11 18:58:11 UTC (rev
5579)
+++ branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py 2012-12-11 18:59:05 UTC (rev
5580)
@@ -3,16 +3,10 @@
from cumin.objectselector import ObjectSelector, ObjectLinkColumn, ObjectTable,\
ObjectTableColumn, ObjectQmfTable, ObjectQmfSelectorTable, ObjectSelectorTaskForm,
ObjectSelectorTask
from cumin.objectframe import ObjectFrame, ObjectTaskForm
-from cumin.stat import StatSet, StatFlashChart
-from cumin.formats import fmt_bytes, fmt_datetime
-from cumin.model import CuminStatistic
-from cumin.parameters import RosemaryObjectParameter
-from cumin.sqladapter import ObjectSqlAdapter, ObjectSqlField
from cumin.util import *
from cumin.qmfadapter import ObjectQmfAdapter
from cumin.task import Task, TaskLink
-from sage.wallaby.wallabyoperations import WallabyOperations, WBTypes
from sage.util import MethodResult
from wooly import Session, Widget
@@ -21,103 +15,6 @@
strings = StringCatalog(__file__)
-class NameNodeSelector(ObjectSelector):
- def __init__(self, app, name):
- cls = app.model.com_redhat_cumin_grid_hadoop.NameNode
-
- super(NameNodeSelector, self).__init__(app, name, cls)
-
- self.add_search_filter(self.table.loc_col)
- self.table.adapter = HadoopAdapter(app, cls, None)
-
- task = NameNodeCreate(app)
- link = TaskLink(app, "nameNode_create", task)
- self.links.add_child(link)
-
- NameNodeDelete(app, self, "nodeName_delete")
-
- self.enable_csv_export()
-
- def create_table(self, app, name, cls):
- return NameNodeTable(app, name, cls)
-
- def render_title(self, session):
- return "HDFS Name nodes"
-
- def get_qmf_results(self, session):
- values = self.get_data_values(session)
- return self.table.adapter.get_sage_results(values)
-
-class DataNodeSelector(ObjectSelector):
- def __init__(self, app, name):
- cls = app.model.com_redhat_cumin_grid_hadoop.DataNode
-
- super(DataNodeSelector, self).__init__(app, name, cls)
-
- self.add_search_filter(self.table.nn_col)
- self.table.adapter = HadoopAdapter(app, cls, None)
-
- DataNodeDelete(app, self, "dataNode_delete")
-
- self.enable_csv_export()
-
- def create_table(self, app, name, cls):
- return DataNodeTable(app, name, cls)
-
- def render_title(self, session):
- return "HDFS data nodes"
-
- def get_qmf_results(self, session):
- values = self.get_data_values(session)
- return self.table.adapter.get_sage_results(values)
-
-class TaskTrackerSelector(ObjectSelector):
- def __init__(self, app, name):
- cls = app.model.com_redhat_cumin_grid_hadoop.TaskTracker
-
- super(TaskTrackerSelector, self).__init__(app, name, cls)
-
- self.add_search_filter(self.table.jt_col)
- self.table.adapter = HadoopAdapter(app, cls, None)
-
- TaskTrackerDelete(app, self, "taskTracker_delete")
-
- self.enable_csv_export()
-
- def create_table(self, app, name, cls):
- return TaskTrackerTable(app, name, cls)
-
- def render_title(self, session):
- return "Hadoop task trackers"
-
- def get_qmf_results(self, session):
- values = self.get_data_values(session)
- return self.table.adapter.get_sage_results(values)
-
-class JobTrackerSelector(ObjectSelector):
- def __init__(self, app, name):
- cls = app.model.com_redhat_cumin_grid_hadoop.JobTracker
-
- super(JobTrackerSelector, self).__init__(app, name, cls)
-
- self.add_search_filter(self.table.loc_col)
- self.table.adapter = HadoopAdapter(app, cls, None)
-
- JobTrackerDelete(app, self, "jobTracker_delete")
-
- self.enable_csv_export()
-
- def create_table(self, app, name, cls):
- return JobTrackerTable(app, name, cls)
-
- def render_title(self, session):
- return "Hadoop job trackers"
-
- def get_qmf_results(self, session):
- values = self.get_data_values(session)
- return self.table.adapter.get_sage_results(values)
-
-
class HadoopAdapter(ObjectQmfAdapter):
def __init__(self, app, cls, remoteDataMethod):
super(HadoopAdapter, self).__init__(app, cls)
@@ -173,86 +70,6 @@
val = record["ID"]
field_data.append(val)
return field_data
-
-
-class NameNodeTable(ObjectQmfSelectorTable):
- def __init__(self, app, name, cls):
- super(NameNodeTable, self).__init__(app, name, cls)
-
- self.loc_col = ObjectTableColumn(app, "loccol", cls.Location)
- self.loc_col.width = "20%"
- self.id_col = ObjectTableColumn(app, "idcol", cls.ID)
- self.sub_col = ObjectTableColumn(app, "sub", cls.Submitted)
- self.status_col = ObjectTableColumn(app, "statuscol", cls.Status)
- self.uptime_col = ObjectTableColumn(app, "uptimecol", cls.Uptime)
- self.owner_col = ObjectTableColumn(app, "ownercol", cls.Owner)
-
- self.add_column(self.loc_col)
- self.add_column(self.id_col)
- self.add_column(self.sub_col)
- self.add_column(self.status_col)
- self.add_column(self.uptime_col)
- self.add_column(self.owner_col)
-
-
-class DataNodeTable(ObjectQmfSelectorTable):
- def __init__(self, app, name, cls):
- super(DataNodeTable, self).__init__(app, name, cls)
-
- self.nn_col = ObjectTableColumn(app, "nncol", cls.NameNode)
- self.nn_col.width="20%"
- self.id_col = ObjectTableColumn(app, "idcol", cls.ID)
- self.sub_col = ObjectTableColumn(app, "sub", cls.Submitted)
- self.status_col = ObjectTableColumn(app, "statuscol", cls.Status)
- self.uptime_col = ObjectTableColumn(app, "uptimecol", cls.Uptime)
- self.owner_col = ObjectTableColumn(app, "ownercol", cls.Owner)
-
- self.add_column(self.nn_col)
- self.add_column(self.id_col)
- self.add_column(self.sub_col)
- self.add_column(self.status_col)
- self.add_column(self.uptime_col)
- self.add_column(self.owner_col)
-
-
-class TaskTrackerTable(ObjectQmfSelectorTable):
- def __init__(self, app, name, cls):
- super(TaskTrackerTable, self).__init__(app, name, cls)
-
- self.jt_col = ObjectTableColumn(app, "jtcol", cls.JobTracker)
- self.jt_col.width="20%"
- self.id_col = ObjectTableColumn(app, "idcol", cls.ID)
- self.sub_col = ObjectTableColumn(app, "sub", cls.Submitted)
- self.status_col = ObjectTableColumn(app, "statuscol", cls.Status)
- self.uptime_col = ObjectTableColumn(app, "uptimecol", cls.Uptime)
- self.owner_col = ObjectTableColumn(app, "ownercol", cls.Owner)
-
- self.add_column(self.jt_col)
- self.add_column(self.id_col)
- self.add_column(self.sub_col)
- self.add_column(self.status_col)
- self.add_column(self.uptime_col)
- self.add_column(self.owner_col)
-
-
-class JobTrackerTable(ObjectQmfSelectorTable):
- def __init__(self, app, name, cls):
- super(JobTrackerTable, self).__init__(app, name, cls)
-
- self.loc_col = ObjectTableColumn(app, "loccol", cls.Location)
- self.loc_col.width = "20%"
- self.id_col = ObjectTableColumn(app, "idcol", cls.ID)
- self.sub_col = ObjectTableColumn(app, "sub", cls.Submitted)
- self.status_col = ObjectTableColumn(app, "statuscol", cls.Status)
- self.uptime_col = ObjectTableColumn(app, "uptimecol", cls.Uptime)
- self.owner_col = ObjectTableColumn(app, "ownercol", cls.Owner)
-
- self.add_column(self.loc_col)
- self.add_column(self.id_col)
- self.add_column(self.sub_col)
- self.add_column(self.status_col)
- self.add_column(self.uptime_col)
- self.add_column(self.owner_col)
class HadoopNodeDeleteForm(ObjectSelectorTaskForm):
def __init__(self, app, name, task, cls):
@@ -266,165 +83,5 @@
def render_form_class(self, session):
return " ".join((super(HadoopNodeDeleteForm,
self).render_form_class(session), "mform"))
-
-
-class NameNodeCreate(Task):
- def __init__(self, app):
- super(NameNodeCreate, self).__init__(app)
- cls = app.model.com_redhat_cumin_grid_hadoop.NameNode
-
- self.form = NameNodeCreateForm(app, self.name, self, cls)
- self.invoc = None
-
- def get_title(self, session, x):
- return "Create a name node"
-
-class NameNodeCreateForm(ObjectTaskForm):
- def __init__(self, app, name, task, cls):
- super(NameNodeCreateForm, self).__init__(app, name, task, cls)
-
- self.count = self.CountField(app, "count")
- self.add_field(self.count)
-
- def process_display(self, session):
- self.scheduler.validate(session)
-
- def process_submit(self, session):
- self.validate(session)
-
- url = self.return_url.get(session)
- self.page.redirect.set(session, url)
-
- if not self.errors.get(session):
- count = self.count.get(session)
-
- print "Here is where I'd do the work and start up %s name
nodes" % count
- self.task.exit_with_redirect(session, url)
-
- def render_title(self, session):
- return "Create a name node"
- class CountField(StringField):
- def render_title(self, session):
- return "Number of name nodes to start"
-
-
-class NameNodeDelete(ObjectSelectorTask):
- def __init__(self, app, selector, name):
- super(NameNodeDelete, self).__init__(app, selector)
- cls = app.model.com_redhat_cumin_grid_hadoop.NameNode
-
- self.form = NameNodeDeleteForm(app, self.name, self, cls)
- self.invoc = None
-
- def get_title(self, session):
- return "Remove name nodes"
-
- def get_item_content(self, session, item):
- return xml_escape(item)
-
-
-class NameNodeDeleteForm(HadoopNodeDeleteForm):
- def process_submit(self, session):
- name_nodes_to_kill = self.selection.get(session)
-
- if not self.errors.get(session):
- print "Here is where I'd make a call to kill some name nodes
[%s]" % name_nodes_to_kill
- #self.task.invoke(session, name_nodes_to_kill)
-
- url = self.return_url.get(session)
- self.page.redirect.set(session, url)
-
- def render_title(self, session):
- return "Remove name nodes"
-
-
-class DataNodeDelete(ObjectSelectorTask):
- def __init__(self, app, selector, name):
- super(DataNodeDelete, self).__init__(app, selector)
- cls = app.model.com_redhat_cumin_grid_hadoop.DataNode
-
- self.form = DataNodeDeleteForm(app, self.name, self, cls)
- self.invoc = None
-
- def get_title(self, session):
- return "Remove data nodes"
-
- def get_item_content(self, session, item):
- return xml_escape(item)
-
-
-class DataNodeDeleteForm(HadoopNodeDeleteForm):
- def process_submit(self, session):
- name_nodes_to_kill = self.selection.get(session)
-
- if not self.errors.get(session):
- print "Here is where I'd make a call to kill some data nodes
[%s]" % name_nodes_to_kill
- #self.task.invoke(session, name_nodes_to_kill)
-
- url = self.return_url.get(session)
- self.page.redirect.set(session, url)
-
- def render_title(self, session):
- return "Remove data nodes"
-
-class JobTrackerDelete(ObjectSelectorTask):
- def __init__(self, app, selector, name):
- super(JobTrackerDelete, self).__init__(app, selector)
- cls = app.model.com_redhat_cumin_grid_hadoop.JobTracker
-
- self.form = JobTrackerDeleteForm(app, self.name, self, cls)
- self.invoc = None
-
- def get_title(self, session):
- return "Remove job trackers"
-
- def get_item_content(self, session, item):
- return xml_escape(item)
-
-
-class JobTrackerDeleteForm(HadoopNodeDeleteForm):
- def process_submit(self, session):
- name_nodes_to_kill = self.selection.get(session)
-
- if not self.errors.get(session):
- print "Here is where I'd make a call to kill some job trackers
[%s]" % name_nodes_to_kill
- #self.task.invoke(session, name_nodes_to_kill)
-
- url = self.return_url.get(session)
- self.page.redirect.set(session, url)
-
- def render_title(self, session):
- return "Remove job trackers"
-
-class TaskTrackerDelete(ObjectSelectorTask):
- def __init__(self, app, selector, name):
- super(TaskTrackerDelete, self).__init__(app, selector)
- cls = app.model.com_redhat_cumin_grid_hadoop.TaskTracker
-
- self.form = TaskTrackerDeleteForm(app, self.name, self, cls)
- self.invoc = None
-
- def get_title(self, session):
- return "Remove task trackers"
-
- def get_item_content(self, session, item):
- return xml_escape(item)
-
-
-class TaskTrackerDeleteForm(HadoopNodeDeleteForm):
- def process_submit(self, session):
- name_nodes_to_kill = self.selection.get(session)
-
- if not self.errors.get(session):
- print "Here is where I'd make a call to kill some task trackers
[%s]" % name_nodes_to_kill
- #self.task.invoke(session, name_nodes_to_kill)
-
- url = self.return_url.get(session)
- self.page.redirect.set(session, url)
-
- def render_title(self, session):
- return "Remove task trackers"
-
-
Added: branches/elephant/cumin/python/cumin/gridhadoop/jobtracker.py
===================================================================
--- branches/elephant/cumin/python/cumin/gridhadoop/jobtracker.py
(rev 0)
+++ branches/elephant/cumin/python/cumin/gridhadoop/jobtracker.py 2012-12-11 18:59:05 UTC
(rev 5580)
@@ -0,0 +1,82 @@
+from cumin.objectselector import ObjectSelector, ObjectLinkColumn, ObjectTable,\
+ ObjectTableColumn, ObjectQmfTable, ObjectQmfSelectorTable, ObjectSelectorTaskForm,
ObjectSelectorTask
+from cumin.objectframe import ObjectFrame, ObjectTaskForm
+from cumin.util import *
+from cumin.qmfadapter import ObjectQmfAdapter
+from cumin.task import Task, TaskLink
+
+from hadoop import *
+
+from sage.util import MethodResult
+
+
+class JobTrackerSelector(ObjectSelector):
+ def __init__(self, app, name):
+ cls = app.model.com_redhat_cumin_grid_hadoop.JobTracker
+
+ super(JobTrackerSelector, self).__init__(app, name, cls)
+
+ self.add_search_filter(self.table.loc_col)
+ self.table.adapter = HadoopAdapter(app, cls, None)
+
+ JobTrackerDelete(app, self, "jobTracker_delete")
+
+ self.enable_csv_export()
+
+ def create_table(self, app, name, cls):
+ return JobTrackerTable(app, name, cls)
+
+ def render_title(self, session):
+ return "Hadoop job trackers"
+
+ def get_qmf_results(self, session):
+ values = self.get_data_values(session)
+ return self.table.adapter.get_sage_results(values)
+
+class JobTrackerTable(ObjectQmfSelectorTable):
+ def __init__(self, app, name, cls):
+ super(JobTrackerTable, self).__init__(app, name, cls)
+
+ self.loc_col = ObjectTableColumn(app, "loccol", cls.Location)
+ self.loc_col.width = "20%"
+ self.id_col = ObjectTableColumn(app, "idcol", cls.ID)
+ self.sub_col = ObjectTableColumn(app, "sub", cls.Submitted)
+ self.status_col = ObjectTableColumn(app, "statuscol", cls.Status)
+ self.uptime_col = ObjectTableColumn(app, "uptimecol", cls.Uptime)
+ self.owner_col = ObjectTableColumn(app, "ownercol", cls.Owner)
+
+ self.add_column(self.loc_col)
+ self.add_column(self.id_col)
+ self.add_column(self.sub_col)
+ self.add_column(self.status_col)
+ self.add_column(self.uptime_col)
+ self.add_column(self.owner_col)
+
+class JobTrackerDelete(ObjectSelectorTask):
+ def __init__(self, app, selector, name):
+ super(JobTrackerDelete, self).__init__(app, selector)
+ cls = app.model.com_redhat_cumin_grid_hadoop.JobTracker
+
+ self.form = JobTrackerDeleteForm(app, self.name, self, cls)
+ self.invoc = None
+
+ def get_title(self, session):
+ return "Remove job trackers"
+
+ def get_item_content(self, session, item):
+ return xml_escape(item)
+
+
+class JobTrackerDeleteForm(HadoopNodeDeleteForm):
+ def process_submit(self, session):
+ name_nodes_to_kill = self.selection.get(session)
+
+ if not self.errors.get(session):
+ print "Here is where I'd make a call to kill some job trackers
[%s]" % name_nodes_to_kill
+ #self.task.invoke(session, name_nodes_to_kill)
+
+ url = self.return_url.get(session)
+ self.page.redirect.set(session, url)
+
+ def render_title(self, session):
+ return "Remove job trackers"
\ No newline at end of file
Property changes on: branches/elephant/cumin/python/cumin/gridhadoop/jobtracker.py
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: branches/elephant/cumin/python/cumin/gridhadoop/main.py
===================================================================
--- branches/elephant/cumin/python/cumin/gridhadoop/main.py 2012-12-11 18:58:11 UTC (rev
5579)
+++ branches/elephant/cumin/python/cumin/gridhadoop/main.py 2012-12-11 18:59:05 UTC (rev
5580)
@@ -6,7 +6,10 @@
from cumin.widgets import *
from cumin.util import *
-from hadoop import *
+from namenode import NameNodeSelector
+from datanode import DataNodeSelector
+from jobtracker import JobTrackerSelector
+from tasktracker import TaskTrackerSelector
strings = StringCatalog(__file__)
Added: branches/elephant/cumin/python/cumin/gridhadoop/namenode.py
===================================================================
--- branches/elephant/cumin/python/cumin/gridhadoop/namenode.py
(rev 0)
+++ branches/elephant/cumin/python/cumin/gridhadoop/namenode.py 2012-12-11 18:59:05 UTC
(rev 5580)
@@ -0,0 +1,129 @@
+from cumin.objectselector import ObjectSelector, ObjectLinkColumn, ObjectTable,\
+ ObjectTableColumn, ObjectQmfTable, ObjectQmfSelectorTable, ObjectSelectorTaskForm,
ObjectSelectorTask
+from cumin.objectframe import ObjectFrame, ObjectTaskForm
+from cumin.util import *
+from cumin.qmfadapter import ObjectQmfAdapter
+from cumin.task import Task, TaskLink
+from wooly.forms import StringField
+
+from hadoop import *
+
+from sage.util import MethodResult
+
+class NameNodeSelector(ObjectSelector):
+ def __init__(self, app, name):
+ cls = app.model.com_redhat_cumin_grid_hadoop.NameNode
+
+ super(NameNodeSelector, self).__init__(app, name, cls)
+
+ self.add_search_filter(self.table.loc_col)
+ self.table.adapter = HadoopAdapter(app, cls, None)
+
+ task = NameNodeCreate(app)
+ link = TaskLink(app, "nameNode_create", task)
+ self.links.add_child(link)
+
+ NameNodeDelete(app, self, "nodeName_delete")
+
+ self.enable_csv_export()
+
+ def create_table(self, app, name, cls):
+ return NameNodeTable(app, name, cls)
+
+ def render_title(self, session):
+ return "HDFS Name nodes"
+
+ def get_qmf_results(self, session):
+ values = self.get_data_values(session)
+ return self.table.adapter.get_sage_results(values)
+
+class NameNodeTable(ObjectQmfSelectorTable):
+ def __init__(self, app, name, cls):
+ super(NameNodeTable, self).__init__(app, name, cls)
+
+ self.loc_col = ObjectTableColumn(app, "loccol", cls.Location)
+ self.loc_col.width = "20%"
+ self.id_col = ObjectTableColumn(app, "idcol", cls.ID)
+ self.sub_col = ObjectTableColumn(app, "sub", cls.Submitted)
+ self.status_col = ObjectTableColumn(app, "statuscol", cls.Status)
+ self.uptime_col = ObjectTableColumn(app, "uptimecol", cls.Uptime)
+ self.owner_col = ObjectTableColumn(app, "ownercol", cls.Owner)
+
+ self.add_column(self.loc_col)
+ self.add_column(self.id_col)
+ self.add_column(self.sub_col)
+ self.add_column(self.status_col)
+ self.add_column(self.uptime_col)
+ self.add_column(self.owner_col)
+
+class NameNodeCreate(Task):
+ def __init__(self, app):
+ super(NameNodeCreate, self).__init__(app)
+ cls = app.model.com_redhat_cumin_grid_hadoop.NameNode
+
+ self.form = NameNodeCreateForm(app, self.name, self, cls)
+ self.invoc = None
+
+ def get_title(self, session, x):
+ return "Create a name node"
+
+
+class NameNodeCreateForm(ObjectTaskForm):
+ def __init__(self, app, name, task, cls):
+ super(NameNodeCreateForm, self).__init__(app, name, task, cls)
+
+ self.count = self.CountField(app, "count")
+ self.add_field(self.count)
+
+ def process_display(self, session):
+ self.scheduler.validate(session)
+
+ def process_submit(self, session):
+ self.validate(session)
+
+ url = self.return_url.get(session)
+ self.page.redirect.set(session, url)
+
+ if not self.errors.get(session):
+ count = self.count.get(session)
+
+ print "Here is where I'd do the work and start up %s name
nodes" % count
+ self.task.exit_with_redirect(session, url)
+
+ def render_title(self, session):
+ return "Create a name node"
+
+ class CountField(StringField):
+ def render_title(self, session):
+ return "Number of name nodes to start"
+
+
+class NameNodeDelete(ObjectSelectorTask):
+ def __init__(self, app, selector, name):
+ super(NameNodeDelete, self).__init__(app, selector)
+ cls = app.model.com_redhat_cumin_grid_hadoop.NameNode
+
+ self.form = NameNodeDeleteForm(app, self.name, self, cls)
+ self.invoc = None
+
+ def get_title(self, session):
+ return "Remove name nodes"
+
+ def get_item_content(self, session, item):
+ return xml_escape(item)
+
+
+class NameNodeDeleteForm(HadoopNodeDeleteForm):
+ def process_submit(self, session):
+ name_nodes_to_kill = self.selection.get(session)
+
+ if not self.errors.get(session):
+ print "Here is where I'd make a call to kill some name nodes
[%s]" % name_nodes_to_kill
+ #self.task.invoke(session, name_nodes_to_kill)
+
+ url = self.return_url.get(session)
+ self.page.redirect.set(session, url)
+
+ def render_title(self, session):
+ return "Remove name nodes"
+
\ No newline at end of file
Property changes on: branches/elephant/cumin/python/cumin/gridhadoop/namenode.py
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: branches/elephant/cumin/python/cumin/gridhadoop/tasktracker.py
===================================================================
--- branches/elephant/cumin/python/cumin/gridhadoop/tasktracker.py
(rev 0)
+++ branches/elephant/cumin/python/cumin/gridhadoop/tasktracker.py 2012-12-11 18:59:05 UTC
(rev 5580)
@@ -0,0 +1,82 @@
+from cumin.objectselector import ObjectSelector, ObjectLinkColumn, ObjectTable,\
+ ObjectTableColumn, ObjectQmfTable, ObjectQmfSelectorTable, ObjectSelectorTaskForm,
ObjectSelectorTask
+from cumin.objectframe import ObjectFrame, ObjectTaskForm
+from cumin.util import *
+from cumin.qmfadapter import ObjectQmfAdapter
+from cumin.task import Task, TaskLink
+
+from hadoop import *
+
+from sage.util import MethodResult
+
+
+class TaskTrackerSelector(ObjectSelector):
+ def __init__(self, app, name):
+ cls = app.model.com_redhat_cumin_grid_hadoop.TaskTracker
+
+ super(TaskTrackerSelector, self).__init__(app, name, cls)
+
+ self.add_search_filter(self.table.jt_col)
+ self.table.adapter = HadoopAdapter(app, cls, None)
+
+ TaskTrackerDelete(app, self, "taskTracker_delete")
+
+ self.enable_csv_export()
+
+ def create_table(self, app, name, cls):
+ return TaskTrackerTable(app, name, cls)
+
+ def render_title(self, session):
+ return "Hadoop task trackers"
+
+ def get_qmf_results(self, session):
+ values = self.get_data_values(session)
+ return self.table.adapter.get_sage_results(values)
+
+class TaskTrackerTable(ObjectQmfSelectorTable):
+ def __init__(self, app, name, cls):
+ super(TaskTrackerTable, self).__init__(app, name, cls)
+
+ self.jt_col = ObjectTableColumn(app, "jtcol", cls.JobTracker)
+ self.jt_col.width="20%"
+ self.id_col = ObjectTableColumn(app, "idcol", cls.ID)
+ self.sub_col = ObjectTableColumn(app, "sub", cls.Submitted)
+ self.status_col = ObjectTableColumn(app, "statuscol", cls.Status)
+ self.uptime_col = ObjectTableColumn(app, "uptimecol", cls.Uptime)
+ self.owner_col = ObjectTableColumn(app, "ownercol", cls.Owner)
+
+ self.add_column(self.jt_col)
+ self.add_column(self.id_col)
+ self.add_column(self.sub_col)
+ self.add_column(self.status_col)
+ self.add_column(self.uptime_col)
+ self.add_column(self.owner_col)
+
+class TaskTrackerDelete(ObjectSelectorTask):
+ def __init__(self, app, selector, name):
+ super(TaskTrackerDelete, self).__init__(app, selector)
+ cls = app.model.com_redhat_cumin_grid_hadoop.TaskTracker
+
+ self.form = TaskTrackerDeleteForm(app, self.name, self, cls)
+ self.invoc = None
+
+ def get_title(self, session):
+ return "Remove task trackers"
+
+ def get_item_content(self, session, item):
+ return xml_escape(item)
+
+
+class TaskTrackerDeleteForm(HadoopNodeDeleteForm):
+ def process_submit(self, session):
+ name_nodes_to_kill = self.selection.get(session)
+
+ if not self.errors.get(session):
+ print "Here is where I'd make a call to kill some task trackers
[%s]" % name_nodes_to_kill
+ #self.task.invoke(session, name_nodes_to_kill)
+
+ url = self.return_url.get(session)
+ self.page.redirect.set(session, url)
+
+ def render_title(self, session):
+ return "Remove task trackers"
\ No newline at end of file
Property changes on: branches/elephant/cumin/python/cumin/gridhadoop/tasktracker.py
___________________________________________________________________
Added: svn:mime-type
+ text/plain