bool operator==(const SlaveInfo& left, const SlaveInfo& right) { return left.hostname() == right.hostname() && Resources(left.resources()) == Resources(right.resources()) && Attributes(left.attributes()) == Attributes(right.attributes()) && left.id() == right.id() && left.checkpoint() == right.checkpoint() && left.port() == right.port(); }
inline bool operator == (const SlaveInfo& left, const SlaveInfo& right) { return left.hostname() == right.hostname() && left.webui_hostname() == right.webui_hostname() && Resources(left.resources()) == Resources(right.resources()) && internal::Attributes(left.attributes()) == internal::Attributes(right.attributes()) && left.has_webui_port() == right.has_webui_port() && (!left.has_webui_port() || (left.webui_port() == right.webui_port())) && left.has_id() == right.has_id() && (!left.has_id() || (left.id() == right.id())) && left.has_checkpoint() == right.has_checkpoint() && (!left.has_checkpoint() || (left.checkpoint() == right.checkpoint())); }
virtual Try<Nothing> masterSlaveLostHook(const SlaveInfo& slaveInfo) { LOG(INFO) << "Executing 'masterSlaveLostHook' in agent '" << slaveInfo.id() << "'"; // TODO(nnielsen): Add argument to signal(), so we can filter messages from // the `masterSlaveLostHook` from `slaveRemoveExecutorHook`. // NOTE: Will not be a problem **as long as** the test doesn't start any // tasks. HookProcess hookProcess; process::spawn(&hookProcess); Future<Nothing> future = process::dispatch(hookProcess, &HookProcess::await); process::dispatch(hookProcess, &HookProcess::signal); // Make sure we don't terminate the process before the message self-send has // completed. future.await(); process::terminate(hookProcess); process::wait(hookProcess); return Nothing(); }