Adding tree import.

This commit is contained in:
stephb9959
2021-09-08 12:39:04 -07:00
parent 79b2742f36
commit e1cb55883e
3 changed files with 20 additions and 19 deletions

View File

@@ -49,42 +49,42 @@ namespace OpenWifi {
return true;
}
bool APConfig::merge(const Poco::JSON::Object::Ptr & A, const Poco::JSON::Object::Ptr & B, Poco::JSON::Object &C) {
bool APConfig::merge(const Poco::JSON::Object::Ptr & A, const Poco::JSON::Object::Ptr & B, Poco::JSON::Object::Ptr &C) {
for(const auto &i:*A) {
const std::string & K = i.first;
// std::cout << "KEY: " << K << std::endl;
// std::cout << "KEY: " << K << std::endl;
if(B->has(K)) {
if(A->isArray(K)) {
// std::cout << "ISARRAY" << std::endl;
// std::cout << "ISARRAY" << std::endl;
if(B->isArray(K)) {
Poco::JSON::Array Arr;
auto AR1=A->getArray(K);
auto AR2=B->getArray(K);
mergeArray(K,AR1,AR2,Arr);
C.set(K,Arr);
C->set(K,Arr);
} else {
C.set(K,A->getArray(K));
C->set(K,A->getArray(K));
}
}
else if(A->isObject(K) && B->isObject(K)) {
// std::cout << "ISOBJECT" << std::endl;
Poco::JSON::Object R;
// std::cout << "ISOBJECT" << std::endl;
Poco::JSON::Object::Ptr R;
merge(A->getObject(K),B->getObject(K),R);
C.set(K,R);
C->set(K,R);
}
else {
C.set(K,i.second);
C->set(K,i.second);
}
} else {
C.set(K,i.second);
C->set(K,i.second);
}
}
for(const auto &i:*B) {
const std::string & K = i.first;
if(!A->has(K))
C.set(K,i.second);
C->set(K,i.second);
}
return true;
}
@@ -118,19 +118,20 @@ namespace OpenWifi {
// globals
// unit
Poco::JSON::Object CFG;
Poco::JSON::Object::Ptr CFG;
for(const auto &i:Config_) {
Poco::JSON::Parser P;
auto O = P.parse(i.configuration).extract<Poco::JSON::Object::Ptr>();
for(const auto &j:*O) {
CFG.set(j.first,j.second);
}
Poco::JSON::Object::Ptr Result;
merge(CFG, O, Result);
CFG = Result;
}
Configuration = CFG;
Configuration = *CFG;
if(Config_.empty())
return false;
return true;
}

View File

@@ -34,7 +34,7 @@ namespace OpenWifi {
bool FindRadio(const std::string &Band, const Poco::JSON::Array::Ptr &Arr, Poco::JSON::Object::Ptr & Radio);
bool mergeArray(const std::string &K, const Poco::JSON::Array::Ptr &A , const Poco::JSON::Array::Ptr &B, Poco::JSON::Array &Arr);
bool merge(const Poco::JSON::Object::Ptr & A, const Poco::JSON::Object::Ptr & B, Poco::JSON::Object &C);
bool merge(const Poco::JSON::Object::Ptr & A, const Poco::JSON::Object::Ptr & B, Poco::JSON::Object::Ptr &C);
};
}

View File

@@ -181,7 +181,7 @@ gettag() {
}
addtag() {
payload="{ \"name\" : \"$1\",\"entity\" : \"$2\", \"serialNumber\" : \"$1\", \"deviceType\" : \"linksys_ea8300\" }";
payload="{ \"name\" : \"$1\", \"serialNumber\" : \"$1\", \"deviceType\" : \"linksys_ea8300\" }";
curl ${FLAGS} -X POST "https://${OWPROV}/api/v1/inventory/1" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${token}" \
@@ -372,7 +372,7 @@ case "$1" in
"tree") login; tree ; logout;;
"importtree") login; importtree $2; logout;;
"deviceconfig") login; deviceconfig "$2"; logout;;
"addtag") login; addtag $2 $3; logout;;
"addtag") login; addtag "$2"; logout;;
"unassigntag") login; unassigntag $2; logout;;
"addunassignedtag") login; addunassignedtag $2 ; logout;;
"getunassignedtags") login; getunassignedtags ; logout;;