r5583 - branches/elephant/cumin/python/cumin/gridhadoop
by croberts@fedoraproject.org
Author: croberts
Date: 2012-12-11 20:32:57 +0000 (Tue, 11 Dec 2012)
New Revision: 5583
Modified:
branches/elephant/cumin/python/cumin/gridhadoop/tasktracker.py
Log:
Task tracker create form.
Modified: branches/elephant/cumin/python/cumin/gridhadoop/tasktracker.py
===================================================================
--- branches/elephant/cumin/python/cumin/gridhadoop/tasktracker.py 2012-12-11 20:20:21 UTC (rev 5582)
+++ branches/elephant/cumin/python/cumin/gridhadoop/tasktracker.py 2012-12-11 20:32:57 UTC (rev 5583)
@@ -103,8 +103,11 @@
def __init__(self, app, name, task, cls):
super(TaskTrackerCreateForm, self).__init__(app, name, task, cls)
+ self.jobTracker = JobTrackerField(app, "jobtracker")
+ self.add_field(self.jobTracker)
+
self.count = self.CountField(app, "count")
- self.add_field(self.count)
+ self.add_field(self.count)
def process_display(self, session):
self.scheduler.validate(session)
@@ -117,8 +120,9 @@
if not self.errors.get(session):
count = self.count.get(session)
+ job_tracker = self.jobTracker.get(session)
- print "Here is where I'd do the work and start up %s name nodes" % count
+ print "Here is where I'd do the work and start up %s task trackers bound to job tracker %s" % (count, job_tracker)
self.task.exit_with_redirect(session, url)
def render_title(self, session):
@@ -126,4 +130,64 @@
class CountField(StringField):
def render_title(self, session):
- return "Number of task trackers to start"
\ No newline at end of file
+ return "Number of task trackers to start"
+
+
+class JobTrackerField(ScalarField):
+ def __init__(self, app, name):
+ super(JobTrackerField, self).__init__(app, name, None)
+
+ self.param = IntegerParameter(app, "param")
+ self.add_parameter(self.param)
+
+ cls = app.model.com_redhat_cumin_grid_hadoop.JobTracker
+
+ self.input = self.JobTrackerOptions(app, "input", self.param)
+ self.add_child(self.input)
+
+ def get(self, session):
+ return self.input.get(session)
+
+ def validate(self, session):
+ super(JobTrackerField, self).validate(session)
+
+ job_tracker = self.input.get_items(session)
+
+ if not job_tracker:
+ error = FormError("There is no job tracker to bind to")
+ self.form.errors.add(session, error)
+
+ def render_title(self, session):
+ return "Job tracker"
+
+ def render_help(self, session):
+ return "Attach job trackers to this job tracker"
+
+ class JobTrackerOptions(OptionInputSet):
+ def do_process(self, session):
+ cls = self.app.model.com_redhat_cumin_grid_hadoop.JobTracker
+ id = self.param.get(session)
+
+ if id is None:
+ items = self.get_items(session)
+
+ if items:
+ self.param.set(session, items[0])
+
+ super(JobTrackerField.JobTrackerOptions, self).do_process \
+ (session)
+
+ def do_get_items(self, session):
+ cls = self.app.model.com_redhat_cumin_grid_hadoop.JobTracker
+ name_nodes = [98765, 54321]
+ return name_nodes
+
+ def render_item_value(self, session, item):
+ return item
+
+ def render_item_content(self, session, item):
+ return xml_escape(item)
+
+ def render_item_selected_attr(self, session, item):
+ if item == self.param.get(session):
+ return "selected=\"selected\""
\ No newline at end of file
11 years, 4 months
r5582 - branches/elephant/cumin/python/cumin/gridhadoop
by croberts@fedoraproject.org
Author: croberts
Date: 2012-12-11 20:20:21 +0000 (Tue, 11 Dec 2012)
New Revision: 5582
Modified:
branches/elephant/cumin/python/cumin/gridhadoop/datanode.py
branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py
branches/elephant/cumin/python/cumin/gridhadoop/jobtracker.py
branches/elephant/cumin/python/cumin/gridhadoop/namenode.py
branches/elephant/cumin/python/cumin/gridhadoop/tasktracker.py
Log:
Another checkpoint. More forms added.
Modified: branches/elephant/cumin/python/cumin/gridhadoop/datanode.py
===================================================================
--- branches/elephant/cumin/python/cumin/gridhadoop/datanode.py 2012-12-11 19:07:19 UTC (rev 5581)
+++ branches/elephant/cumin/python/cumin/gridhadoop/datanode.py 2012-12-11 20:20:21 UTC (rev 5582)
@@ -5,6 +5,8 @@
from cumin.qmfadapter import ObjectQmfAdapter
from cumin.task import Task, TaskLink
+from wooly.forms import StringField, ScalarField, OptionInputSet
+
from hadoop import *
from sage.util import MethodResult
@@ -19,6 +21,10 @@
self.add_search_filter(self.table.nn_col)
self.table.adapter = HadoopAdapter(app, cls, None)
+ task = DataNodeCreate(app)
+ link = TaskLink(app, "dataNode_create", task)
+ self.links.add_child(link)
+
DataNodeDelete(app, self, "dataNode_delete")
self.enable_csv_export()
@@ -80,4 +86,109 @@
self.page.redirect.set(session, url)
def render_title(self, session):
- return "Remove data nodes"
\ No newline at end of file
+ return "Remove data nodes"
+
+class DataNodeCreate(Task):
+ def __init__(self, app):
+ super(DataNodeCreate, self).__init__(app)
+ cls = app.model.com_redhat_cumin_grid_hadoop.DataNode
+
+ self.form = DataNodeCreateForm(app, self.name, self, cls)
+ self.invoc = None
+
+ def get_title(self, session, x):
+ return "Create data nodes"
+
+
+class DataNodeCreateForm(HadoopNodeCreateForm):
+ def __init__(self, app, name, task, cls):
+ super(DataNodeCreateForm, self).__init__(app, name, task, cls)
+
+ self.nameNode = NameNodeField(app, "namenode")
+ self.add_field(self.nameNode)
+
+ 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)
+ name_node = self.nameNode.get(session)
+
+ print "Here is where I'd do the work and start up %s data nodes bound to name node %s" % (count, name_node)
+ self.task.exit_with_redirect(session, url)
+
+ def render_title(self, session):
+ return "Create data nodes"
+
+ class CountField(StringField):
+ def render_title(self, session):
+ return "Number of data nodes to start"
+
+
+class NameNodeField(ScalarField):
+ def __init__(self, app, name):
+ super(NameNodeField, self).__init__(app, name, None)
+
+ self.param = IntegerParameter(app, "param")
+ self.add_parameter(self.param)
+
+ cls = app.model.com_redhat_cumin_grid_hadoop.NameNode
+
+ self.input = self.NameNodeOptions(app, "input", self.param)
+ self.add_child(self.input)
+
+ def get(self, session):
+ return self.input.get(session)
+
+ def validate(self, session):
+ super(NameNodeField, self).validate(session)
+
+ name_nodes = self.input.get_items(session)
+
+ if not name_nodes:
+ error = FormError("There is no name node to bind to")
+ self.form.errors.add(session, error)
+
+ def render_title(self, session):
+ return "Name node"
+
+ def render_help(self, session):
+ return "Attach data nodes to this name node"
+
+ class NameNodeOptions(OptionInputSet):
+ def do_process(self, session):
+ cls = self.app.model.com_redhat_cumin_grid_hadoop.NameNode
+ id = self.param.get(session)
+
+ if id is None:
+ items = self.get_items(session)
+
+ if items:
+ self.param.set(session, items[0])
+
+ super(NameNodeField.NameNodeOptions, self).do_process \
+ (session)
+
+ def do_get_items(self, session):
+ cls = self.app.model.com_redhat_cumin_grid_hadoop.NameNode
+ name_nodes = [12345, 23456]
+ return name_nodes
+
+ def render_item_value(self, session, item):
+ return item
+
+ def render_item_content(self, session, item):
+ return xml_escape(item)
+
+ def render_item_selected_attr(self, session, item):
+ if item == self.param.get(session):
+ return "selected=\"selected\""
\ No newline at end of file
Modified: branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py
===================================================================
--- branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py 2012-12-11 19:07:19 UTC (rev 5581)
+++ branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py 2012-12-11 20:20:21 UTC (rev 5582)
@@ -84,4 +84,6 @@
def render_form_class(self, session):
return " ".join((super(HadoopNodeDeleteForm, self).render_form_class(session), "mform"))
-
+class HadoopNodeCreateForm(ObjectTaskForm):
+ def render_form_class(self, session):
+ return " ".join((super(HadoopNodeCreateForm, self).render_form_class(session), "mform"))
Modified: branches/elephant/cumin/python/cumin/gridhadoop/jobtracker.py
===================================================================
--- branches/elephant/cumin/python/cumin/gridhadoop/jobtracker.py 2012-12-11 19:07:19 UTC (rev 5581)
+++ branches/elephant/cumin/python/cumin/gridhadoop/jobtracker.py 2012-12-11 20:20:21 UTC (rev 5582)
@@ -5,6 +5,8 @@
from cumin.qmfadapter import ObjectQmfAdapter
from cumin.task import Task, TaskLink
+from wooly.forms import StringField
+
from hadoop import *
from sage.util import MethodResult
@@ -18,6 +20,10 @@
self.add_search_filter(self.table.loc_col)
self.table.adapter = HadoopAdapter(app, cls, None)
+
+ task = JobTrackerCreate(app)
+ link = TaskLink(app, "jobTracker_create", task)
+ self.links.add_child(link)
JobTrackerDelete(app, self, "jobTracker_delete")
@@ -79,4 +85,45 @@
self.page.redirect.set(session, url)
def render_title(self, session):
- return "Remove job trackers"
\ No newline at end of file
+ return "Remove job trackers"
+
+class JobTrackerCreate(Task):
+ def __init__(self, app):
+ super(JobTrackerCreate, self).__init__(app)
+ cls = app.model.com_redhat_cumin_grid_hadoop.JobTracker
+
+ self.form = JobTrackerCreateForm(app, self.name, self, cls)
+ self.invoc = None
+
+ def get_title(self, session, x):
+ return "Create a job tracker"
+
+
+class JobTrackerCreateForm(HadoopNodeCreateForm):
+ def __init__(self, app, name, task, cls):
+ super(JobTrackerCreateForm, 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 job trackers" % count
+ self.task.exit_with_redirect(session, url)
+
+ def render_title(self, session):
+ return "Create a job tracker"
+
+ class CountField(StringField):
+ def render_title(self, session):
+ return "Number of job trackers to start"
\ No newline at end of file
Modified: branches/elephant/cumin/python/cumin/gridhadoop/namenode.py
===================================================================
--- branches/elephant/cumin/python/cumin/gridhadoop/namenode.py 2012-12-11 19:07:19 UTC (rev 5581)
+++ branches/elephant/cumin/python/cumin/gridhadoop/namenode.py 2012-12-11 20:20:21 UTC (rev 5582)
@@ -68,7 +68,7 @@
return "Create a name node"
-class NameNodeCreateForm(ObjectTaskForm):
+class NameNodeCreateForm(HadoopNodeCreateForm):
def __init__(self, app, name, task, cls):
super(NameNodeCreateForm, self).__init__(app, name, task, cls)
@@ -92,7 +92,7 @@
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"
Modified: branches/elephant/cumin/python/cumin/gridhadoop/tasktracker.py
===================================================================
--- branches/elephant/cumin/python/cumin/gridhadoop/tasktracker.py 2012-12-11 19:07:19 UTC (rev 5581)
+++ branches/elephant/cumin/python/cumin/gridhadoop/tasktracker.py 2012-12-11 20:20:21 UTC (rev 5582)
@@ -5,6 +5,8 @@
from cumin.qmfadapter import ObjectQmfAdapter
from cumin.task import Task, TaskLink
+from wooly.forms import StringField
+
from hadoop import *
from sage.util import MethodResult
@@ -19,6 +21,10 @@
self.add_search_filter(self.table.jt_col)
self.table.adapter = HadoopAdapter(app, cls, None)
+ task = TaskTrackerCreate(app)
+ link = TaskLink(app, "taskTracker_create", task)
+ self.links.add_child(link)
+
TaskTrackerDelete(app, self, "taskTracker_delete")
self.enable_csv_export()
@@ -79,4 +85,45 @@
self.page.redirect.set(session, url)
def render_title(self, session):
- return "Remove task trackers"
\ No newline at end of file
+ return "Remove task trackers"
+
+class TaskTrackerCreate(Task):
+ def __init__(self, app):
+ super(TaskTrackerCreate, self).__init__(app)
+ cls = app.model.com_redhat_cumin_grid_hadoop.TaskTracker
+
+ self.form = TaskTrackerCreateForm(app, self.name, self, cls)
+ self.invoc = None
+
+ def get_title(self, session, x):
+ return "Create task trackers"
+
+
+class TaskTrackerCreateForm(HadoopNodeCreateForm):
+ def __init__(self, app, name, task, cls):
+ super(TaskTrackerCreateForm, 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 task trackers"
+
+ class CountField(StringField):
+ def render_title(self, session):
+ return "Number of task trackers to start"
\ No newline at end of file
11 years, 4 months
r5581 - branches/elephant/cumin/python/cumin/gridhadoop
by croberts@fedoraproject.org
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
11 years, 4 months
r5580 - branches/elephant/cumin/python/cumin/gridhadoop
by croberts@fedoraproject.org
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
11 years, 4 months
r5579 - branches/elephant/cumin/python/cumin
by croberts@fedoraproject.org
Author: croberts
Date: 2012-12-11 18:58:11 +0000 (Tue, 11 Dec 2012)
New Revision: 5579
Modified:
branches/elephant/cumin/python/cumin/main.py
Log:
Throw up a stack trace via log.debug when something goes wrong when loading modules. Otherwise, debugging this is not as easy.
Modified: branches/elephant/cumin/python/cumin/main.py
===================================================================
--- branches/elephant/cumin/python/cumin/main.py 2012-12-11 18:17:39 UTC (rev 5578)
+++ branches/elephant/cumin/python/cumin/main.py 2012-12-11 18:58:11 UTC (rev 5579)
@@ -167,7 +167,9 @@
m = __import__(name, globals())
m.Module(self, name)
except ImportError:
- pass
+ import traceback
+ message = traceback.format_exc()
+ log.debug("ImportError: %s" % message)
except Exception, e:
import traceback
traceback.print_exc()
11 years, 4 months
r5578 - branches/elephant/cumin/python/cumin/gridhadoop
by croberts@fedoraproject.org
Author: croberts
Date: 2012-12-11 18:17:39 +0000 (Tue, 11 Dec 2012)
New Revision: 5578
Modified:
branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py
Log:
Adding task tracker removal task/form.
Modified: branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py
===================================================================
--- branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py 2012-12-11 17:09:56 UTC (rev 5577)
+++ branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py 2012-12-11 18:17:39 UTC (rev 5578)
@@ -79,6 +79,8 @@
self.add_search_filter(self.table.jt_col)
self.table.adapter = HadoopAdapter(app, cls, None)
+
+ TaskTrackerDelete(app, self, "taskTracker_delete")
self.enable_csv_export()
@@ -101,6 +103,8 @@
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):
@@ -364,5 +368,63 @@
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"
+
+
11 years, 4 months
r5577 - branches/elephant/cumin/python/cumin/gridhadoop
by croberts@fedoraproject.org
Author: croberts
Date: 2012-12-11 17:09:56 +0000 (Tue, 11 Dec 2012)
New Revision: 5577
Modified:
branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py
Log:
A couple delete node forms...some refactoring.
Modified: branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py
===================================================================
--- branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py 2012-12-11 15:14:59 UTC (rev 5576)
+++ branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py 2012-12-11 17:09:56 UTC (rev 5577)
@@ -1,6 +1,7 @@
from operator import itemgetter
-from cumin.objectselector import ObjectSelector, ObjectLinkColumn, ObjectTable, ObjectTableColumn, ObjectQmfTable, ObjectQmfSelectorTable
+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
@@ -20,14 +21,6 @@
strings = StringCatalog(__file__)
-class ObjectSelectorTableNoCheckboxes(ObjectSelector):
- def __init__(self, app, name, cls):
- super(ObjectSelectorTableNoCheckboxes, self).__init__(app, name, cls)
-
- def create_table(self, app, name, cls):
- return ObjectTable(app, name, cls)
-
-
class NameNodeSelector(ObjectSelector):
def __init__(self, app, name):
cls = app.model.com_redhat_cumin_grid_hadoop.NameNode
@@ -41,6 +34,8 @@
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):
@@ -61,6 +56,8 @@
self.add_search_filter(self.table.nn_col)
self.table.adapter = HadoopAdapter(app, cls, None)
+
+ DataNodeDelete(app, self, "dataNode_delete")
self.enable_csv_export()
@@ -194,7 +191,7 @@
self.add_column(self.owner_col)
-class DataNodeTable(ObjectQmfTable):
+class DataNodeTable(ObjectQmfSelectorTable):
def __init__(self, app, name, cls):
super(DataNodeTable, self).__init__(app, name, cls)
@@ -214,7 +211,7 @@
self.add_column(self.owner_col)
-class TaskTrackerTable(ObjectQmfTable):
+class TaskTrackerTable(ObjectQmfSelectorTable):
def __init__(self, app, name, cls):
super(TaskTrackerTable, self).__init__(app, name, cls)
@@ -234,7 +231,7 @@
self.add_column(self.owner_col)
-class JobTrackerTable(ObjectQmfTable):
+class JobTrackerTable(ObjectQmfSelectorTable):
def __init__(self, app, name, cls):
super(JobTrackerTable, self).__init__(app, name, cls)
@@ -253,6 +250,19 @@
self.add_column(self.uptime_col)
self.add_column(self.owner_col)
+class HadoopNodeDeleteForm(ObjectSelectorTaskForm):
+ def __init__(self, app, name, task, cls):
+ super(HadoopNodeDeleteForm, self).__init__(app, name, task)
+ self.task = task
+
+ def get_selection(self, session):
+ ids = self.ids.get(session)
+ self.selection.set(session, ids)
+ return len(ids)
+
+ def render_form_class(self, session):
+ return " ".join((super(HadoopNodeDeleteForm, self).render_form_class(session), "mform"))
+
class NameNodeCreate(Task):
def __init__(self, app):
@@ -295,4 +305,64 @@
def render_title(self, session):
return "Number of name nodes to start"
-
\ No newline at end of file
+
+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"
+
+
11 years, 4 months
r5576 - branches/elephant/cumin/python/cumin/gridhadoop
by croberts@fedoraproject.org
Author: croberts
Date: 2012-12-11 15:14:59 +0000 (Tue, 11 Dec 2012)
New Revision: 5576
Modified:
branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py
Log:
Adding checkboxes to the name node table and giving them a proper id value.
Modified: branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py
===================================================================
--- branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py 2012-12-10 23:04:04 UTC (rev 5575)
+++ branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py 2012-12-11 15:14:59 UTC (rev 5576)
@@ -1,6 +1,6 @@
from operator import itemgetter
-from cumin.objectselector import ObjectSelector, ObjectLinkColumn, ObjectTable, ObjectTableColumn, ObjectQmfTable
+from cumin.objectselector import ObjectSelector, ObjectLinkColumn, ObjectTable, ObjectTableColumn, ObjectQmfTable, ObjectQmfSelectorTable
from cumin.objectframe import ObjectFrame, ObjectTaskForm
from cumin.stat import StatSet, StatFlashChart
from cumin.formats import fmt_bytes, fmt_datetime
@@ -120,7 +120,8 @@
class HadoopAdapter(ObjectQmfAdapter):
def __init__(self, app, cls, remoteDataMethod):
super(HadoopAdapter, self).__init__(app, cls)
- self.remoteDataMethod = remoteDataMethod
+ self.remoteDataMethod = remoteDataMethod
+ self.cls = cls
def get_count(self, values):
data = self.do_get_data(values)
@@ -161,9 +162,19 @@
return {}
return namenodes
+
+ def process_record(self, key, record):
+ field_data = list()
+ for column in self.columns:
+ try:
+ val = record[column.name]
+ except KeyError:
+ val = record["ID"]
+ field_data.append(val)
+ return field_data
-class NameNodeTable(ObjectQmfTable):
+class NameNodeTable(ObjectQmfSelectorTable):
def __init__(self, app, name, cls):
super(NameNodeTable, self).__init__(app, name, cls)
11 years, 4 months
r5575 - branches/elephant/cumin/python/cumin/gridhadoop
by croberts@fedoraproject.org
Author: croberts
Date: 2012-12-10 23:04:04 +0000 (Mon, 10 Dec 2012)
New Revision: 5575
Modified:
branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py
branches/elephant/cumin/python/cumin/gridhadoop/main.py
Log:
Initial dummy create name node form.
Modified: branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py
===================================================================
--- branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py 2012-12-10 21:57:46 UTC (rev 5574)
+++ branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py 2012-12-10 23:04:04 UTC (rev 5575)
@@ -1,7 +1,7 @@
from operator import itemgetter
from cumin.objectselector import ObjectSelector, ObjectLinkColumn, ObjectTable, ObjectTableColumn, ObjectQmfTable
-from cumin.objectframe import ObjectFrame, ObjectFrameTaskForm
+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
@@ -37,9 +37,9 @@
self.add_search_filter(self.table.loc_col)
self.table.adapter = HadoopAdapter(app, cls, None)
- #link = TaskLink(app, "nameNode_create", app.gridhadoop.nameNode_create)
- #self.links.add_child(link)
-
+ task = NameNodeCreate(app)
+ link = TaskLink(app, "nameNode_create", task)
+ self.links.add_child(link)
self.enable_csv_export()
@@ -246,16 +246,21 @@
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, "namenodecreateform", self)
+ self.form = NameNodeCreateForm(app, self.name, self, cls)
+ self.invoc = None
- def get_title(self, session, scheduler):
+ def get_title(self, session, x):
return "Create a name node"
-class NameNodeCreateForm(ObjectFrameTaskForm):
- def __init__(self, app, name, task):
- super(NameNodeCreateForm, self).__init__(app, name, task)
+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)
@@ -263,11 +268,20 @@
def process_submit(self, session):
self.validate(session)
- attrs = self.attrs.parse_attributes(session)
+ url = self.return_url.get(session)
+ self.page.redirect.set(session, url)
if not self.errors.get(session):
- location = self.location.get(session)
+ count = self.count.get(session)
- print "Here is where I'd do the work"
- self.task.exit_with_redirect(session, scheduler)
+ 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"
+
\ No newline at end of file
Modified: branches/elephant/cumin/python/cumin/gridhadoop/main.py
===================================================================
--- branches/elephant/cumin/python/cumin/gridhadoop/main.py 2012-12-10 21:57:46 UTC (rev 5574)
+++ branches/elephant/cumin/python/cumin/gridhadoop/main.py 2012-12-10 23:04:04 UTC (rev 5575)
@@ -14,8 +14,6 @@
def __init__(self, app, name):
super(Module, self).__init__(app, name)
- #self.nameNode_create = NameNodeCreate(app)
-
def init(self):
super(Module, self).init()
11 years, 4 months
r5574 - in branches/elephant/cumin: model/access python/cumin python/cumin/gridhadoop
by croberts@fedoraproject.org
Author: croberts
Date: 2012-12-10 21:57:46 +0000 (Mon, 10 Dec 2012)
New Revision: 5574
Added:
branches/elephant/cumin/python/cumin/gridhadoop/
Removed:
branches/elephant/cumin/python/cumin/grid-hadoop/
Modified:
branches/elephant/cumin/model/access/persona.xml
branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py
branches/elephant/cumin/python/cumin/gridhadoop/main.py
Log:
Renaming module from grid-hadoop to gridhadoop....hyphens in module names might not be a great idea
Modified: branches/elephant/cumin/model/access/persona.xml
===================================================================
--- branches/elephant/cumin/model/access/persona.xml 2012-12-10 20:53:37 UTC (rev 5573)
+++ branches/elephant/cumin/model/access/persona.xml 2012-12-10 21:57:46 UTC (rev 5574)
@@ -29,7 +29,7 @@
<Module name="grid"/>
<Module name="inventory"/>
<Module name="usergrid"/>
- <Module name="grid-hadoop"/>
+ <Module name="gridhadoop"/>
<GroupAccess name="nogroup">
<MainPage name="login.html"/>
@@ -51,7 +51,7 @@
<Module name="account"/>
<Module name="configuration"/>
<Module name="inventory"/>
- <Module name="grid-hadoop"/>
+ <Module name="gridhadoop"/>
<GroupAccess name="nogroup">
<MainPage name="login.html"/>
Modified: branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py
===================================================================
--- branches/elephant/cumin/python/cumin/grid-hadoop/hadoop.py 2012-12-10 20:53:37 UTC (rev 5573)
+++ branches/elephant/cumin/python/cumin/gridhadoop/hadoop.py 2012-12-10 21:57:46 UTC (rev 5574)
@@ -1,7 +1,7 @@
from operator import itemgetter
from cumin.objectselector import ObjectSelector, ObjectLinkColumn, ObjectTable, ObjectTableColumn, ObjectQmfTable
-from cumin.objectframe import ObjectFrame
+from cumin.objectframe import ObjectFrame, ObjectFrameTaskForm
from cumin.stat import StatSet, StatFlashChart
from cumin.formats import fmt_bytes, fmt_datetime
from cumin.model import CuminStatistic
@@ -9,6 +9,7 @@
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
@@ -35,6 +36,10 @@
self.add_search_filter(self.table.loc_col)
self.table.adapter = HadoopAdapter(app, cls, None)
+
+ #link = TaskLink(app, "nameNode_create", app.gridhadoop.nameNode_create)
+ #self.links.add_child(link)
+
self.enable_csv_export()
@@ -236,4 +241,33 @@
self.add_column(self.status_col)
self.add_column(self.uptime_col)
self.add_column(self.owner_col)
-
\ No newline at end of file
+
+
+class NameNodeCreate(Task):
+ def __init__(self, app):
+ super(NameNodeCreate, self).__init__(app)
+
+ self.form = NameNodeCreateForm(app, "namenodecreateform", self)
+
+ def get_title(self, session, scheduler):
+ return "Create a name node"
+
+
+class NameNodeCreateForm(ObjectFrameTaskForm):
+ def __init__(self, app, name, task):
+ super(NameNodeCreateForm, self).__init__(app, name, task)
+
+ def process_display(self, session):
+ self.scheduler.validate(session)
+
+ def process_submit(self, session):
+ self.validate(session)
+
+ attrs = self.attrs.parse_attributes(session)
+
+ if not self.errors.get(session):
+ location = self.location.get(session)
+
+ print "Here is where I'd do the work"
+ self.task.exit_with_redirect(session, scheduler)
+
\ No newline at end of file
Modified: branches/elephant/cumin/python/cumin/gridhadoop/main.py
===================================================================
--- branches/elephant/cumin/python/cumin/grid-hadoop/main.py 2012-12-10 20:53:37 UTC (rev 5573)
+++ branches/elephant/cumin/python/cumin/gridhadoop/main.py 2012-12-10 21:57:46 UTC (rev 5574)
@@ -14,12 +14,15 @@
def __init__(self, app, name):
super(Module, self).__init__(app, name)
- self.frame = GridHadoopFrame(app, "gridhadoop")
- self.app = app
- self.frame.cumin_module = name
+ #self.nameNode_create = NameNodeCreate(app)
def init(self):
- self.app.main_page.main.inventory = self.frame
+ super(Module, self).init()
+
+ self.frame = GridHadoopFrame(self.app, "gridhadoop")
+ self.frame.cumin_module = self.name
+
+ self.app.main_page.main.gridhadoop = self.frame
self.app.main_page.main.add_tab(self.frame)
class GridHadoopFrame(CuminFrame):
@@ -39,7 +42,7 @@
# heading = self.Heading(app, "heading")
# self.add_child(heading)
- self.tabs = TabbedModeSet(app, "tabs")
+ self.tabs = TabbedModeSet(app, "childtabs")
self.add_child(self.tabs)
self.tabs.add_tab(NameNodeSelector(app, "namenodes"))
11 years, 4 months