If old YAJL version is installed on a system (ver < 2.0), the OVS plugin
compilation will fail as it requires tree API to be supported in YAJL
library. For this reason, it was decided to change 'configure' script
to detect YAJL tree API also.
Clean-up according updated collectd style:
https://github.com/collectd/collectd/pull/1931
https://github.com/collectd/collectd/issues/1951
Change-Id: I90c82cdc9780ee8c0c9b794986662a39a5ab0011
Signed-off-by: Mytnyk, VolodymyrX <volodymyrx.mytnyk@intel.com>
[with_libyajl="no (yajl/yajl_parse.h not found)"]
)
[with_libyajl="no (yajl/yajl_parse.h not found)"]
)
+ AC_CHECK_HEADERS([yajl/yajl_tree.h],
+ [with_libyajl2="yes"],
+ [with_libyajl2="no (yajl/yajl_tree.h not found)"]
+ )
+
AC_CHECK_HEADERS([yajl/yajl_version.h])
CPPFLAGS="$SAVE_CPPFLAGS"
AC_CHECK_HEADERS([yajl/yajl_version.h])
CPPFLAGS="$SAVE_CPPFLAGS"
[with_libyajl="no (Symbol 'yajl_alloc' not found)"]
)
[with_libyajl="no (Symbol 'yajl_alloc' not found)"]
)
+ AC_CHECK_LIB([yajl], [yajl_tree_parse],
+ [with_libyajl2="yes"],
+ [with_libyajl2="no (Symbol 'yajl_tree_parse' not found)"]
+ )
+
LDFLAGS="$SAVE_LDFLAGS"
fi
LDFLAGS="$SAVE_LDFLAGS"
fi
plugin_multimeter="no"
plugin_nfs="no"
plugin_numa="no"
plugin_multimeter="no"
plugin_nfs="no"
plugin_numa="no"
plugin_perl="no"
plugin_pinba="no"
plugin_processes="no"
plugin_perl="no"
plugin_pinba="no"
plugin_processes="no"
+
+if test "x$with_libyajl" = "xyes" && test "x$with_libyajl2" = "xyes"
+then
+ plugin_ovs_events="yes"
+fi
+
if test "x$have_sysctlbyname" = "xyes"; then
plugin_contextswitch="yes"
plugin_cpu="yes"
if test "x$have_sysctlbyname" = "xyes"; then
plugin_contextswitch="yes"
plugin_cpu="yes"
AC_PLUGIN([openldap], [$with_libldap], [OpenLDAP statistics])
AC_PLUGIN([openvpn], [yes], [OpenVPN client statistics])
AC_PLUGIN([oracle], [$with_oracle], [Oracle plugin])
AC_PLUGIN([openldap], [$with_libldap], [OpenLDAP statistics])
AC_PLUGIN([openvpn], [yes], [OpenVPN client statistics])
AC_PLUGIN([oracle], [$with_oracle], [Oracle plugin])
-AC_PLUGIN([ovs_events], [$with_libyajl], [OVS events plugin])
+AC_PLUGIN([ovs_events], [$plugin_ovs_events], [OVS events plugin])
AC_PLUGIN([perl], [$plugin_perl], [Embed a Perl interpreter])
AC_PLUGIN([pf], [$have_net_pfvar_h], [BSD packet filter (PF) statistics])
# FIXME: Check for libevent, too.
AC_PLUGIN([perl], [$plugin_perl], [Embed a Perl interpreter])
AC_PLUGIN([pf], [$have_net_pfvar_h], [BSD packet filter (PF) statistics])
# FIXME: Check for libevent, too.
/* Dispatch OVS interface link status value to collectd */
static void
ovs_events_link_status_submit(const ovs_events_iface_info_t *ifinfo) {
/* Dispatch OVS interface link status value to collectd */
static void
ovs_events_link_status_submit(const ovs_events_iface_info_t *ifinfo) {
value_list_t vl = VALUE_LIST_INIT;
meta_data_t *meta = NULL;
value_list_t vl = VALUE_LIST_INIT;
meta_data_t *meta = NULL;
} else
ERROR(OVS_EVENTS_PLUGIN ": create metadata failed");
} else
ERROR(OVS_EVENTS_PLUGIN ": create metadata failed");
- values[0].gauge = (gauge_t)ifinfo->link_status;
- vl.values = values;
- vl.values_len = STATIC_ARRAY_SIZE(values);
- sstrncpy(vl.host, hostname_g, sizeof(vl.host));
+ vl.values = &(value_t){.gauge = (gauge_t)ifinfo->link_status};
+ vl.values_len = 1;
sstrncpy(vl.plugin, OVS_EVENTS_PLUGIN, sizeof(vl.plugin));
sstrncpy(vl.plugin_instance, ifinfo->name, sizeof(vl.plugin_instance));
sstrncpy(vl.type, "gauge", sizeof(vl.type));
sstrncpy(vl.plugin, OVS_EVENTS_PLUGIN, sizeof(vl.plugin));
sstrncpy(vl.plugin_instance, ifinfo->name, sizeof(vl.plugin_instance));
sstrncpy(vl.type, "gauge", sizeof(vl.type));
}
/* Read OVS DB interface link status callback */
}
/* Read OVS DB interface link status callback */
-static int ovs_events_plugin_read(user_data_t *ud) {
- (void)ud; /* unused argument */
+static int ovs_events_plugin_read(__attribute__((unused)) user_data_t *u) {
_Bool is_connected = 0;
OVS_EVENTS_CTX_LOCK { is_connected = ovs_events_ctx.is_db_available; }
if (is_connected)
_Bool is_connected = 0;
OVS_EVENTS_CTX_LOCK { is_connected = ovs_events_ctx.is_db_available; }
if (is_connected)