| 175 | |
| 176 | |
| 177 | StatusUpdate createStatusUpdate( |
| 178 | const FrameworkID& frameworkId, |
| 179 | const Option<SlaveID>& slaveId, |
| 180 | const TaskID& taskId, |
| 181 | const TaskState& state, |
| 182 | const TaskStatus::Source& source, |
| 183 | const Option<id::UUID>& uuid, |
| 184 | const string& message, |
| 185 | const Option<TaskStatus::Reason>& reason, |
| 186 | const Option<ExecutorID>& executorId, |
| 187 | const Option<bool>& healthy, |
| 188 | const Option<CheckStatusInfo>& checkStatus, |
| 189 | const Option<Labels>& labels, |
| 190 | const Option<ContainerStatus>& containerStatus, |
| 191 | const Option<TimeInfo>& unreachableTime, |
| 192 | const Option<Resources>& limitedResources) |
| 193 | { |
| 194 | StatusUpdate update; |
| 195 | |
| 196 | update.set_timestamp(process::Clock::now().secs()); |
| 197 | update.mutable_framework_id()->MergeFrom(frameworkId); |
| 198 | |
| 199 | if (slaveId.isSome()) { |
| 200 | update.mutable_slave_id()->MergeFrom(slaveId.get()); |
| 201 | } |
| 202 | |
| 203 | if (executorId.isSome()) { |
| 204 | update.mutable_executor_id()->MergeFrom(executorId.get()); |
| 205 | } |
| 206 | |
| 207 | // TODO(alexr): Use `createTaskStatus()` instead |
| 208 | // once `UUID` is required in this function. |
| 209 | TaskStatus* status = update.mutable_status(); |
| 210 | status->mutable_task_id()->MergeFrom(taskId); |
| 211 | |
| 212 | if (slaveId.isSome()) { |
| 213 | status->mutable_slave_id()->MergeFrom(slaveId.get()); |
| 214 | } |
| 215 | |
| 216 | status->set_state(state); |
| 217 | status->set_source(source); |
| 218 | status->set_message(message); |
| 219 | status->set_timestamp(update.timestamp()); |
| 220 | |
| 221 | if (uuid.isSome()) { |
| 222 | update.set_uuid(uuid->toBytes()); |
| 223 | status->set_uuid(uuid->toBytes()); |
| 224 | } |
| 225 | |
| 226 | if (reason.isSome()) { |
| 227 | status->set_reason(reason.get()); |
| 228 | } |
| 229 | |
| 230 | if (healthy.isSome()) { |
| 231 | status->set_healthy(healthy.get()); |
| 232 | } |
| 233 | |
| 234 | if (checkStatus.isSome()) { |