mirror of
https://github.com/Telecominfraproject/wlan-cloud-owprov.git
synced 2025-11-01 19:17:47 +00:00
Adding tree import.
This commit is contained in:
@@ -49,42 +49,42 @@ namespace OpenWifi {
|
|||||||
return true;
|
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) {
|
for(const auto &i:*A) {
|
||||||
const std::string & K = i.first;
|
const std::string & K = i.first;
|
||||||
// std::cout << "KEY: " << K << std::endl;
|
// std::cout << "KEY: " << K << std::endl;
|
||||||
if(B->has(K)) {
|
if(B->has(K)) {
|
||||||
if(A->isArray(K)) {
|
if(A->isArray(K)) {
|
||||||
// std::cout << "ISARRAY" << std::endl;
|
// std::cout << "ISARRAY" << std::endl;
|
||||||
if(B->isArray(K)) {
|
if(B->isArray(K)) {
|
||||||
Poco::JSON::Array Arr;
|
Poco::JSON::Array Arr;
|
||||||
auto AR1=A->getArray(K);
|
auto AR1=A->getArray(K);
|
||||||
auto AR2=B->getArray(K);
|
auto AR2=B->getArray(K);
|
||||||
mergeArray(K,AR1,AR2,Arr);
|
mergeArray(K,AR1,AR2,Arr);
|
||||||
C.set(K,Arr);
|
C->set(K,Arr);
|
||||||
} else {
|
} else {
|
||||||
C.set(K,A->getArray(K));
|
C->set(K,A->getArray(K));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(A->isObject(K) && B->isObject(K)) {
|
else if(A->isObject(K) && B->isObject(K)) {
|
||||||
// std::cout << "ISOBJECT" << std::endl;
|
// std::cout << "ISOBJECT" << std::endl;
|
||||||
Poco::JSON::Object R;
|
Poco::JSON::Object::Ptr R;
|
||||||
merge(A->getObject(K),B->getObject(K),R);
|
merge(A->getObject(K),B->getObject(K),R);
|
||||||
C.set(K,R);
|
C->set(K,R);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
C.set(K,i.second);
|
C->set(K,i.second);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
C.set(K,i.second);
|
C->set(K,i.second);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for(const auto &i:*B) {
|
for(const auto &i:*B) {
|
||||||
const std::string & K = i.first;
|
const std::string & K = i.first;
|
||||||
if(!A->has(K))
|
if(!A->has(K))
|
||||||
C.set(K,i.second);
|
C->set(K,i.second);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -118,19 +118,20 @@ namespace OpenWifi {
|
|||||||
// globals
|
// globals
|
||||||
// unit
|
// unit
|
||||||
|
|
||||||
Poco::JSON::Object CFG;
|
Poco::JSON::Object::Ptr CFG;
|
||||||
for(const auto &i:Config_) {
|
for(const auto &i:Config_) {
|
||||||
Poco::JSON::Parser P;
|
Poco::JSON::Parser P;
|
||||||
auto O = P.parse(i.configuration).extract<Poco::JSON::Object::Ptr>();
|
auto O = P.parse(i.configuration).extract<Poco::JSON::Object::Ptr>();
|
||||||
for(const auto &j:*O) {
|
Poco::JSON::Object::Ptr Result;
|
||||||
CFG.set(j.first,j.second);
|
merge(CFG, O, Result);
|
||||||
}
|
CFG = Result;
|
||||||
}
|
}
|
||||||
|
|
||||||
Configuration = CFG;
|
Configuration = *CFG;
|
||||||
|
|
||||||
if(Config_.empty())
|
if(Config_.empty())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ namespace OpenWifi {
|
|||||||
|
|
||||||
bool FindRadio(const std::string &Band, const Poco::JSON::Array::Ptr &Arr, Poco::JSON::Object::Ptr & Radio);
|
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 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);
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -181,7 +181,7 @@ gettag() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
addtag() {
|
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" \
|
curl ${FLAGS} -X POST "https://${OWPROV}/api/v1/inventory/1" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-H "Authorization: Bearer ${token}" \
|
-H "Authorization: Bearer ${token}" \
|
||||||
@@ -372,7 +372,7 @@ case "$1" in
|
|||||||
"tree") login; tree ; logout;;
|
"tree") login; tree ; logout;;
|
||||||
"importtree") login; importtree $2; logout;;
|
"importtree") login; importtree $2; logout;;
|
||||||
"deviceconfig") login; deviceconfig "$2"; logout;;
|
"deviceconfig") login; deviceconfig "$2"; logout;;
|
||||||
"addtag") login; addtag $2 $3; logout;;
|
"addtag") login; addtag "$2"; logout;;
|
||||||
"unassigntag") login; unassigntag $2; logout;;
|
"unassigntag") login; unassigntag $2; logout;;
|
||||||
"addunassignedtag") login; addunassignedtag $2 ; logout;;
|
"addunassignedtag") login; addunassignedtag $2 ; logout;;
|
||||||
"getunassignedtags") login; getunassignedtags ; logout;;
|
"getunassignedtags") login; getunassignedtags ; logout;;
|
||||||
|
|||||||
Reference in New Issue
Block a user