Hostinfo day 5: Implement first round of static host commands.
[virt-hostinfo.git] / hostinfod / hostinfod.h
index 98fcb63..8bb48e6 100644 (file)
@@ -28,6 +28,8 @@
 #include <apr_poll.h>
 #include <apr_hash.h>
 
+#include <libvirt/libvirt.h>
+
 enum guest_state {
   guest_state_connecting,      /* Connecting to socket. */
   guest_state_request,         /* Waiting or reading the request. */
@@ -59,6 +61,9 @@ struct guest_description {
   /* Increments every time guest does something bad, decremented once per min */
   unsigned penalty;
   struct timespec last_penalty_decr;
+
+  /* Hash records last time each command was run by this guest. */
+  apr_hash_t *lasttime;
 };
 
 enum arg_type {
@@ -79,14 +84,16 @@ struct arg {
 extern const char *conf_file;
 extern char *socket_dir;
 extern char *guests_file;
+extern char *libvirt_uri;
+extern int libvirt_uri_set_on_cmdline;
 extern int verbose;
 extern int verbose_set_on_cmdline;
 extern int foreground;
 extern int foreground_set_on_cmdline;
 extern int messages_to_stderr;
 extern apr_pool_t *pool;       /* pool for global memory allocation */
-
 extern void initialize (void);
+extern struct timespec *diff_timespec (struct timespec *r, const struct timespec *a, const struct timespec *b); /* r = a - b */
 
 /* error.c */
 extern void init_syslog (void);
@@ -107,6 +114,7 @@ extern void paprerror (apr_status_t r, const char *fs, ...)
 
 /* configuration.c */
 extern void read_main_conf_file (void);
+extern void check_guests_file (struct guest_description *hval, const char *cmd, double *interval, int *enabled);
 
 /* monitor_sockets.c */
 extern int sockets_inotify_fd;
@@ -141,4 +149,9 @@ typedef void (*command_fn) (struct guest_description *hval, const char *cmd, apr
     apr_hash_set (commands, #name, APR_HASH_KEY_STRING, cb);           \
   }
 
+/* virt.c */
+extern void init_libvirt (void);
+extern virConnectPtr conn;
+extern virNodeInfo nodeinfo;
+
 #endif /* HOSTINFOD_H */