Line data Source code
1 : /* 2 : * Copyright (c) 2016 Juniper Networks, Inc. All rights reserved. 3 : * Copyright Contributors to the OpenSDN project 4 : */ 5 : 6 : #include "cmn/agent.h" 7 : #include "cmn/agent_cmn.h" 8 : #include <sandesh/sandesh_types.h> 9 : #include <sandesh/sandesh.h> 10 : #include "resource_manager/resource_manager.h" 11 : #include "resource_manager/resource_table.h" 12 : #include "resource_manager/resource_cmn.h" 13 : #include "vm_interface_index.h" 14 : #include "resource_manager/resource_manager_types.h" 15 : #include "resource_manager/resource_backup.h" 16 : 17 176 : VmInterfaceIndexResourceKey::VmInterfaceIndexResourceKey(ResourceManager *rm, 18 176 : const boost::uuids::uuid &uuid, const std::string &interface_name): 19 176 : IndexResourceKey(rm, Resource::INTERFACE_INDEX), uuid_(uuid), 20 176 : interface_name_(interface_name) { 21 : 22 176 : } 23 : 24 0 : void VmInterfaceIndexResourceKey::Backup(ResourceData *data, uint16_t op){ 25 0 : IndexResourceData *index_data = static_cast<IndexResourceData *>(data); 26 0 : if (op == ResourceBackupReq::DEL) { 27 : rm()->backup_mgr()-> 28 0 : sandesh_maps().DeleteVmInterfaceResourceEntry(index_data->index()); 29 : } else { 30 0 : VmInterfaceIndexResource backup_data; 31 0 : backup_data.set_uuid(UuidToString(uuid_)); 32 0 : backup_data.set_interface_name(interface_name_); 33 0 : backup_data.set_time_stamp(UTCTimestampUsec()); 34 : rm()->backup_mgr()-> 35 0 : sandesh_maps().AddVmInterfaceResourceEntry(index_data->index(), 36 : backup_data); 37 0 : } 38 0 : rm()->backup_mgr()->sandesh_maps().vm_interface_index_table(). 39 0 : TriggerBackup(); 40 : 41 0 : } 42 3230 : bool VmInterfaceIndexResourceKey::IsLess(const ResourceKey &rhs) const { 43 3230 : const VmInterfaceIndexResourceKey *vm_key = 44 : static_cast<const VmInterfaceIndexResourceKey *>(&rhs); 45 3230 : if (uuid_ != vm_key->uuid_) 46 2467 : return uuid_ < vm_key->uuid_; 47 763 : return interface_name_ < vm_key->interface_name_; 48 : }