My yang is :
module Collection {
namespace "http://com/company/Collection";
prefix Collection;
list Collection {
config false;
key network;
leaf network {
type string;
}
container Database {
...
}
}
}
The XML that i am uploading using cdb_load_file is:
<Collection xmlns="http://com/company/Collection">
<network>network1</network>
<Database xmlns="http://com/company/Collection">
...
</Database>
</Collection>
My C++ code looks like this:
void writeToConfDataStore(std::string fileName) {
struct in_addr in;
struct sockaddr_in addr;
int subsock;
inet_aton("127.0.0.1", &in);
addr.sin_addr.s_addr = in.s_addr;
addr.sin_family = AF_INET;
addr.sin_port = htons(CONFD_PORT); //4565
confd_init(“my_prog”, stderr, CONFD_SILENT);
if (confd_load_schemas((struct sockaddr*)&addr,
sizeof (struct sockaddr_in)) != CONFD_OK)
std::cout<<"Failed to load schemas from confd\n";
if ((subsock = socket(PF_INET, SOCK_STREAM, 0)) < 0 ) {
std::cout<<"Unable to open socket"<<std::endl;
return;
}
if (cdb_connect(subsock, CDB_DATA_SOCKET, (struct sockaddr*)&addr,
sizeof (struct sockaddr_in)) < 0) {
std::cout<<"Unable to connect"<<std::endl;
return;
}
int cdb_load_flags = 0;
cdb_load_flags = CDB_LOCK_REQUEST|CDB_LOCK_WAIT|CDB_LOCK_PARTIAL;
int ret;
if((ret = cdb_start_session2(subsock, CDB_OPERATIONAL, cdb_load_flags)) != CONFD_OK) {
std::cout<<"Unable to start session"<<std::endl;
cdb_close(subsock);
return;
}
if((ret = cdb_load_file(subsock, fileName.c_str(), 0)) != CONFD_OK) {
std::cout<<"Failed to load file with error:"<<confd_errno<<std::endl;
}
cdb_end_session(subsock);
cdb_close(subsock);
}
Output i see is:
Failed to load file with error:8
Please help me fix this