/** * Creates a MasterInfo protobuf from the process's UPID. * * This is only used by the `StandaloneMasterDetector` (used in tests * and outside tests when ZK is not used). * * For example, when we start a slave with * `[email protected]:5050`, since the slave (and consequently * its detector) doesn't have enough information about `MasterInfo`, it * tries to construct it based on the only available information * (`UPID`). * * @param pid The process's assigned untyped PID. * @return A fully formed `MasterInfo` with the IP/hostname information * as derived from the `UPID`. */ MasterInfo createMasterInfo(const UPID& pid) { MasterInfo info; info.set_id(stringify(pid) + "-" + UUID::random().toString()); // NOTE: Currently, we store the ip in network order, which should // be fixed. See MESOS-1201 for more details. // TODO(marco): `ip` and `port` are deprecated in favor of `address`; // remove them both after the deprecation cycle. info.set_ip(pid.address.ip.in().get().s_addr); info.set_port(pid.address.port); info.mutable_address()->set_ip(stringify(pid.address.ip)); info.mutable_address()->set_port(pid.address.port); info.set_pid(pid); Try<string> hostname = net::getHostname(pid.address.ip); if (hostname.isSome()) { // Hostname is deprecated; but we need to update it // to maintain backward compatibility. // TODO(marco): Remove once we deprecate it. info.set_hostname(hostname.get()); info.mutable_address()->set_hostname(hostname.get()); } return info; }
MasterInfo createMasterInfo(const process::UPID& pid) { MasterInfo info; info.set_id(stringify(pid) + "-" + UUID::random().toString()); info.set_ip(pid.address.ip); info.set_port(pid.address.port); info.set_pid(pid); Try<string> hostname = net::getHostname(pid.address.ip); if (hostname.isSome()) { info.set_hostname(hostname.get()); } return info; }
/** * Creates a MasterInfo protobuf from the process's UPID. * * This is only used by the `StandaloneMasterDetector` (used in tests * and outside tests when ZK is not used). * * For example, when we start a slave with * `[email protected]:5050`, since the slave (and consequently * its detector) doesn't have enough information about `MasterInfo`, it * tries to construct it based on the only available information * (`UPID`). * * @param pid The process's assigned untyped PID. * @return A fully formed `MasterInfo` with the IP/hostname information * as derived from the `UPID`. */ MasterInfo createMasterInfo(const process::UPID& pid) { MasterInfo info; info.set_id(stringify(pid) + "-" + UUID::random().toString()); // NOTE: Currently, we store the ip in network order, which should // be fixed. See MESOS-1201 for more details. info.set_ip(pid.address.ip.in().get().s_addr); info.set_port(pid.address.port); info.set_pid(pid); Try<string> hostname = net::getHostname(pid.address.ip); if (hostname.isSome()) { info.set_hostname(hostname.get()); } return info; }