Apply latest query-builder to policy-storage
authorSangwan Kwon <sangwan.kwon@samsung.com>
Thu, 30 Jan 2020 06:08:12 +0000 (15:08 +0900)
committerSangwan Kwon <sangwan.kwon@samsung.com>
Thu, 30 Jan 2020 06:08:12 +0000 (15:08 +0900)
Signed-off-by: Sangwan Kwon <sangwan.kwon@samsung.com>
src/vist/policy/db-schema.hpp
src/vist/policy/policy-storage.cpp

index 77fa84dae4747f76eb9059e26dd9417f2f923cb5..54825045ca50a0c0bef254b2f235d1a81e113c90 100644 (file)
 
 #pragma once
 
+#include <vist/query-builder.hpp>
+
 #include <string>
 
+using namespace vist::tsqb;
+
 namespace vist {
 namespace policy {
 namespace schema {
@@ -38,6 +42,17 @@ struct PolicyDefinition {
        std::string ivalue;
 };
 
+inline Table admin { "ADMIN", Column("name", &Admin::name),
+                                                         Column("activated", &Admin::activated) };
+
+inline Table policyManaged { "POLICY_MANAGED", Column("admin", &PolicyManaged::admin),
+                                                                                          Column("policy", &PolicyManaged::policy),
+                                                                                          Column("value", &PolicyManaged::value) };
+
+inline Table policyDefinition { "POLICY_DEFINITION",
+                                                               Column("name", &PolicyDefinition::name),
+                                                               Column("ivalue", &PolicyDefinition::ivalue) };
+
 } // namespace schema
 } // namespace policy
 } // namespace vist
index 081385ea1f980b06cdbd95cfa1b276eef2e810b4..430d180e113f23a2e37196dceb5517b879e32ad3 100644 (file)
 #include <algorithm>
 #include <fstream>
 
-using namespace vist::tsqb;
-using namespace vist::policy::schema;
-
 namespace {
 
-Table adminTable { "ADMIN", Column("name", &Admin::name),
-                                                       Column("activated", &Admin::activated) };
-
-Table polManagedTable { "POLICY_MANAGED", Column("admin", &PolicyManaged::admin),
-                                                                                 Column("policy", &PolicyManaged::policy),
-                                                                                 Column("value", &PolicyManaged::value) };
-
-Table polDefinitionTable { "POLICY_DEFINITION", Column("name", &PolicyDefinition::name),
-                                                                                               Column("ivalue", &PolicyDefinition::ivalue) };
-
 const std::string SCRIPT_BASE = SCRIPT_INSTALL_DIR;
 const std::string SCRIPT_CREATE_SCHEMA  = "create-schema";
 
@@ -70,7 +57,7 @@ void PolicyStorage::sync()
 void PolicyStorage::syncPolicyDefinition()
 {
        this->definitions.clear();
-       std::string query = polDefinitionTable.selectAll();
+       std::string query = schema::policyDefinition.selectAll();
        database::Statement stmt(*database, query);
 
        while (stmt.step()) {
@@ -85,7 +72,7 @@ void PolicyStorage::syncPolicyDefinition()
 void PolicyStorage::syncAdmin()
 {
        this->admins.clear();
-       std::string query = adminTable.selectAll();
+       std::string query = schema::admin.selectAll();
        database::Statement stmt(*database, query);
 
        while (stmt.step()) {
@@ -99,7 +86,7 @@ void PolicyStorage::syncAdmin()
 void PolicyStorage::syncPolicyManaged()
 {
        this->managedPolicies.clear();
-       std::string query = polManagedTable.selectAll();
+       std::string query = schema::policyManaged.selectAll();
        database::Statement stmt(*database, query);
 
        while (stmt.step()) {
@@ -137,8 +124,8 @@ void PolicyStorage::define(const std::string& policy, const PolicyValue& ivalue)
 
        PolicyDefinition pd = { policy, ivalue.dump() };
 
-       std::string query = polDefinitionTable.insert(&PolicyDefinition::name,
-                                                                                                 &PolicyDefinition::ivalue);
+       std::string query = schema::policyDefinition.insert(&PolicyDefinition::name,
+                                                                                                           &PolicyDefinition::ivalue);
        database::Statement stmt(*database, query);
        stmt.bind(1, pd.name);
        stmt.bind(2, pd.ivalue);
@@ -160,7 +147,7 @@ void PolicyStorage::enroll(const std::string& name)
        /// Make admin deactivated as default.
        Admin admin = {name , 0};
 
-       std::string query = adminTable.insert(&Admin::name, &Admin::activated);
+       std::string query = schema::admin.insert(&Admin::name, &Admin::activated);
        database::Statement stmt(*database, query);
        stmt.bind(1, admin.name);
        stmt.bind(2, admin.activated);
@@ -190,7 +177,7 @@ void PolicyStorage::disenroll(const std::string& name)
                this->admins.erase(name);
        }
 
-       std::string query = adminTable.remove().where(expr(&Admin::name) == name);
+       std::string query = schema::admin.remove().where(expr(&Admin::name) == name);
        database::Statement stmt(*database, query);
        stmt.bind(1, name);
        if (!stmt.exec())
@@ -206,8 +193,8 @@ void PolicyStorage::activate(const std::string& admin, bool state)
                THROW(ErrCode::LogicError) << "Not exist admin: " << admin;
 
        DEBUG(VIST) << "Activate admin: " << admin;
-       std::string query = adminTable.update(&Admin::activated)
-                                                                                .where(expr(&Admin::name) == admin);
+       std::string query = schema::admin.update(&Admin::activated)
+                                                                        .where(expr(&Admin::name) == admin);
        database::Statement stmt(*this->database, query);
        stmt.bind(1, static_cast<int>(state));
        stmt.bind(2, admin);
@@ -248,9 +235,9 @@ void PolicyStorage::update(const std::string& admin,
        if (this->definitions.find(policy) == this->definitions.end())
                THROW(ErrCode::LogicError) << "Not exist policy: " << policy;
 
-       std::string query = polManagedTable.update(&PolicyManaged::value)
-                                                                          .where(expr(&PolicyManaged::admin) == admin &&
-                                                                           expr(&PolicyManaged::policy) == policy);
+       std::string query = schema::policyManaged.update(&PolicyManaged::value)
+                                                                                        .where(expr(&PolicyManaged::admin) == admin &&
+                                                                                                       expr(&PolicyManaged::policy) == policy);
        database::Statement stmt(*this->database, query);
        stmt.bind(1, value.dump());
        stmt.bind(2, admin);