本文整理汇总了C++中MasterInfo类的典型用法代码示例。如果您正苦于以下问题:C++ MasterInfo类的具体用法?C++ MasterInfo怎么用?C++ MasterInfo使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了MasterInfo类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: createMasterInfo
/**
* 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) + "-" + id::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()->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());
}
foreach (const MasterInfo::Capability& capability,
mesos::internal::master::MASTER_CAPABILITIES()) {
info.add_capabilities()->CopyFrom(capability);
}
示例2: InitFakeMaster
int ReplicationImpl::InitFakeMaster() {
MasterInfo info;
int ret = master_manager_->GetMasterInfo(&info);
if (ret) {
ColorLogError("%s get master info fail, ret %d", __func__, ret);
return ret;
}
string ip = Utils::GetIP(info.svr_id());
if (info.svr_id() == option_->GetBinLogSvrConfig()->GetEngineSvrID()) {
LogVerbose("%s get other ip %s", __func__, ip.c_str());
} else {
ctx_->SelfConn(false);
}
MySqlManager* mysql_manager = MySqlManager::GetGlobalMySqlManager(option_);
if (mysql_manager->IsReplicaProcess()) {
ip = Utils::GetIP(option_->GetBinLogSvrConfig()->GetEngineSvrID());
ctx_->SelfConn(true);
}
LogVerbose("%s connect ip %s port %d", __func__, ip.c_str(), info.port());
int master_fd = NetIO::Connect(ip.c_str(), info.port());
if (master_fd < 0) {
STATISTICS(ReplMySqlConnectFail());
return SOCKET_FAIL;
}
return master_fd;
}
示例3:
bool operator == (const MasterInfo& left, const MasterInfo& right)
{
return left.id() == right.id() &&
left.ip() == right.ip() &&
left.port() == right.port() &&
left.pid() == right.pid() &&
left.hostname() == right.hostname();
}
示例4: reregistered
void reregistered(
SchedulerDriver* driver,
const MasterInfo& masterInfo) override
{
LOG(INFO) << "Reregistered with " << masterInfo.pid();
if (generator == nullptr) {
LOG(INFO) << "Starting LoadGenerator at QPS: " << qps;
generator = new LoadGenerator(driver, qps, duration);
}
}
示例5: registered
virtual void registered(SchedulerDriver* driver,
const FrameworkID&,
const MasterInfo& masterInfo)
{
LOG(INFO) << "Registered with " << masterInfo.pid();
if (generator == NULL) {
LOG(INFO) << "Starting LoadGenerator at QPS: " << qps;
generator = new LoadGenerator(driver, qps, duration);
}
}
示例6: TEST_F
TEST_F(RegistrarTest, recover)
{
Registrar registrar(state);
SlaveInfo slave;
slave.set_hostname("localhost");
SlaveID id;
id.set_value("1");
slave.mutable_id()->CopyFrom(id);
// Operations preceding recovery will fail.
AWAIT_EXPECT_FAILED(registrar.admit(slave));
AWAIT_EXPECT_FAILED(registrar.readmit(slave));
AWAIT_EXPECT_FAILED(registrar.remove(slave));
MasterInfo info;
info.set_id("foobar");
info.set_ip(0);
info.set_port(5050);
info.set_pid("0:5050");
Future<Registry> registry = registrar.recover(info);
// Before waiting for the recovery to complete, invoke some
// operations to ensure they do not fail.
Future<bool> admit = registrar.admit(slave);
Future<bool> readmit = registrar.readmit(slave);
Future<bool> remove = registrar.remove(slave);
AWAIT_READY(registry);
EXPECT_EQ(info, registry.get().master().info());
AWAIT_EQ(true, admit);
AWAIT_EQ(true, readmit);
AWAIT_EQ(true, remove);
}
示例7: convert
jobject convert(JNIEnv* env, const MasterInfo& masterInfo)
{
string data;
masterInfo.SerializeToString(&data);
// byte[] data = ..;
jbyteArray jdata = env->NewByteArray(data.size());
env->SetByteArrayRegion(jdata, 0, data.size(), (jbyte*) data.data());
// MasterInfo masterInfo = MasterInfo.parseFrom(data);
jclass clazz = FindMesosClass(env, "org/apache/mesos/Protos$MasterInfo");
jmethodID parseFrom =
env->GetStaticMethodID(clazz, "parseFrom",
"([B)Lorg/apache/mesos/Protos$MasterInfo;");
jobject jmasterInfo = env->CallStaticObjectMethod(clazz, parseFrom, jdata);
return jmasterInfo;
}
示例8: createMasterInfo
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;
}
示例9: createMasterInfo
/**
* 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;
}