diff --git a/cli/dcoscli/tables.py b/cli/dcoscli/tables.py index d668456..83bb8f5 100644 --- a/cli/dcoscli/tables.py +++ b/cli/dcoscli/tables.py @@ -14,6 +14,7 @@ def task_table(tasks): fields = OrderedDict([ ("NAME", lambda t: t["name"]), + ("HOST", lambda t: t.slave()["hostname"]), ("USER", lambda t: t.user()), ("STATE", lambda t: t["state"].split("_")[-1][0]), ("ID", lambda t: t["id"]), @@ -21,6 +22,7 @@ def task_table(tasks): tb = util.table(fields, tasks, sortby="NAME") tb.align["NAME"] = "l" + tb.align["HOST"] = "l" tb.align["ID"] = "l" return tb diff --git a/cli/tests/fixtures/task.py b/cli/tests/fixtures/task.py index f5b5aa8..ed53f91 100644 --- a/cli/tests/fixtures/task.py +++ b/cli/tests/fixtures/task.py @@ -1,4 +1,4 @@ -from dcos.mesos import Task +from dcos.mesos import Slave, Task import mock @@ -32,4 +32,6 @@ def task_fixture(): }, None) task.user = mock.Mock(return_value='root') + slave = Slave({"hostname": "mock-hostname"}) + task.slave = mock.Mock(return_value=slave) return task diff --git a/cli/tests/unit/data/task.txt b/cli/tests/unit/data/task.txt index 14a6d13..769db6c 100644 --- a/cli/tests/unit/data/task.txt +++ b/cli/tests/unit/data/task.txt @@ -1,2 +1,2 @@ - NAME USER STATE ID - test-app root R test-app.d44dd7f2-f9b7-11e4-bb43-56847afe9799 \ No newline at end of file + NAME HOST USER STATE ID + test-app mock-hostname root R test-app.d44dd7f2-f9b7-11e4-bb43-56847afe9799 \ No newline at end of file diff --git a/dcos/mesos.py b/dcos/mesos.py index 4bddf6d..f6dfdcb 100644 --- a/dcos/mesos.py +++ b/dcos/mesos.py @@ -305,17 +305,27 @@ class Task(object): :returns: dictionary representation of this Task :rtype: dict """ + return self._task def framework(self): """Returns the task's framework - :returns" task's framework + :returns: task's framework :rtype: Framework """ return self._master.framework(self["framework_id"]) + def slave(self): + """Returns the task's slave + + :returns: task's slave + :rtype: Slave + """ + + return self._master.slave(self["slave_id"]) + def user(self): """Task owner