1 /* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */ 2 3 #ifndef HOSTSTABLE_H 4 #define HOSTSTABLE_H 5 6 #include "livestatus/table.hpp" 7 8 using namespace icinga; 9 10 namespace icinga 11 { 12 13 /** 14 * @ingroup livestatus 15 */ 16 class HostsTable final : public Table 17 { 18 public: 19 DECLARE_PTR_TYPEDEFS(HostsTable); 20 21 HostsTable(LivestatusGroupByType type = LivestatusGroupByNone); 22 23 static void AddColumns(Table *table, const String& prefix = String(), 24 const Column::ObjectAccessor& objectAccessor = Column::ObjectAccessor()); 25 26 String GetName() const override; 27 String GetPrefix() const override; 28 29 protected: 30 void FetchRows(const AddRowFunction& addRowFn) override; 31 32 static Object::Ptr HostGroupAccessor(const Value& row, LivestatusGroupByType groupByType, const Object::Ptr& groupByObject); 33 34 static Value NameAccessor(const Value& row); 35 static Value DisplayNameAccessor(const Value& row); 36 static Value AddressAccessor(const Value& row); 37 static Value Address6Accessor(const Value& row); 38 static Value CheckCommandAccessor(const Value& row); 39 static Value CheckCommandExpandedAccessor(const Value& row); 40 static Value EventHandlerAccessor(const Value& row); 41 static Value CheckPeriodAccessor(const Value& row); 42 static Value NotesAccessor(const Value& row); 43 static Value NotesExpandedAccessor(const Value& row); 44 static Value NotesUrlAccessor(const Value& row); 45 static Value NotesUrlExpandedAccessor(const Value& row); 46 static Value ActionUrlAccessor(const Value& row); 47 static Value ActionUrlExpandedAccessor(const Value& row); 48 static Value PluginOutputAccessor(const Value& row); 49 static Value PerfDataAccessor(const Value& row); 50 static Value IconImageAccessor(const Value& row); 51 static Value IconImageExpandedAccessor(const Value& row); 52 static Value IconImageAltAccessor(const Value& row); 53 static Value LongPluginOutputAccessor(const Value& row); 54 static Value MaxCheckAttemptsAccessor(const Value& row); 55 static Value FlapDetectionEnabledAccessor(const Value& row); 56 static Value ProcessPerformanceDataAccessor(const Value& row); 57 static Value AcceptPassiveChecksAccessor(const Value& row); 58 static Value EventHandlerEnabledAccessor(const Value& row); 59 static Value AcknowledgementTypeAccessor(const Value& row); 60 static Value CheckTypeAccessor(const Value& row); 61 static Value LastStateAccessor(const Value& row); 62 static Value LastHardStateAccessor(const Value& row); 63 static Value CurrentAttemptAccessor(const Value& row); 64 static Value LastNotificationAccessor(const Value& row); 65 static Value NextNotificationAccessor(const Value& row); 66 static Value NextCheckAccessor(const Value& row); 67 static Value LastHardStateChangeAccessor(const Value& row); 68 static Value HasBeenCheckedAccessor(const Value& row); 69 static Value CurrentNotificationNumberAccessor(const Value& row); 70 static Value TotalServicesAccessor(const Value& row); 71 static Value ChecksEnabledAccessor(const Value& row); 72 static Value NotificationsEnabledAccessor(const Value& row); 73 static Value AcknowledgedAccessor(const Value& row); 74 static Value StateAccessor(const Value& row); 75 static Value StateTypeAccessor(const Value& row); 76 static Value NoMoreNotificationsAccessor(const Value& row); 77 static Value LastCheckAccessor(const Value& row); 78 static Value LastStateChangeAccessor(const Value& row); 79 static Value LastTimeUpAccessor(const Value& row); 80 static Value LastTimeDownAccessor(const Value& row); 81 static Value LastTimeUnreachableAccessor(const Value& row); 82 static Value IsFlappingAccessor(const Value& row); 83 static Value ScheduledDowntimeDepthAccessor(const Value& row); 84 static Value ActiveChecksEnabledAccessor(const Value& row); 85 static Value CheckIntervalAccessor(const Value& row); 86 static Value RetryIntervalAccessor(const Value& row); 87 static Value NotificationIntervalAccessor(const Value& row); 88 static Value LowFlapThresholdAccessor(const Value& row); 89 static Value HighFlapThresholdAccessor(const Value& row); 90 static Value LatencyAccessor(const Value& row); 91 static Value ExecutionTimeAccessor(const Value& row); 92 static Value PercentStateChangeAccessor(const Value& row); 93 static Value InNotificationPeriodAccessor(const Value& row); 94 static Value InCheckPeriodAccessor(const Value& row); 95 static Value ContactsAccessor(const Value& row); 96 static Value DowntimesAccessor(const Value& row); 97 static Value DowntimesWithInfoAccessor(const Value& row); 98 static Value CommentsAccessor(const Value& row); 99 static Value CommentsWithInfoAccessor(const Value& row); 100 static Value CommentsWithExtraInfoAccessor(const Value& row); 101 static Value CustomVariableNamesAccessor(const Value& row); 102 static Value CustomVariableValuesAccessor(const Value& row); 103 static Value CustomVariablesAccessor(const Value& row); 104 static Value ParentsAccessor(const Value& row); 105 static Value ChildsAccessor(const Value& row); 106 static Value NumServicesAccessor(const Value& row); 107 static Value WorstServiceStateAccessor(const Value& row); 108 static Value NumServicesOkAccessor(const Value& row); 109 static Value NumServicesWarnAccessor(const Value& row); 110 static Value NumServicesCritAccessor(const Value& row); 111 static Value NumServicesUnknownAccessor(const Value& row); 112 static Value NumServicesPendingAccessor(const Value& row); 113 static Value WorstServiceHardStateAccessor(const Value& row); 114 static Value NumServicesHardOkAccessor(const Value& row); 115 static Value NumServicesHardWarnAccessor(const Value& row); 116 static Value NumServicesHardCritAccessor(const Value& row); 117 static Value NumServicesHardUnknownAccessor(const Value& row); 118 static Value HardStateAccessor(const Value& row); 119 static Value StalenessAccessor(const Value& row); 120 static Value GroupsAccessor(const Value& row); 121 static Value ContactGroupsAccessor(const Value& row); 122 static Value ServicesAccessor(const Value& row); 123 static Value ServicesWithStateAccessor(const Value& row); 124 static Value ServicesWithInfoAccessor(const Value& row); 125 static Value CheckSourceAccessor(const Value& row); 126 static Value IsReachableAccessor(const Value& row); 127 static Value CVIsJsonAccessor(const Value& row); 128 static Value OriginalAttributesAccessor(const Value& row); 129 }; 130 131 } 132 133 #endif /* HOSTSTABLE_H */ 134