7 #include <vnc_cfg_types.h>
8 #include <agent_types.h>
17 uuid_(uuid), firewall_policy_list_(), firewall_rule_list_() {
35 std::ostringstream buffer;
36 buffer <<
"UUID : " <<
uuid_;
37 buffer <<
" rate : " <<
rate_;
43 SLOListResp *resp =
static_cast<SLOListResp *
>(sresp);
45 vector<SLOSandeshRule> rule_list;
47 data.set_uuid(to_string(
uuid_));
50 vector<autogen::SecurityLoggingObjectRuleEntryType>::const_iterator it =
52 while (it !=
rules_.end()) {
54 rule.set_uuid(it->rule_uuid);
55 rule.set_rate(it->rate);
56 rule_list.push_back(rule);
59 data.set_rules(rule_list);
61 vector<SLOFwPolicyEntry> fp_list;
65 item.set_firewall_policy(to_string(fp_it->uuid_));
66 SLOFwPolicyEntry entry;
68 entry.set_rate(fp_it->rate_);
69 fp_list.push_back(entry);
72 data.set_firewall_policy_list(fp_list);
74 vector<SLOSandeshRule> fr_list;
78 item.set_uuid(to_string(fr_it->uuid_));
79 item.set_rate(fr_it->rate_);
80 fr_list.push_back(item);
83 data.set_firewall_rule_list(fr_list);
85 vector<SLOSandeshData> &list =
86 const_cast<std::vector<SLOSandeshData>&
>(resp->get_slo_list());
99 (
const std::vector<autogen::SecurityLoggingObjectRuleEntryType> &lhs,
100 const std::vector<autogen::SecurityLoggingObjectRuleEntryType> &rhs)
const {
101 if (lhs.size() != rhs.size()) {
104 vector<autogen::SecurityLoggingObjectRuleEntryType>::const_iterator lit =
106 vector<autogen::SecurityLoggingObjectRuleEntryType>::const_iterator rit =
108 while (lit != lhs.end() && rit != rhs.end()) {
109 if (lit->rule_uuid != rit->rule_uuid) {
112 if (lit->rate != rit->rate) {
162 DB *db,
const std::string &name):
172 const std::string &name) {
176 (
static_cast<DBTable *
>(table))->Init();
180 std::unique_ptr<DBEntry>
185 return std::unique_ptr<DBEntry>(
static_cast<DBEntry *
>(slo));
193 return static_cast<DBEntry *
>(slo);
230 autogen::SecurityLoggingObject *cfg =
231 static_cast <autogen::SecurityLoggingObject *> (node->
GetObject());
233 autogen::IdPermsType id_perms = cfg->id_perms();
234 CfgUuidSet(id_perms.uuid.uuid_mslong, id_perms.uuid.uuid_lslong, u);
253 autogen::SecurityLoggingObject *data =
254 static_cast<autogen::SecurityLoggingObject *
>(node->
GetObject());
256 autogen::IdPermsType id_perms = data->id_perms();
260 id_perms.enable, node->
name());
263 node->
begin(table->GetGraph());
264 iter != node->
end(table->GetGraph()); ++iter) {
272 "firewall-policy-security-logging-object") == 0) {
273 autogen::FirewallPolicySecurityLoggingObject *fp_slo_link =
274 static_cast<autogen::FirewallPolicySecurityLoggingObject *
>
276 const autogen::SloRateType &slo_rate = fp_slo_link->data();
278 FindAdjacentIFMapNode(adj_node,
"firewall-policy");
281 autogen::FirewallPolicy *fp =
282 static_cast<autogen::FirewallPolicy *
>(fp_node->
GetObject());
283 autogen::IdPermsType id_perms = fp->id_perms();
284 CfgUuidSet(id_perms.uuid.uuid_mslong, id_perms.uuid.uuid_lslong,
292 "firewall-rule-security-logging-object") == 0) {
293 autogen::FirewallRuleSecurityLoggingObject *fr_slo_link =
294 static_cast<autogen::FirewallRuleSecurityLoggingObject *
>
296 const autogen::SloRateType &slo_rate = fr_slo_link->data();
298 FindAdjacentIFMapNode(adj_node,
"firewall-rule");
301 autogen::FirewallRule *fr =
302 static_cast<autogen::FirewallRule *
>(fr_node->
GetObject());
303 autogen::IdPermsType id_perms = fr->id_perms();
304 CfgUuidSet(id_perms.uuid.uuid_mslong, id_perms.uuid.uuid_lslong,
314 void SLOListReq::HandleRequest()
const {
317 sand->DoSandesh(sand);
322 const std::string &context) {
virtual bool IFNodeToReq(IFMapNode *node, DBRequest &req, const boost::uuids::uuid &u)
virtual bool OperDBDelete(DBEntry *entry, const DBRequest *req)
virtual AgentSandeshPtr GetAgentSandesh(const AgentSandeshArguments *args, const std::string &context)
static void CfgUuidSet(uint64_t ms_long, uint64_t ls_long, boost::uuids::uuid &u)
virtual bool Change(const DBRequest *req)
SecurityLoggingObjectTable(Agent *agent, DB *db, const std::string &name)
std::string GetString(const std::string &key) const
SloRuleList firewall_rule_list_
SloRuleList firewall_rule_list_
virtual ~SecurityLoggingObject()
virtual DBEntry * OperDBAdd(const DBRequest *req)
virtual std::unique_ptr< DBEntry > AllocEntry(const DBRequestKey *k) const
ConfigManager * config_manager() const
std::unique_ptr< DBRequestData > data
virtual const char * Typename() const =0
bool Enqueue(DBRequest *req)
adjacency_iterator end(DBGraph *graph)
virtual ~SecurityLoggingObjectTable()
std::unique_ptr< DBRequestKey > KeyPtr
bool IsEqual(const std::vector< autogen::SecurityLoggingObjectRuleEntryType > &lhs, const std::vector< autogen::SecurityLoggingObjectRuleEntryType > &rhs) const
SecurityLoggingObjectData * BuildData(IFMapNode *node) const
KeyPtr GetDBRequestKey() const
void AddSecurityLoggingObjectNode(IFMapNode *node)
std::unique_ptr< DBRequestKey > key
SloRuleList firewall_policy_list_
std::vector< autogen::SecurityLoggingObjectRuleEntryType > rules_
class boost::shared_ptr< AgentSandesh > AgentSandeshPtr
virtual bool IFNodeToUuid(IFMapNode *node, boost::uuids::uuid &u)
virtual bool DBEntrySandesh(Sandesh *resp, std::string &name) const
SecurityLoggingObject(const boost::uuids::uuid &uuid)
const std::string & name() const
bool ProcessConfig(IFMapNode *node, DBRequest &req, const boost::uuids::uuid &u)
IFMapObject * GetObject()
std::string ToString() const
virtual bool IsLess(const DBEntry &rhs) const
virtual bool OperDBOnChange(DBEntry *entry, const DBRequest *req)
bool SkipNode(IFMapNode *node)
adjacency_iterator begin(DBGraph *graph)
std::vector< autogen::SecurityLoggingObjectRuleEntryType > rules_
static DBTableBase * CreateTable(Agent *agent, DB *db, const std::string &name)
SloRuleList firewall_policy_list_
virtual void SetKey(const DBRequestKey *key)
void set_agent(Agent *agent)