5 #ifndef __AGENT_OPER_INSTANCE_MANAGER_H__
6 #define __AGENT_OPER_INSTANCE_MANAGER_H__
8 #include <boost/uuid/uuid.hpp>
21 #define INSTANCE_MANAGER_TRACE(obj, ...) \
23 InstanceManager##obj::TraceMsg(InstanceManagerTraceBuf, __FILE__, __LINE__, __VA_ARGS__);\
77 void Initialize(
DB *database,
const std::string &netns_cmd,
78 const std::string &docker_cmd,
const int netns_workers,
79 const int netns_timeout);
151 typedef std::map<InstanceTask *, ServiceInstance *>
TaskSvcMap;
255 boost::system::error_code
ec_;
void InitSigHandler(AgentSignal *signal)
std::vector< InstanceManagerAdapter * > adapters_
void SetStaleTimerInterval(int minutes)
void OnExitEventHandler(InstanceManagerChildEvent event)
bool StartTask(InstanceTaskQueue *task_queue, InstanceTask *task)
ServiceInstance * GetSvcInstance(InstanceTask *task) const
bool DequeueEvent(InstanceManagerChildEvent event)
void Enqueue(InstanceTask *task, const boost::uuids::uuid &uuid)
void OnTaskTimeoutEventHandler(InstanceManagerChildEvent event)
void SetNamespaceStorePath(std::string path)
std::map< InstanceTask *, ServiceInstance * > TaskSvcMap
void ClearLastCmdType(ServiceInstance *svc_instance)
void SetState(ServiceInstance *svc_instance, InstanceState *state)
static const int kWorkersDefault
void SetNetNSCmd(const std::string &netns_cmd)
void OnExit(InstanceTask *task, const boost::system::error_code &ec)
static const int kReattemptsDefault
void UpdateStateStatusType(InstanceManagerChildEvent event)
std::vector< InstanceTaskQueue * > task_queues_
InstanceTaskQueue * GetTaskQueue(const std::string &str)
void OnError(InstanceTask *task, const std::string errors)
static const int kTimeoutDefault
InstanceState * GetState(ServiceInstance *) const
void UnregisterSvcInstance(ServiceInstance *svc_instance)
DISALLOW_COPY_AND_ASSIGN(InstanceManager)
bool DeleteState(ServiceInstance *svc_instance)
InstanceManagerAdapter * FindApplicableAdapter(const ServiceInstance::Properties &props)
DBTableBase::ListenerId si_listener_
void Initialize(DB *database, const std::string &netns_cmd, const std::string &docker_cmd, const int netns_workers, const int netns_timeout)
void ClearState(ServiceInstance *svc_instance)
void OnErrorEventHandler(InstanceManagerChildEvent event)
std::map< std::string, int > last_cmd_types_
void ScheduleNextTask(InstanceTaskQueue *task_queue)
WorkQueue< InstanceManagerChildEvent > work_queue_
std::unique_ptr< NamespaceStaleCleaner > stale_cleaner_
void OnTaskTimeout(InstanceTaskQueue *task_queue)
void StopStaleNetNS(ServiceInstance::Properties &props)
TaskSvcMap task_svc_instances_
void SetLastCmdType(ServiceInstance *svc_instance, int last_cmd_type)
void StopServiceInstance(ServiceInstance *svc_instance, InstanceState *state)
friend class InstanceManagerTest
void StartServiceInstance(ServiceInstance *svc_instance, InstanceState *state, bool update)
void RegisterSvcInstance(InstanceTask *task, ServiceInstance *svc_instance)
std::string loadbalancer_config_path_
int stale_timer_interval_
std::string namespace_store_path_
int GetLastCmdType(ServiceInstance *svc_instance) const
void RegisterSigHandler()
void EventObserver(DBTablePartBase *db_part, DBEntryBase *entry)
void set_pid(const pid_t &pid)
std::string errors() const
int tasks_running() const
void set_cmd(const std::string &cmd)
boost::system::error_code ec_
const ServiceInstance::Properties & properties() const
void set_status(const int status)
ServiceInstance::Properties properties_
void set_errors(const std::string &errors)
void set_status_type(const int status)
void set_properties(const ServiceInstance::Properties &properties)
SandeshTraceBufferPtr InstanceManagerTraceBuf
boost::shared_ptr< TraceBuffer< SandeshTrace > > SandeshTraceBufferPtr
InstanceTaskQueue * task_queue
InstanceManagerChildEvent()