5 #include <boost/uuid/uuid_io.hpp>
6 #include <vnc_cfg_types.h>
17 using namespace autogen;
18 using boost::uuids::nil_uuid;
23 drop_new_flows_(false) {
48 const VmKey *k =
static_cast<const VmKey *
>(key);
53 VmListResp *resp =
static_cast<VmListResp *
>(sresp);
56 if (name.empty() || str_uuid == name) {
58 data.set_uuid(str_uuid);
59 std::vector<VmSandeshData> &list =
60 const_cast<std::vector<VmSandeshData>&
>(resp->get_vm_list());
88 if ((tmp + val) >= max_flows) {
103 std::set<IntrusiveReferrer>::const_iterator it =
back_ref_set_.begin();
116 VmObjectLogInfo info;
119 vector<string> sg_list;
122 case AgentLogEvent::ADD:
123 str.assign(
"Addition ");
125 case AgentLogEvent::DEL:
126 str.assign(
"Deletion ");
128 case AgentLogEvent::CHANGE:
129 str.assign(
"Modification ");
136 info.set_uuid(str_uuid);
137 if (event != AgentLogEvent::DEL && sg_list.size()) {
138 info.set_sg_uuid_list(sg_list);
141 VM_OBJECT_LOG_LOG(
"AgentVm", SandeshLevel::SYS_INFO, info);
154 const VmKey *key =
static_cast<const VmKey *
>(k);
156 return std::unique_ptr<DBEntry>(
static_cast<DBEntry *
>(vm));
184 VmNameUuidTree::const_iterator it =
199 VirtualMachine *cfg = static_cast <VirtualMachine *> (node->
GetObject());
201 autogen::IdPermsType id_perms = cfg->id_perms();
202 CfgUuidSet(id_perms.uuid.uuid_mslong, id_perms.uuid.uuid_lslong, u);
233 void VmListReq::HandleRequest()
const {
235 sand->DoSandesh(sand);
239 const std::string &context) {
static VmTable * vm_table_
virtual string ToString() const
void update_flow_count(int val) const
std::set< IntrusiveReferrer > back_ref_set_
virtual std::unique_ptr< DBEntry > AllocEntry(const DBRequestKey *k) const
const string & GetCfgName() const
static void CfgUuidSet(uint64_t ms_long, uint64_t ls_long, boost::uuids::uuid &u)
virtual bool IFNodeToReq(IFMapNode *node, DBRequest &req, const boost::uuids::uuid &u)
virtual DBEntry * OperDBAdd(const DBRequest *req)
std::string GetString(const std::string &key) const
const boost::uuids::uuid & GetUuid() const
DBTableBase * get_table() const
boost::uuids::uuid GetVmUuid(const std::string &name)
ConfigManager * config_manager() const
void SetCfgName(std::string name)
std::unique_ptr< DBRequestData > data
uint32_t GetRefCount() const
virtual bool OperDBOnChange(DBEntry *entry, const DBRequest *req)
InterfaceTable * interface_table() const
bool Enqueue(DBRequest *req)
uint32_t max_vm_flows() const
static std::string UuidToString(const boost::uuids::uuid &id)
const boost::uuids::uuid & GetUuid() const
std::unique_ptr< DBRequestKey > KeyPtr
virtual bool OperDBDelete(DBEntry *entry, const DBRequest *req)
virtual AgentSandeshPtr GetAgentSandesh(const AgentSandeshArguments *args, const std::string &context)
static DBTableBase * CreateTable(DB *db, const std::string &name)
virtual KeyPtr GetDBRequestKey() const
bool DBEntrySandesh(Sandesh *sresp, std::string &name) const
bool drop_new_flows() const
virtual bool IFNodeToUuid(IFMapNode *node, boost::uuids::uuid &u)
tbb::atomic< int > flow_count_
void AddVmNode(IFMapNode *node)
std::unique_ptr< DBRequestKey > key
tbb::mutex back_ref_mutex_
class boost::shared_ptr< AgentSandesh > AgentSandeshPtr
VmTable(DB *db, const std::string &name)
vector< boost::uuids::uuid > SGUuidList
const std::string & name() const
IFMapObject * GetObject()
tbb::atomic< int > linklocal_flow_count_
VmEntry(const boost::uuids::uuid &id)
VmNameUuidTree vm_name_uuid_tree_
virtual bool IsLess(const DBEntry &rhs) const
uint32_t max_flows() const
static const int kDropNewFlowsRecoveryThreshold
void SendObjectLog(AgentLogEvent::type event) const
bool ProcessConfig(IFMapNode *node, DBRequest &req, const boost::uuids::uuid &u)
void SetInterfacesDropNewFlows(bool drop_new_flows) const
virtual void SetKey(const DBRequestKey *key)