bool operator == (const Task& left, const Task& right) { // Order of task statuses is important. if (left.statuses().size() != right.statuses().size()) { return false; } for (int i = 0; i < left.statuses().size(); i++) { if (left.statuses().Get(i) != right.statuses().Get(i)) { return false; } } return left.name() == right.name() && left.task_id() == right.task_id() && left.framework_id() == right.framework_id() && left.executor_id() == right.executor_id() && left.slave_id() == right.slave_id() && left.state() == right.state() && Resources(left.resources()) == Resources(right.resources()) && left.status_update_state() == right.status_update_state() && left.status_update_uuid() == right.status_update_uuid() && left.labels() == right.labels() && left.discovery() == right.discovery(); }
inline bool operator == (const Task& left, const Task& right) { return left.name() == right.name() && left.task_id() == right.task_id() && left.framework_id() == right.framework_id() && left.slave_id() == right.slave_id() && left.state() == right.state() && Resources(left.resources()) == Resources(right.resources()) && left.has_executor_id() == right.has_executor_id() && (!left.has_executor_id() || (left.executor_id() == right.executor_id())); }
// TODO(bmahler): Expose the executor name / source. JSON::Object model(const Task& task) { JSON::Object object; object.values["id"] = task.task_id().value(); object.values["name"] = task.name(); object.values["framework_id"] = task.framework_id().value(); if (task.has_executor_id()) { object.values["executor_id"] = task.executor_id().value(); } else { object.values["executor_id"] = ""; } object.values["slave_id"] = task.slave_id().value(); object.values["state"] = TaskState_Name(task.state()); object.values["resources"] = model(task.resources()); JSON::Array array; foreach (const TaskStatus& status, task.statuses()) { array.values.push_back(model(status)); } object.values["statuses"] = array; JSON::Array labels; foreach (const Label& label, task.labels()) { labels.values.push_back(JSON::Protobuf(label)); } object.values["labels"] = labels; return object; }