mirror of
https://github.com/openvswitch/ovs
synced 2025-10-23 14:57:06 +00:00
tests: Don't log to syslog during tests.
Until now, "make check" generated a huge amount of output to syslog. This commit suppresses it. Acked-by: Ilya Maximets <i.maximets@samsung.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
This commit is contained in:
2
NEWS
2
NEWS
@@ -1,5 +1,7 @@
|
|||||||
Post-v2.10.0
|
Post-v2.10.0
|
||||||
---------------------
|
---------------------
|
||||||
|
- The environment variable OVS_SYSLOG_METHOD, if set, is now used
|
||||||
|
as the default syslog method.
|
||||||
|
|
||||||
|
|
||||||
v2.10.0 - xx xxx xxxx
|
v2.10.0 - xx xxx xxxx
|
||||||
|
@@ -280,6 +280,8 @@ lib_libopenvswitch_la_SOURCES = \
|
|||||||
lib/syslog-direct.h \
|
lib/syslog-direct.h \
|
||||||
lib/syslog-libc.c \
|
lib/syslog-libc.c \
|
||||||
lib/syslog-libc.h \
|
lib/syslog-libc.h \
|
||||||
|
lib/syslog-null.c \
|
||||||
|
lib/syslog-null.h \
|
||||||
lib/syslog-provider.h \
|
lib/syslog-provider.h \
|
||||||
lib/table.c \
|
lib/table.c \
|
||||||
lib/table.h \
|
lib/table.h \
|
||||||
|
60
lib/syslog-null.c
Normal file
60
lib/syslog-null.c
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2015, 2016 Nicira, Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
#include "syslog-null.h"
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#include "compiler.h"
|
||||||
|
#include "syslog-provider.h"
|
||||||
|
#include "util.h"
|
||||||
|
|
||||||
|
static void syslog_null_open(struct syslogger *this, int facility);
|
||||||
|
static void syslog_null_log(struct syslogger *this, int pri, const char *msg);
|
||||||
|
|
||||||
|
static struct syslog_class syslog_null_class = {
|
||||||
|
syslog_null_open,
|
||||||
|
syslog_null_log,
|
||||||
|
};
|
||||||
|
|
||||||
|
struct syslog_null {
|
||||||
|
struct syslogger parent;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* This function creates object that delegate all logging to null's
|
||||||
|
* syslog implementation. */
|
||||||
|
struct syslogger *
|
||||||
|
syslog_null_create(void)
|
||||||
|
{
|
||||||
|
struct syslog_null *this = xmalloc(sizeof *this);
|
||||||
|
|
||||||
|
this->parent.class = &syslog_null_class;
|
||||||
|
this->parent.prefix = "";
|
||||||
|
|
||||||
|
return &this->parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
syslog_null_open(struct syslogger *this OVS_UNUSED, int facility OVS_UNUSED)
|
||||||
|
{
|
||||||
|
/* Nothing to do. */
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
syslog_null_log(struct syslogger *this OVS_UNUSED, int pri OVS_UNUSED,
|
||||||
|
const char *msg OVS_UNUSED)
|
||||||
|
{
|
||||||
|
/* Nothing to do. */
|
||||||
|
}
|
22
lib/syslog-null.h
Normal file
22
lib/syslog-null.h
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2015 Nicira, Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef SYSLOG_NULL_H
|
||||||
|
#define SYSLOG_NULL_H 1
|
||||||
|
|
||||||
|
struct syslogger *syslog_null_create(void);
|
||||||
|
|
||||||
|
#endif /* syslog-null.h */
|
12
lib/vlog.c
12
lib/vlog.c
@@ -39,6 +39,7 @@
|
|||||||
#include "svec.h"
|
#include "svec.h"
|
||||||
#include "syslog-direct.h"
|
#include "syslog-direct.h"
|
||||||
#include "syslog-libc.h"
|
#include "syslog-libc.h"
|
||||||
|
#include "syslog-null.h"
|
||||||
#include "syslog-provider.h"
|
#include "syslog-provider.h"
|
||||||
#include "timeval.h"
|
#include "timeval.h"
|
||||||
#include "unixctl.h"
|
#include "unixctl.h"
|
||||||
@@ -584,7 +585,9 @@ vlog_set_syslog_method(const char *method)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!strcmp(method, "libc")) {
|
if (!strcmp(method, "null")) {
|
||||||
|
syslogger = syslog_null_create();
|
||||||
|
} else if (!strcmp(method, "libc")) {
|
||||||
syslogger = syslog_libc_create();
|
syslogger = syslog_libc_create();
|
||||||
} else if (!strncmp(method, "udp:", 4) || !strncmp(method, "unix:", 5)) {
|
} else if (!strncmp(method, "udp:", 4) || !strncmp(method, "unix:", 5)) {
|
||||||
syslogger = syslog_direct_create(method);
|
syslogger = syslog_direct_create(method);
|
||||||
@@ -778,7 +781,12 @@ vlog_init(void)
|
|||||||
* log anything before calling ovsthread_once_done() will deadlock. */
|
* log anything before calling ovsthread_once_done() will deadlock. */
|
||||||
atomic_read_explicit(&log_facility, &facility, memory_order_relaxed);
|
atomic_read_explicit(&log_facility, &facility, memory_order_relaxed);
|
||||||
if (!syslogger) {
|
if (!syslogger) {
|
||||||
syslogger = syslog_libc_create();
|
char *env = getenv("OVS_SYSLOG_METHOD");
|
||||||
|
if (env && env[0]) {
|
||||||
|
vlog_set_syslog_method(env);
|
||||||
|
} else {
|
||||||
|
syslogger = syslog_libc_create();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
syslogger->class->openlog(syslogger, facility ? facility : LOG_DAEMON);
|
syslogger->class->openlog(syslogger, facility ? facility : LOG_DAEMON);
|
||||||
ovsthread_once_done(&once);
|
ovsthread_once_done(&once);
|
||||||
|
@@ -83,7 +83,7 @@ Specify \fImethod\fR how syslog messages should be sent to syslog daemon.
|
|||||||
Following forms are supported:
|
Following forms are supported:
|
||||||
.RS
|
.RS
|
||||||
.IP \(bu
|
.IP \(bu
|
||||||
\fBlibc\fR, use libc \fBsyslog()\fR function. This is the default behavior.
|
\fBlibc\fR, use libc \fBsyslog()\fR function.
|
||||||
Downside of using this options is that libc adds fixed prefix to every
|
Downside of using this options is that libc adds fixed prefix to every
|
||||||
message before it is actually sent to the syslog daemon over \fB/dev/log\fR
|
message before it is actually sent to the syslog daemon over \fB/dev/log\fR
|
||||||
UNIX domain socket.
|
UNIX domain socket.
|
||||||
@@ -103,4 +103,9 @@ to listen on the specified UDP port, accidental iptables rules could be
|
|||||||
interfering with local syslog traffic and there are some security
|
interfering with local syslog traffic and there are some security
|
||||||
considerations that apply to UDP sockets, but do not apply to UNIX domain
|
considerations that apply to UDP sockets, but do not apply to UNIX domain
|
||||||
sockets.
|
sockets.
|
||||||
|
.IP \(bu
|
||||||
|
\fBnull\fR, discards all messages logged to syslog.
|
||||||
.RE
|
.RE
|
||||||
|
.IP
|
||||||
|
The default is taken from the \fBOVS_SYSLOG_METHOD\fR environment
|
||||||
|
variable; if it is unset, the default is \fBlibc\fR.
|
||||||
|
11
lib/vlog.xml
11
lib/vlog.xml
@@ -114,7 +114,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<code>libc</code>, to use the libc <code>syslog()</code> function.
|
<code>libc</code>, to use the libc <code>syslog()</code> function.
|
||||||
This is the default behavior. Downside of using this options is that
|
Downside of using this options is that
|
||||||
libc adds fixed prefix to every message before it is actually sent to
|
libc adds fixed prefix to every message before it is actually sent to
|
||||||
the syslog daemon over <code>/dev/log</code> UNIX domain socket.
|
the syslog daemon over <code>/dev/log</code> UNIX domain socket.
|
||||||
</li>
|
</li>
|
||||||
@@ -139,6 +139,15 @@
|
|||||||
local syslog traffic and there are some security considerations that
|
local syslog traffic and there are some security considerations that
|
||||||
apply to UDP sockets, but do not apply to UNIX domain sockets.
|
apply to UDP sockets, but do not apply to UNIX domain sockets.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<code>null</code>, to discard all messages logged to syslog.
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The default is taken from the <code>OVS_SYSLOG_METHOD</code> environment
|
||||||
|
variable; if it is unset, the default is <code>libc</code>.
|
||||||
|
</p>
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
@@ -305,9 +305,11 @@ class Vlog(object):
|
|||||||
return
|
return
|
||||||
|
|
||||||
logger = logging.getLogger('syslog')
|
logger = logging.getLogger('syslog')
|
||||||
# If there is no infrastructure to support python syslog, disable
|
# Disable the logger if there is no infrastructure to support python
|
||||||
# the logger to avoid repeated errors.
|
# syslog (to avoid repeated errors) or if the "null" syslog method
|
||||||
if not os.path.exists("/dev/log"):
|
# requested by environment.
|
||||||
|
if (not os.path.exists("/dev/log")
|
||||||
|
or os.environ.get('OVS_SYSLOG_METHOD') == "null"):
|
||||||
logger.disabled = True
|
logger.disabled = True
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@@ -212,3 +212,7 @@ unset NO_PROXY
|
|||||||
# Avoid OVN environment variables leaking in from external environment.
|
# Avoid OVN environment variables leaking in from external environment.
|
||||||
unset OVN_NB_DB
|
unset OVN_NB_DB
|
||||||
unset OVN_SB_DB
|
unset OVN_SB_DB
|
||||||
|
|
||||||
|
# Prevent logging to syslog during tests.
|
||||||
|
OVS_SYSLOG_METHOD=null
|
||||||
|
export OVS_SYSLOG_METHOD
|
||||||
|
Reference in New Issue
Block a user