提交 3f68f33c 编写于 作者: D Daniel P. Berrange

logging: support truncation of logfiles when opening

The virtlogd daemon currently opens all files for append, but
in some cases the user may wish to discard existing data. Define
a new flag to indicate that logfiles should be truncated when
opening.
上级 4e461228
......@@ -50,13 +50,14 @@ virLogManagerProtocolDispatchDomainOpenLogFile(virNetServerPtr server ATTRIBUTE_
int rv = -1;
off_t offset;
ino_t inode;
bool trunc = args->flags & VIR_LOG_MANAGER_PROTOCOL_DOMAIN_OPEN_LOG_FILE_TRUNCATE;
if ((fd = virLogHandlerDomainOpenLogFile(virLogDaemonGetHandler(logDaemon),
args->driver,
(unsigned char *)args->dom.uuid,
args->dom.name,
args->path,
args->flags,
trunc,
&inode, &offset)) < 0)
goto cleanup;
......
......@@ -357,7 +357,7 @@ virLogHandlerDomainOpenLogFile(virLogHandlerPtr handler,
const unsigned char *domuuid,
const char *domname,
const char *path,
unsigned int flags,
bool trunc,
ino_t *inode,
off_t *offset)
{
......@@ -365,8 +365,6 @@ virLogHandlerDomainOpenLogFile(virLogHandlerPtr handler,
virLogHandlerLogFilePtr file = NULL;
int pipefd[2] = { -1, -1 };
virCheckFlags(0, -1);
virObjectLock(handler);
handler->inhibitor(true, handler->opaque);
......@@ -400,7 +398,7 @@ virLogHandlerDomainOpenLogFile(virLogHandlerPtr handler,
if ((file->file = virRotatingFileWriterNew(path,
DEFAULT_FILE_SIZE,
DEFAULT_MAX_BACKUP,
false,
trunc,
DEFAULT_MODE)) == NULL)
goto error;
......
......@@ -48,7 +48,7 @@ int virLogHandlerDomainOpenLogFile(virLogHandlerPtr handler,
const unsigned char *domuuid,
const char *domname,
const char *path,
unsigned int flags,
bool trunc,
ino_t *inode,
off_t *offset);
......
......@@ -26,6 +26,8 @@
# include "internal.h"
# include "logging/log_protocol.h"
typedef struct _virLogManager virLogManager;
typedef virLogManager *virLogManagerPtr;
......
......@@ -30,6 +30,10 @@ struct virLogManagerProtocolLogFilePosition {
};
typedef struct virLogManagerProtocolLogFilePosition virLogManagerProtocolLogFilePosition;
enum virLogManagerProtocolDomainOpenLogFileFlags {
VIR_LOG_MANAGER_PROTOCOL_DOMAIN_OPEN_LOG_FILE_TRUNCATE = 1
};
/* Obtain a file handle suitable for writing to a
* log file for a domain
*/
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册