OpenSDN source code
health_check.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2016 Juniper Networks, Inc. All rights reserved.
3  */
4 
5 #ifndef SRC_VNSW_AGENT_SERVICES_HEALTH_CHECK_H_
6 #define SRC_VNSW_AGENT_SERVICES_HEALTH_CHECK_H_
7 
8 #include <boost/scoped_ptr.hpp>
9 #include <cmn/agent.h>
10 #include <oper_db.h>
11 
13 #define HEALTH_CHECK_TRACE(obj, ...)\
14 do {\
15  HealthCheck##obj::TraceMsg(HealthCheckTraceBuf, __FILE__, __LINE__,\
16  __VA_ARGS__);\
17 } while (false)
18 
19 class Interface;
20 class HealthCheckTable;
21 class HealthCheckService;
22 class MetaDataIp;
24 class InstanceTask;
25 class InstanceTaskExecvp;
26 
28 // HealthCheck module provides service to monitor status of given service
29 // on an interface and updates the interface state accordingly to propagate
30 // information accordingly
32 
35  AgentOperDBKey(), uuid_(id) { }
37  AgentOperDBKey(sub_op), uuid_(id) { }
38  virtual ~HealthCheckServiceKey() { }
39 
41 };
42 
45  const std::string &name,
46  const std::string &monitor_type,
47  const std::string &stype,
48  uint8_t ip_proto,
49  const std::string &http_method,
50  const std::string &url_path,
51  uint16_t url_port,
52  const std::string &expected_codes,
53  uint32_t delay, uint64_t delay_usecs,
54  uint32_t timeout, uint64_t timeout_usecs,
55  uint32_t max_retries,
56  bool is_all_ip,
57  std::set<IpAddress> cfg_target_ip_list,
59  AgentOperDBData(agent, ifmap_node), dest_ip_(dest_ip), name_(name),
60  monitor_type_(monitor_type), service_type_(stype), ip_proto_(ip_proto),
61  http_method_(http_method), url_path_(url_path), url_port_(url_port),
62  expected_codes_(expected_codes), delay_(delay),
63  delay_usecs_(delay_usecs), timeout_(timeout),
64  timeout_usecs_(timeout_usecs), max_retries_(max_retries),
65  is_all_ip_(is_all_ip),
66  new_target_ip_list_(cfg_target_ip_list) {
67  }
69 
71  std::string name_;
72  std::string monitor_type_;
73  // Service type of HealthCheck segment/end-to-end/link-local
74  std::string service_type_;
75  uint8_t ip_proto_;
76  std::string http_method_;
77  std::string url_path_;
78  uint16_t url_port_;
79  std::string expected_codes_;
80  uint32_t delay_;
81  uint64_t delay_usecs_;
82  uint32_t timeout_;
83  uint64_t timeout_usecs_;
84  uint32_t max_retries_;
85  std::set<boost::uuids::uuid> intf_uuid_list_;
86  std::set<boost::uuids::uuid> vn_uuid_list_;
87  bool is_all_ip_;
88  std::set<IpAddress> new_target_ip_list_;
89 };
90 
92 public:
93  enum EventType {
99  };
100 
103  const std::string &message);
104  virtual ~HealthCheckInstanceEvent();
105 
109  std::string message_;
111 };
112 
114 public:
115 
117  MetaDataIpAllocator *allocator,
118  VmInterface *intf,
119  bool ignore_status_event);
120  virtual ~HealthCheckInstanceBase();
121 
122  virtual bool CreateInstanceTask() = 0;
123 
124  // return true it instance is scheduled to destroy
125  // when API returns false caller need to assure delete of
126  // Health Check Instance
127  virtual bool DestroyInstanceTask() = 0;
128  virtual bool RunInstanceTask() = 0;
129  virtual bool StopInstanceTask() = 0;
130  virtual bool UpdateInstanceTask() { return true; }
131 
132  // OnRead Callback for Task
133  void OnRead(const std::string &data);
134  // OnExit Callback for Task
135  void OnExit(const boost::system::error_code &ec);
136  // Callback to enqueue set service
138  // Callback to enqueue stop task
140 
141  virtual void ResyncTarget(const HealthCheckService *service) const;
143  std::string to_string();
144  bool active() {return active_;}
145  virtual bool IsRunning() const { return true; }
146  HealthCheckService *service() const { return service_.get(); }
147  InterfaceRef interface() const { return intf_; }
148  MetaDataIp *ip() const { return ip_.get(); }
149  const std::string &last_update_time() const { return last_update_time_; }
151  void set_source_ip(const IpAddress &ip) { source_ip_ = ip; }
152  IpAddress get_source_ip() const { return source_ip_; };
153  IpAddress source_ip() const;
155  void set_destination_ip(const IpAddress &ip);
156  IpAddress destination_ip() const;
158  const VmInterface *itf) const;
159 
160 protected:
161  void EnqueueResync(const HealthCheckService *service, Interface *itf) const;
162  friend class HealthCheckTable;
163  // reference to health check service under
164  // which this instance is running
166  // Interface associated to this HealthCheck Instance
168  // MetaData IP Created for this HealthCheck Instance
169  boost::scoped_ptr<MetaDataIp> ip_;
170  // current status of HealthCheckInstance
171  bool active_;
172  // last update time
173  std::string last_update_time_;
174  // instance is delete marked
175  bool deleted_;
176  // true if the health check up or down status event has to be ignored
178 
179  // source IP to be used while doing the health check
181  // destination IP for the health check
183 
184 private:
186 };
187 
188 // Health check instance using the instance task infrastructure
190 public:
192  static const std::string kHealthCheckCmd;
193 
195  MetaDataIpAllocator *allocator, VmInterface *intf,
196  bool ignore_status_event);
197  virtual ~HealthCheckInstanceTask();
198 
199  virtual bool CreateInstanceTask();
200  virtual bool DestroyInstanceTask();
201  virtual bool RunInstanceTask();
202  virtual bool StopInstanceTask();
203  virtual bool IsRunning() const;
204 
205 private:
206  friend class HealthCheckTable;
207 
209 
210  // task managing external running script for status
211  boost::scoped_ptr<HeathCheckProcessInstance> task_;
212 
214 };
215 
216 // Health check instance using the services infrastructure
218 public:
220  MetaDataIpAllocator *allocator,
221  VmInterface *intf, VmInterface *other_intf,
222  bool ignore_status_event, bool multi_hop);
223  virtual ~HealthCheckInstanceService();
224 
225  virtual bool CreateInstanceTask();
226  virtual bool DestroyInstanceTask();
227  virtual bool RunInstanceTask();
228  virtual bool StopInstanceTask();
229  virtual bool UpdateInstanceTask();
230  virtual void ResyncTarget(const HealthCheckService *service) const;
232 
233  bool is_multi_hop() const { return multi_hop_; }
234 
235 private:
236  friend class HealthCheckTable;
237 
238  // Other Interface associated to this HealthCheck Instance when
239  // HealthCheck service type is "segment"
241 
242  // BFD health check can be single hop or multi hop, when started for a
243  // BGP flow, make it multi hop
245 
247 };
248 
250 public:
252  MetaDataIpAllocator *allocator,
253  VmInterface *intf, VmInterface *other_intf,
254  bool ignore_status_event, bool multi_hop);
256 
257  virtual void ResyncTarget(const HealthCheckService *service) const;
258  virtual void set_destination_mac(const MacAddress &mac) {
259  mac_ = mac;
260  }
261  virtual const MacAddress destination_mac() const { return mac_; }
262 
263 private:
264  friend class HealthCheckTable;
265 
267 
269 };
270 
271 class HealthCheckService : AgentRefCount<HealthCheckService>,
272  public AgentOperDBEntry {
273 public:
280  };
281  typedef std::map<boost::uuids::uuid, HealthCheckInstanceBase *> InstanceList;
282  typedef std::map<IpAddress, HealthCheckInstanceBase *> IpInstanceList;
283 
285  const boost::uuids::uuid &id);
287 
288  virtual bool IsLess(const DBEntry &rhs) const;
289  virtual std::string ToString() const;
290  virtual KeyPtr GetDBRequestKey() const;
291  virtual void SetKey(const DBRequestKey *key);
292  uint32_t GetRefCount() const {
294  }
295 
296  bool DBEntrySandesh(Sandesh *resp, std::string &name) const;
297 
298  void PostAdd();
300 
302  VmInterface *paired_vmi,
303  const IpAddress &source_ip,
304  const IpAddress &destination_ip,
305  const MacAddress &destination_mac,
306  bool ignore_status_event,
307  bool multi_hop);
309  VmInterface *intrface, const IpAddress &source_ip,
310  const IpAddress &destination_ip,
311  const MacAddress destination_mac = MacAddress()) {
312  // health check status event is ignored
313  return StartHealthCheckService(intrface, NULL, source_ip,
314  destination_ip, destination_mac,
315  true, true);
316  }
318 
321  const VmInterface *intf);
323  void DeleteInstances();
324 
325  const boost::uuids::uuid &uuid() const { return uuid_; }
326  const std::string &name() const { return name_; }
327 
328  uint8_t ip_proto() const { return ip_proto_; }
329  uint16_t url_port() const { return url_port_; }
330  uint32_t delay() const { return delay_; }
331  uint64_t delay_usecs() const { return delay_usecs_; }
332  uint32_t timeout() const { return timeout_; }
333  uint64_t timeout_usecs() const { return timeout_usecs_; }
334  uint32_t max_retries() const { return max_retries_; }
335  const std::string &url_path() const { return url_path_; }
336  const std::string &monitor_type() const { return monitor_type_; }
337  const HealthCheckTable *table() const { return table_; }
338  bool IsInstanceTaskBased() const;
339  bool IsSegmentHealthCheckService() const;
340  bool IsVnIpListHealthCheckService() const;
342  return health_check_type_;
343  }
344  const std::set<boost::uuids::uuid> &GetVnUuidList() {
345  return vn_uuid_list_;
346  }
347  const std::set<IpAddress> &GetTargetIpList() {
348  return target_ip_list_;
349  }
351 
352  if (is_hc_enable_all_ip_ ||
353  target_ip_list_.find(ip) != target_ip_list_.end()) {
354  return true;
355  }
356  return false;
357  }
358  IpAddress dest_ip() const { return dest_ip_;}
360 
361 private:
363 
365 
369  std::string name_;
370  // monitor type of service PING/HTTP/BFD etc
371  std::string monitor_type_;
372  // Service type of HealthCheck segment/end-to-end/link-local
373  std::string service_type_;
374  // ip_proto derived from monitor_type_
375  uint8_t ip_proto_;
376  std::string http_method_;
377  std::string url_path_;
378  // tcp/udp port numbers derived from url
379  uint16_t url_port_;
380  std::string expected_codes_;
381  uint32_t delay_;
382  uint64_t delay_usecs_;
383  uint32_t timeout_;
384  uint64_t timeout_usecs_;
385  uint32_t max_retries_;
386  // List of interfaces associated to this HealthCheck Service
389 
390  std::set<boost::uuids::uuid> vn_uuid_list_;
391  std::set<IpAddress> target_ip_list_;
393 
395 };
396 
398 public:
405  };
406  typedef boost::function<bool(HealthCheckServiceAction,
409 
410  typedef boost::function<void(const HealthCheckInstanceService *)>
412 
413  HealthCheckTable(Agent *agent, DB *db, const std::string &name);
414  virtual ~HealthCheckTable();
415 
416  static DBTableBase *CreateTable(Agent *agent, DB *db,
417  const std::string &name);
418 
419  virtual std::unique_ptr<DBEntry> AllocEntry(const DBRequestKey *k) const;
420  virtual size_t Hash(const DBEntry *entry) const {return 0;}
421  virtual size_t Hash(const DBRequestKey *key) const {return 0;}
422 
423  virtual DBEntry *OperDBAdd(const DBRequest *req);
424  virtual bool OperDBOnChange(DBEntry *entry, const DBRequest *req);
425  virtual bool OperDBResync(DBEntry *entry, const DBRequest *req);
426  virtual bool OperDBDelete(DBEntry *entry, const DBRequest *req);
427 
428  virtual bool IFNodeToReq(IFMapNode *node, DBRequest &req,
429  const boost::uuids::uuid &u);
430  bool ProcessConfig(IFMapNode *node, DBRequest &req,
431  const boost::uuids::uuid &u);
432  virtual bool IFNodeToUuid(IFMapNode *node, boost::uuids::uuid &u);
434  const std::string &context);
435 
437 
440 
444  }
448  }
451  }
454  }
455 
456 private:
457 
462 };
463 
466  const VmInterface *intf):
467  AgentOperDBData(agent, node), intf_(intf) {}
469 };
470 
471 #endif // SRC_VNSW_AGENT_SERVICES_HEALTH_CHECK_H_
boost::asio::ip::address IpAddress
Definition: address.h:13
boost::intrusive_ptr< HealthCheckService > HealthCheckServiceRef
Definition: agent.h:165
boost::intrusive_ptr< Interface > InterfaceRef
Definition: agent.h:49
class boost::shared_ptr< AgentSandesh > AgentSandeshPtr
Definition: agent_db.h:18
Agent * agent() const
Definition: agent_db.h:213
uint32_t GetRefCount() const
Definition: agent_db.h:54
Definition: agent.h:360
std::unique_ptr< DBRequestKey > KeyPtr
Definition: db_entry.h:25
const std::string & name() const
Definition: db_table.h:110
Definition: db.h:24
virtual bool StopInstanceTask()=0
virtual bool RunInstanceTask()=0
void set_service(HealthCheckService *service)
Definition: health_check.cc:82
IpAddress destination_ip() const
MetaDataIp * ip() const
Definition: health_check.h:148
IpAddress update_source_ip()
bool IsStatusEventIgnored() const
Definition: health_check.h:150
HealthCheckInstanceBase(HealthCheckService *service, MetaDataIpAllocator *allocator, VmInterface *intf, bool ignore_status_event)
Definition: health_check.cc:41
InterfaceRef interface() const
Definition: health_check.h:147
IpAddress get_source_ip() const
Definition: health_check.h:152
void set_source_ip(const IpAddress &ip)
Definition: health_check.h:151
DISALLOW_COPY_AND_ASSIGN(HealthCheckInstanceBase)
virtual bool UpdateInstanceTask()
Definition: health_check.h:130
void StopTask(HealthCheckService *service)
void set_destination_ip(const IpAddress &ip)
std::string last_update_time_
Definition: health_check.h:173
void OnExit(const boost::system::error_code &ec)
void EnqueueHealthCheckResync(const HealthCheckService *service, const VmInterface *itf) const
virtual bool DestroyInstanceTask()=0
HealthCheckServiceRef service_
Definition: health_check.h:165
virtual ~HealthCheckInstanceBase()
Definition: health_check.cc:60
virtual bool IsRunning() const
Definition: health_check.h:145
IpAddress source_ip() const
void OnRead(const std::string &data)
boost::scoped_ptr< MetaDataIp > ip_
Definition: health_check.h:169
const std::string & last_update_time() const
Definition: health_check.h:149
void SetService(HealthCheckService *service)
virtual void ResyncTarget(const HealthCheckService *service) const
Definition: health_check.cc:77
virtual bool CreateInstanceTask()=0
HealthCheckService * service() const
Definition: health_check.h:146
void EnqueueResync(const HealthCheckService *service, Interface *itf) const
Definition: health_check.cc:68
virtual bool DestroyInstanceTask()
HealthCheckInstanceService(HealthCheckService *service, MetaDataIpAllocator *allocator, VmInterface *intf, VmInterface *other_intf, bool ignore_status_event, bool multi_hop)
virtual bool RunInstanceTask()
void EnqueueMacIpLearningHCStatus(const HealthCheckService *service) const
virtual void ResyncTarget(const HealthCheckService *service) const
virtual bool StopInstanceTask()
DISALLOW_COPY_AND_ASSIGN(HealthCheckInstanceService)
virtual bool CreateInstanceTask()
virtual bool UpdateInstanceTask()
virtual bool DestroyInstanceTask()
virtual ~HealthCheckInstanceTask()
HealthCheckInstanceTask(HealthCheckService *service, MetaDataIpAllocator *allocator, VmInterface *intf, bool ignore_status_event)
virtual bool StopInstanceTask()
virtual bool RunInstanceTask()
DISALLOW_COPY_AND_ASSIGN(HealthCheckInstanceTask)
InstanceTaskExecvp HeathCheckProcessInstance
Definition: health_check.h:191
virtual bool CreateInstanceTask()
virtual bool IsRunning() const
static const std::string kHealthCheckCmd
Definition: health_check.h:192
boost::scoped_ptr< HeathCheckProcessInstance > task_
Definition: health_check.h:211
virtual void set_destination_mac(const MacAddress &mac)
Definition: health_check.h:258
HealthCheckMacIpInstanceService(HealthCheckService *service, MetaDataIpAllocator *allocator, VmInterface *intf, VmInterface *other_intf, bool ignore_status_event, bool multi_hop)
virtual const MacAddress destination_mac() const
Definition: health_check.h:261
DISALLOW_COPY_AND_ASSIGN(HealthCheckMacIpInstanceService)
virtual void ResyncTarget(const HealthCheckService *service) const
uint64_t timeout_usecs_
Definition: health_check.h:384
HealthCheckType health_check_type_
Definition: health_check.h:388
std::map< IpAddress, HealthCheckInstanceBase * > IpInstanceList
Definition: health_check.h:282
bool IsVnIpListHealthCheckService() const
const std::set< IpAddress > & GetTargetIpList()
Definition: health_check.h:347
HealthCheckType health_check_type() const
Definition: health_check.h:341
uint32_t delay() const
Definition: health_check.h:330
const HealthCheckTable * table() const
Definition: health_check.h:337
virtual std::string ToString() const
const std::string & url_path() const
Definition: health_check.h:335
uint32_t GetRefCount() const
Definition: health_check.h:292
std::string http_method_
Definition: health_check.h:376
HealthCheckType GetHealthCheckType() const
void StopHealthCheckService(HealthCheckInstanceBase *instance)
void ResyncHealthCheckInterface(const HealthCheckService *service, const VmInterface *intf)
std::set< IpAddress > target_ip_list_
Definition: health_check.h:391
HealthCheckService(const HealthCheckTable *table, const boost::uuids::uuid &id)
virtual bool IsLess(const DBEntry &rhs) const
const HealthCheckTable * table_
Definition: health_check.h:366
HealthCheckInstanceBase * StartHealthCheckService(VmInterface *intrface, const IpAddress &source_ip, const IpAddress &destination_ip, const MacAddress destination_mac=MacAddress())
Definition: health_check.h:308
std::set< boost::uuids::uuid > vn_uuid_list_
Definition: health_check.h:390
boost::uuids::uuid uuid_
Definition: health_check.h:367
bool IsSegmentHealthCheckService() const
void UpdateInterfaceInstanceServiceReference(const VmInterface *intf)
IpAddress dest_ip() const
Definition: health_check.h:358
DISALLOW_COPY_AND_ASSIGN(HealthCheckService)
uint32_t max_retries() const
Definition: health_check.h:334
InstanceList intf_list_
Definition: health_check.h:387
uint8_t ip_proto() const
Definition: health_check.h:328
bool DBEntrySandesh(Sandesh *resp, std::string &name) const
std::string monitor_type_
Definition: health_check.h:371
bool IsInstanceTaskBased() const
virtual void SetKey(const DBRequestKey *key)
uint32_t timeout() const
Definition: health_check.h:332
const std::string & name() const
Definition: health_check.h:326
virtual KeyPtr GetDBRequestKey() const
std::map< boost::uuids::uuid, HealthCheckInstanceBase * > InstanceList
Definition: health_check.h:281
bool IsTargetIpPresent(IpAddress &ip)
Definition: health_check.h:350
uint64_t timeout_usecs() const
Definition: health_check.h:333
HealthCheckInstanceBase * StartHealthCheckService(VmInterface *intrface, VmInterface *paired_vmi, const IpAddress &source_ip, const IpAddress &destination_ip, const MacAddress &destination_mac, bool ignore_status_event, bool multi_hop)
bool IsHcEnableAllTargetIp() const
Definition: health_check.h:359
std::string expected_codes_
Definition: health_check.h:380
const std::set< boost::uuids::uuid > & GetVnUuidList()
Definition: health_check.h:344
uint16_t url_port() const
Definition: health_check.h:329
std::string url_path_
Definition: health_check.h:377
std::string name_
Definition: health_check.h:369
const std::string & monitor_type() const
Definition: health_check.h:336
uint64_t delay_usecs() const
Definition: health_check.h:331
std::string service_type_
Definition: health_check.h:373
const boost::uuids::uuid & uuid() const
Definition: health_check.h:325
bool Copy(HealthCheckTable *table, const HealthCheckServiceData *data)
void UpdateInstanceServiceReference()
WorkQueue< HealthCheckInstanceEvent * > * inst_event_queue_
Definition: health_check.h:458
virtual AgentSandeshPtr GetAgentSandesh(const AgentSandeshArguments *args, const std::string &context)
boost::function< bool(HealthCheckServiceAction, HealthCheckInstanceService *)> HealthCheckServiceCallback
Definition: health_check.h:408
HealthCheckTable(Agent *agent, DB *db, const std::string &name)
virtual size_t Hash(const DBRequestKey *key) const
Definition: health_check.h:421
virtual std::unique_ptr< DBEntry > AllocEntry(const DBRequestKey *k) const
virtual ~HealthCheckTable()
DISALLOW_COPY_AND_ASSIGN(HealthCheckTable)
HealthCheckNotifyCallback health_check_notify_callback() const
Definition: health_check.h:452
HealthCheckNotifyCallback health_check_notify_cb_
Definition: health_check.h:460
bool ProcessConfig(IFMapNode *node, DBRequest &req, const boost::uuids::uuid &u)
virtual bool OperDBResync(DBEntry *entry, const DBRequest *req)
HealthCheckServiceCallback health_check_service_callback(HealthCheckService::HealthCheckType type) const
Definition: health_check.h:445
virtual size_t Hash(const DBEntry *entry) const
Definition: health_check.h:420
HealthCheckService * Find(const boost::uuids::uuid &u)
virtual bool OperDBOnChange(DBEntry *entry, const DBRequest *req)
void RegisterHealthCheckNotifyCallback(HealthCheckNotifyCallback fn)
Definition: health_check.h:449
boost::function< void(const HealthCheckInstanceService *)> HealthCheckNotifyCallback
Definition: health_check.h:411
virtual bool IFNodeToUuid(IFMapNode *node, boost::uuids::uuid &u)
virtual DBEntry * OperDBAdd(const DBRequest *req)
static DBTableBase * CreateTable(Agent *agent, DB *db, const std::string &name)
virtual bool IFNodeToReq(IFMapNode *node, DBRequest &req, const boost::uuids::uuid &u)
bool InstanceEventProcess(HealthCheckInstanceEvent *event)
virtual bool OperDBDelete(DBEntry *entry, const DBRequest *req)
void InstanceEventEnqueue(HealthCheckInstanceEvent *event) const
HealthCheckServiceCallback health_check_service_cb_[HealthCheckService::MAX_HEALTH_CHECK_SERVICES]
Definition: health_check.h:459
void RegisterHealthCheckCallback(HealthCheckServiceCallback fn, HealthCheckService::HealthCheckType type)
Definition: health_check.h:441
SandeshTraceBufferPtr HealthCheckTraceBuf
uint8_t type
Definition: load_balance.h:2
boost::shared_ptr< TraceBuffer< SandeshTrace > > SandeshTraceBufferPtr
Definition: sandesh_trace.h:18
DBSubOperation
Definition: agent_db.h:96
const Agent * agent() const
Definition: oper_db.h:65
IFMapNode * ifmap_node() const
Definition: oper_db.h:59
virtual ~HealthCheckInstanceEvent()
DISALLOW_COPY_AND_ASSIGN(HealthCheckInstanceEvent)
HealthCheckInstanceBase * instance_
Definition: health_check.h:106
HealthCheckInstanceEvent(HealthCheckInstanceBase *inst, HealthCheckService *service, EventType type, const std::string &message)
HealthCheckService * service_
Definition: health_check.h:107
HealthCheckResyncInterfaceData(const Agent *agent, IFMapNode *node, const VmInterface *intf)
Definition: health_check.h:465
const VmInterface * intf_
Definition: health_check.h:468
virtual ~HealthCheckServiceData()
Definition: health_check.h:68
std::set< boost::uuids::uuid > intf_uuid_list_
Definition: health_check.h:85
std::string monitor_type_
Definition: health_check.h:72
std::string expected_codes_
Definition: health_check.h:79
std::string http_method_
Definition: health_check.h:76
std::string service_type_
Definition: health_check.h:74
std::set< IpAddress > new_target_ip_list_
Definition: health_check.h:88
HealthCheckServiceData(Agent *agent, IpAddress dest_ip, const std::string &name, const std::string &monitor_type, const std::string &stype, uint8_t ip_proto, const std::string &http_method, const std::string &url_path, uint16_t url_port, const std::string &expected_codes, uint32_t delay, uint64_t delay_usecs, uint32_t timeout, uint64_t timeout_usecs, uint32_t max_retries, bool is_all_ip, std::set< IpAddress > cfg_target_ip_list, IFMapNode *ifmap_node)
Definition: health_check.h:44
std::set< boost::uuids::uuid > vn_uuid_list_
Definition: health_check.h:86
virtual ~HealthCheckServiceKey()
Definition: health_check.h:38
HealthCheckServiceKey(const boost::uuids::uuid &id, DBSubOperation sub_op)
Definition: health_check.h:36
HealthCheckServiceKey(const boost::uuids::uuid &id)
Definition: health_check.h:34
boost::uuids::uuid uuid_
Definition: health_check.h:40
boost::uuids::uuid uuid