Author: croberts Date: 2012-12-11 19:07:19 +0000 (Tue, 11 Dec 2012) New Revision: 5581
Added: branches/elephant/cumin/python/cumin/gridhadoop/datanode.py Log: the lost refactoring
Added: branches/elephant/cumin/python/cumin/gridhadoop/datanode.py =================================================================== --- branches/elephant/cumin/python/cumin/gridhadoop/datanode.py (rev 0) +++ branches/elephant/cumin/python/cumin/gridhadoop/datanode.py 2012-12-11 19:07:19 UTC (rev 5581) @@ -0,0 +1,83 @@ +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 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 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 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" \ No newline at end of file
Property changes on: branches/elephant/cumin/python/cumin/gridhadoop/datanode.py ___________________________________________________________________ Added: svn:mime-type + text/plain
cumin-developers@lists.fedorahosted.org