Controller cleanup.

This commit is contained in:
Adam Ierymenko 2016-09-30 13:04:26 -07:00
parent 9eaa3756f8
commit f0794e09b7
2 changed files with 23 additions and 21 deletions

View File

@ -1004,7 +1004,7 @@ unsigned int EmbeddedNetworkController::handleControlPlaneHttpGET(
if (!member.size())
return 404;
_addMemberNonPersistedFields(member,now);
_addMemberNonPersistedFields(member,OSUtils::now());
responseBody = member.dump(2);
responseContentType = "application/json";
@ -1324,28 +1324,28 @@ unsigned int EmbeddedNetworkController::handleControlPlaneHttpPOST(
if (b.count("multicastLimit")) network["multicastLimit"] = _jI(b["multicastLimit"],32ULL);
if (b.count("v4AssignMode")) {
json &nv4m = network["v4AssignMode"];
if (!nv4m.is_object()) nv4m = json::object();
if (b["v4AssignMode"].is_string()) { // backward compatibility
nv4m["zt"] = (_jS(b["v4AssignMode"],"") == "zt");
} else if (b["v4AssignMode"].is_object()) {
json &v4m = b["v4AssignMode"];
if (v4m.count("zt")) nv4m["zt"] = _jB(v4m["zt"],false);
}
if (!nv4m.count("zt")) nv4m["zt"] = false;
json nv4m;
json &v4m = b["v4AssignMode"];
if (v4m.is_string()) { // backward compatibility
nv4m["zt"] = (_jS(v4m,"") == "zt");
} else if (v4m.is_object()) {
nv4m["zt"] = _jB(v4m["zt"],false);
} else nv4m["zt"] = false;
network["v4AssignMode"] = nv4m;
}
if (b.count("v6AssignMode")) {
json &nv6m = network["v6AssignMode"];
json nv6m;
json &v6m = b["v6AssignMode"];
if (!nv6m.is_object()) nv6m = json::object();
if (b["v6AssignMode"].is_string()) { // backward compatibility
std::vector<std::string> v6m(Utils::split(_jS(b["v6AssignMode"],"").c_str(),",","",""));
std::sort(v6m.begin(),v6m.end());
v6m.erase(std::unique(v6m.begin(),v6m.end()),v6m.end());
if (v6m.is_string()) { // backward compatibility
std::vector<std::string> v6ms(Utils::split(_jS(v6m,"").c_str(),",","",""));
std::sort(v6ms.begin(),v6ms.end());
v6ms.erase(std::unique(v6ms.begin(),v6ms.end()),v6ms.end());
nv6m["rfc4193"] = false;
nv6m["zt"] = false;
nv6m["6plane"] = false;
for(std::vector<std::string>::iterator i(v6m.begin());i!=v6m.end();++i) {
for(std::vector<std::string>::iterator i(v6ms.begin());i!=v6ms.end();++i) {
if (*i == "rfc4193")
nv6m["rfc4193"] = true;
else if (*i == "zt")
@ -1353,15 +1353,16 @@ unsigned int EmbeddedNetworkController::handleControlPlaneHttpPOST(
else if (*i == "6plane")
nv6m["6plane"] = true;
}
} else if (b["v6AssignMode"].is_object()) {
json &v6m = b["v6AssignMode"];
} else if (v6m.is_object()) {
if (v6m.count("rfc4193")) nv6m["rfc4193"] = _jB(v6m["rfc4193"],false);
if (v6m.count("zt")) nv6m["zt"] = _jB(v6m["zt"],false);
if (v6m.count("6plane")) nv6m["6plane"] = _jB(v6m["6plane"],false);
} else {
nv6m["rfc4193"] = false;
nv6m["zt"] = false;
nv6m["6plane"] = false;
}
if (!nv6m.count("rfc4193")) nv6m["rfc4193"] = false;
if (!nv6m.count("zt")) nv6m["zt"] = false;
if (!nv6m.count("6plane")) nv6m["6plane"] = false;
network["v6AssignMode"] = nv6m;
}
if (b.count("routes")) {

View File

@ -165,6 +165,7 @@ private:
if (!network.count("v6AssignMode")) network["v6AssignMode"] = {{"rfc4193",false},{"zt",false},{"6plane",false}};
if (!network.count("authTokens")) network["authTokens"] = nlohmann::json::array();
if (!network.count("capabilities")) network["capabilities"] = nlohmann::json::array();
if (!network.count("ipAssignmentPools")) network["ipAssignmentPools"] = nlohmann::json::array();
if (!network.count("rules")) {
// If unspecified, rules are set to allow anything and behave like a flat L2 segment
network["rules"] = {