New config
This commit is contained in:
parent
312eaab0be
commit
5288ed69f4
@ -3,8 +3,7 @@
|
||||
{
|
||||
"ip" : "127.0.0.1",
|
||||
"port" : 8000,
|
||||
"name" : "legislator1",
|
||||
"self" : true
|
||||
"name" : "legislator1"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -3,20 +3,17 @@
|
||||
{
|
||||
"ip" : "127.0.0.1",
|
||||
"port" : 8000,
|
||||
"name" : "legislator1",
|
||||
"self" : true
|
||||
"name" : "legislator1"
|
||||
},
|
||||
{
|
||||
"ip" : "127.0.0.1",
|
||||
"port" : 8001,
|
||||
"name" : "legislator2",
|
||||
"self" : false
|
||||
"name" : "legislator2"
|
||||
},
|
||||
{
|
||||
"ip" : "127.0.0.1",
|
||||
"port" : 8002,
|
||||
"name" : "legislator3",
|
||||
"self" : false
|
||||
"name" : "legislator3"
|
||||
}
|
||||
]
|
||||
}
|
@ -1,22 +0,0 @@
|
||||
{
|
||||
"legislators" : [
|
||||
{
|
||||
"ip" : "127.0.0.1",
|
||||
"port" : 8000,
|
||||
"name" : "legislator1",
|
||||
"self" : false
|
||||
},
|
||||
{
|
||||
"ip" : "127.0.0.1",
|
||||
"port" : 8001,
|
||||
"name" : "legislator2",
|
||||
"self" : true
|
||||
},
|
||||
{
|
||||
"ip" : "127.0.0.1",
|
||||
"port" : 8002,
|
||||
"name" : "legislator3",
|
||||
"self" : false
|
||||
}
|
||||
]
|
||||
}
|
@ -1,22 +0,0 @@
|
||||
{
|
||||
"legislators" : [
|
||||
{
|
||||
"ip" : "127.0.0.1",
|
||||
"port" : 8000,
|
||||
"name" : "legislator1",
|
||||
"self" : false
|
||||
},
|
||||
{
|
||||
"ip" : "127.0.0.1",
|
||||
"port" : 8001,
|
||||
"name" : "legislator2",
|
||||
"self" : false
|
||||
},
|
||||
{
|
||||
"ip" : "127.0.0.1",
|
||||
"port" : 8002,
|
||||
"name" : "legislator3",
|
||||
"self" : true
|
||||
}
|
||||
]
|
||||
}
|
@ -3,14 +3,12 @@
|
||||
{
|
||||
"ip" : "127.0.0.1",
|
||||
"port" : 8000,
|
||||
"name" : "legislator1",
|
||||
"self" : false
|
||||
"name" : "legislator1"
|
||||
},
|
||||
{
|
||||
"ip" : "127.0.0.1",
|
||||
"port" : 8001,
|
||||
"name" : "legislator2",
|
||||
"self" : true
|
||||
"name" : "legislator2"
|
||||
}
|
||||
]
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
{
|
||||
"legislators" : [
|
||||
{
|
||||
"ip" : "127.0.0.1",
|
||||
"port" : 8000,
|
||||
"name" : "legislator1",
|
||||
"self" : true
|
||||
},
|
||||
{
|
||||
"ip" : "127.0.0.1",
|
||||
"port" : 8001,
|
||||
"name" : "legislator2",
|
||||
"self" : false
|
||||
}
|
||||
]
|
||||
}
|
@ -51,8 +51,6 @@ namespace paxos
|
||||
config.port = std::to_string(port_int);
|
||||
|
||||
safe_get_key(j, "name", config.name, true);
|
||||
|
||||
safe_get_key(j, "self", config.is_self, true);
|
||||
}
|
||||
|
||||
|
||||
@ -63,7 +61,7 @@ namespace paxos
|
||||
|
||||
|
||||
static std::pair<std::vector<LegislatorConfig>, LegislatorConfig>
|
||||
parse_legislators(const json& j)
|
||||
parse_legislators(const json& j, const std::string& name)
|
||||
{
|
||||
/* Get 'vhosts' value */
|
||||
std::vector<json> legislators;
|
||||
@ -77,6 +75,7 @@ namespace paxos
|
||||
{
|
||||
/* Differenciable vhost checking */
|
||||
auto legislator = it.get<paxos::LegislatorConfig>();
|
||||
legislator.is_self = name == legislator.name;
|
||||
if (!legislator.is_self)
|
||||
legislator_configs.push_back(legislator);
|
||||
else
|
||||
@ -88,8 +87,11 @@ namespace paxos
|
||||
}
|
||||
|
||||
|
||||
ServerConfig ServerConfig::parse(const std::string& path)
|
||||
ServerConfig ServerConfig::parse(char **argv)
|
||||
{
|
||||
std::string path = argv[1];
|
||||
std::string name = argv[2];
|
||||
|
||||
json json_dict;
|
||||
std::ifstream json_file(path);
|
||||
|
||||
@ -111,7 +113,7 @@ namespace paxos
|
||||
error_and_exit(1, e.what());
|
||||
}
|
||||
|
||||
auto legislators = parse_legislators(json_dict);
|
||||
auto legislators = parse_legislators(json_dict, name);
|
||||
|
||||
return ServerConfig(legislators.first, legislators.second);
|
||||
}
|
||||
|
@ -23,6 +23,6 @@ namespace paxos
|
||||
|
||||
LegislatorConfig self_;
|
||||
|
||||
static ServerConfig parse(const std::string& path);
|
||||
static ServerConfig parse(char **argv);
|
||||
};
|
||||
}
|
||||
|
@ -24,9 +24,11 @@ static void sigstop_cb(struct ev_loop*, ev_signal*, int)
|
||||
}
|
||||
|
||||
|
||||
int main(int, char **argv)
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
paxos::ServerConfig server_config = paxos::ServerConfig::parse(argv[1]);
|
||||
if (argc != 3)
|
||||
return 1;
|
||||
paxos::ServerConfig server_config = paxos::ServerConfig::parse(argv);
|
||||
|
||||
ev_signal_init(&sigint_watcher, sigint_cb, SIGINT);
|
||||
paxos::event_register.get_event_loop().register_sigint_watcher(&sigint_watcher);
|
||||
|
Loading…
Reference in New Issue
Block a user