Skip to content

Commit aab9976

Browse files
committed
fix polycubed.conf configuration and dump bug
Commented default cubes-dump-file configuration to avoid affecting parameters validation and removed useless variable assignment. Check if the dump is enabled with the variable set in config.cpp instead of checking if CubesDump instance is created or not. Signed-off-by: Riccardo Marchi <riccardo.marchi4@gmail.com>
1 parent 2c4efb5 commit aab9976

File tree

5 files changed

+30
-31
lines changed

5 files changed

+30
-31
lines changed

src/polycubed/src/config.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -299,8 +299,9 @@ void Config::create_configuration_file(const std::string &path) {
299299
file << "addr: " << server_ip << std::endl;
300300
file << "# file to save polycube logs" << std::endl;
301301
file << "logfile: " << logfile << std::endl;
302-
file << "# file to save last topology" << std::endl;
303-
file << "cubes-dump-file: " << cubes_dump_file << std::endl;
302+
// uncomment when cubes dump is enabled as default behavior
303+
//file << "# file to save last topology" << std::endl;
304+
//file << "cubes-dump-file: " << cubes_dump_file << std::endl;
304305
file << "# Security related:" << std::endl;
305306
file << "# server certificate " << std::endl;
306307
file << "#cert: path_to_certificate_file" << std::endl;
@@ -508,7 +509,6 @@ bool Config::load(int argc, char *argv[]) {
508509
}
509510

510511
load_from_file(configfile);
511-
cubes_dump_file_flag = false;
512512
load_from_cli(argc, argv);
513513
check();
514514

src/polycubed/src/server/Resources/Endpoint/LeafResource.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -116,11 +116,10 @@ void LeafResource::CreateReplaceUpdate(const Pistache::Rest::Request &request,
116116
auto resp = WriteValue(cube_name, jbody, keys, op);
117117
errors.push_back(resp);
118118
// check if the operation completed successfully and in case update the configuration
119-
if (isOperationSuccessful(resp.error_tag)) {
120-
if (auto d = core_->get_cubes_dump()) {
121-
d->UpdateCubesConfig(request.resource(), jbody, keys, op,
122-
ResourceType::LeafResource);
123-
}
119+
if (isOperationSuccessful(resp.error_tag) &&
120+
configuration::config.getCubesDumpEnabled()) {
121+
core_->get_cubes_dump()->UpdateCubesConfig(request.resource(), jbody,
122+
keys, op, ResourceType::LeafResource);
124123
}
125124
}
126125
Server::ResponseGenerator::Generate(std::move(errors), std::move(response));

src/polycubed/src/server/Resources/Endpoint/ListResource.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include <utility>
2121
#include <vector>
2222

23+
#include "../../config.h"
2324
#include "../../Server/ResponseGenerator.h"
2425
#include "../Body/JsonNodeField.h"
2526
#include "../Body/ListKey.h"
@@ -182,11 +183,10 @@ void ListResource::CreateReplaceUpdateWhole(
182183
errors.push_back(resp);
183184
}
184185
// check if the operation completed successfully and in case update the configuration
185-
if (isOperationSuccessful(resp.error_tag)) {
186-
if (auto d = core_->get_cubes_dump()) {
187-
d->UpdateCubesConfig(request.resource(), jbody, keys, op,
188-
ResourceType::ListResource);
189-
}
186+
if (isOperationSuccessful(resp.error_tag) &&
187+
configuration::config.getCubesDumpEnabled()) {
188+
core_->get_cubes_dump()->UpdateCubesConfig(request.resource(), jbody,
189+
keys, op, ResourceType::ListResource);
190190
}
191191
}
192192
Server::ResponseGenerator::Generate(std::move(errors), std::move(response));
@@ -244,8 +244,8 @@ void ListResource::del_multiple(const Request &request,
244244
ListKeyValues keys{};
245245
dynamic_cast<const ParentResource *const>(parent_)->Keys(request, keys);
246246
errors.push_back(DeleteWhole(cube_name, keys));
247-
if (auto d = core_->get_cubes_dump()) {
248-
d->UpdateCubesConfig(request.resource(), nullptr, keys,
247+
if (configuration::config.getCubesDumpEnabled()) {
248+
core_->get_cubes_dump()->UpdateCubesConfig(request.resource(), nullptr, keys,
249249
Operation::kDelete, ResourceType::ListResource);
250250
}
251251
}

src/polycubed/src/server/Resources/Endpoint/ParentResource.cpp

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -130,15 +130,14 @@ void ParentResource::CreateReplaceUpdate(
130130
errors.push_back(resp);
131131
}
132132
// check if the operation completed successfully and in case update the configuration
133-
if (isOperationSuccessful(resp.error_tag)) {
134-
if (auto d = core_->get_cubes_dump()) {
135-
if (rpc_action_) {
136-
logger->warn("An action has been received: it is not supported "
137-
"by polycube stateful functionalities yet.");
138-
} else {
139-
d->UpdateCubesConfig(request.resource(), jbody, keys, op,
140-
ResourceType::ParentResource);
141-
}
133+
if (isOperationSuccessful(resp.error_tag) &&
134+
configuration::config.getCubesDumpEnabled()) {
135+
if (rpc_action_) {
136+
logger->warn("An action has been received: it is not supported "
137+
"by polycube stateful functionalities yet.");
138+
} else {
139+
core_->get_cubes_dump()->UpdateCubesConfig(request.resource(), jbody,
140+
keys, op, ResourceType::ParentResource);
142141
}
143142
}
144143
}
@@ -225,8 +224,8 @@ void ParentResource::del(const Request &request, ResponseWriter response) {
225224
std::vector<Response>{{ErrorTag::kNoContent, nullptr}},
226225
std::move(response));
227226
errors.push_back({ErrorTag::kCreated, nullptr});
228-
if (auto d = core_->get_cubes_dump()) {
229-
d->UpdateCubesConfig(request.resource(), nullptr, keys,
227+
if (configuration::config.getCubesDumpEnabled()) {
228+
core_->get_cubes_dump()->UpdateCubesConfig(request.resource(), nullptr, keys,
230229
Operation::kDelete, ResourceType::ParentResource);
231230
}
232231
} else {

src/polycubed/src/server/Resources/Endpoint/Service.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,8 @@ Service::CreateReplaceUpdate(const std::string &name, nlohmann::json &body,
105105
if (!update) {
106106
cube_names_.AddValue(name);
107107
}
108-
if (auto d = core_->get_cubes_dump()) {
109-
d->UpdateCubesConfig(RestServer::base + this->name_ + "/" + name + "/",
108+
if (configuration::config.getCubesDumpEnabled()) {
109+
core_->get_cubes_dump()->UpdateCubesConfig(RestServer::base + this->name_ + "/" + name + "/",
110110
body, k, op, ResourceType::Service);
111111
}
112112
}
@@ -218,9 +218,10 @@ void Service::del(const Pistache::Rest::Request &request,
218218
auto res = DeleteValue(name, k);
219219
Server::ResponseGenerator::Generate(std::vector<Response>{res},
220220
std::move(response));
221-
if (auto d = core_->get_cubes_dump()) {
222-
d->UpdateCubesConfig(RestServer::base + this->name_ + "/" + name + "/",
223-
nullptr, k, Operation::kDelete, ResourceType::Service);
221+
if (configuration::config.getCubesDumpEnabled()) {
222+
core_->get_cubes_dump()->UpdateCubesConfig(
223+
RestServer::base + this->name_ + "/" + name + "/",nullptr, k,
224+
Operation::kDelete, ResourceType::Service);
224225
}
225226
}
226227

0 commit comments

Comments
 (0)