mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-02 01:45:17 +00:00
log: daemon: Add remote protocol handling for the log appending API
Implement the RPC dispatcher and caller for the new API.
This commit is contained in:
parent
5e6143fbcc
commit
78b9b85c06
@ -1048,6 +1048,7 @@ virLockManagerRelease;
|
|||||||
|
|
||||||
|
|
||||||
# logging/log_manager.h
|
# logging/log_manager.h
|
||||||
|
virLogManagerDomainAppendMessage;
|
||||||
virLogManagerDomainGetLogFilePosition;
|
virLogManagerDomainGetLogFilePosition;
|
||||||
virLogManagerDomainOpenLogFile;
|
virLogManagerDomainOpenLogFile;
|
||||||
virLogManagerDomainReadLogFile;
|
virLogManagerDomainReadLogFile;
|
||||||
|
@ -143,3 +143,29 @@ virLogManagerProtocolDispatchDomainReadLogFile(virNetServerPtr server ATTRIBUTE_
|
|||||||
virNetMessageSaveError(rerr);
|
virNetMessageSaveError(rerr);
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
virLogManagerProtocolDispatchDomainAppendLogFile(virNetServerPtr server ATTRIBUTE_UNUSED,
|
||||||
|
virNetServerClientPtr client ATTRIBUTE_UNUSED,
|
||||||
|
virNetMessagePtr msg ATTRIBUTE_UNUSED,
|
||||||
|
virNetMessageErrorPtr rerr,
|
||||||
|
virLogManagerProtocolDomainAppendLogFileArgs *args,
|
||||||
|
virLogManagerProtocolDomainAppendLogFileRet *ret)
|
||||||
|
{
|
||||||
|
int rv;
|
||||||
|
|
||||||
|
if ((rv = virLogHandlerDomainAppendLogFile(virLogDaemonGetHandler(logDaemon),
|
||||||
|
args->driver,
|
||||||
|
(unsigned char *)args->dom.uuid,
|
||||||
|
args->dom.name,
|
||||||
|
args->path,
|
||||||
|
args->message,
|
||||||
|
args->flags)) < 0) {
|
||||||
|
virNetMessageSaveError(rerr);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret->ret = rv;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
@ -282,3 +282,37 @@ virLogManagerDomainReadLogFile(virLogManagerPtr mgr,
|
|||||||
cleanup:
|
cleanup:
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
virLogManagerDomainAppendMessage(virLogManagerPtr mgr,
|
||||||
|
const char *driver,
|
||||||
|
const unsigned char *domuuid,
|
||||||
|
const char *domname,
|
||||||
|
const char *path,
|
||||||
|
const char *message,
|
||||||
|
unsigned int flags)
|
||||||
|
{
|
||||||
|
struct virLogManagerProtocolDomainAppendLogFileArgs args;
|
||||||
|
struct virLogManagerProtocolDomainAppendLogFileRet ret;
|
||||||
|
|
||||||
|
memset(&args, 0, sizeof(args));
|
||||||
|
|
||||||
|
args.driver = (char *)driver;
|
||||||
|
memcpy(args.dom.uuid, domuuid, VIR_UUID_BUFLEN);
|
||||||
|
args.dom.name = (char *)domname;
|
||||||
|
args.path = (char *)path;
|
||||||
|
args.message = (char *)message;
|
||||||
|
args.flags = flags;
|
||||||
|
|
||||||
|
if (virNetClientProgramCall(mgr->program,
|
||||||
|
mgr->client,
|
||||||
|
mgr->serial++,
|
||||||
|
VIR_LOG_MANAGER_PROTOCOL_PROC_DOMAIN_APPEND_LOG_FILE,
|
||||||
|
0, NULL, NULL, NULL,
|
||||||
|
(xdrproc_t)xdr_virLogManagerProtocolDomainAppendLogFileArgs, &args,
|
||||||
|
(xdrproc_t)xdr_virLogManagerProtocolDomainAppendLogFileRet, &ret) < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
return ret.ret;
|
||||||
|
}
|
||||||
|
@ -57,4 +57,12 @@ char *virLogManagerDomainReadLogFile(virLogManagerPtr mgr,
|
|||||||
size_t maxlen,
|
size_t maxlen,
|
||||||
unsigned int flags);
|
unsigned int flags);
|
||||||
|
|
||||||
|
int virLogManagerDomainAppendMessage(virLogManagerPtr mgr,
|
||||||
|
const char *driver,
|
||||||
|
const unsigned char *domuuid,
|
||||||
|
const char *domname,
|
||||||
|
const char *path,
|
||||||
|
const char *message,
|
||||||
|
unsigned int flags);
|
||||||
|
|
||||||
#endif /* __VIR_LOG_MANAGER_H__ */
|
#endif /* __VIR_LOG_MANAGER_H__ */
|
||||||
|
@ -68,6 +68,18 @@ struct virLogManagerProtocolDomainReadLogFileRet {
|
|||||||
virLogManagerProtocolNonNullString data;
|
virLogManagerProtocolNonNullString data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct virLogManagerProtocolDomainAppendLogFileArgs {
|
||||||
|
virLogManagerProtocolNonNullString driver;
|
||||||
|
virLogManagerProtocolDomain dom;
|
||||||
|
virLogManagerProtocolNonNullString path;
|
||||||
|
virLogManagerProtocolNonNullString message;
|
||||||
|
unsigned int flags;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct virLogManagerProtocolDomainAppendLogFileRet {
|
||||||
|
int ret;
|
||||||
|
};
|
||||||
|
|
||||||
/* Define the program number, protocol version and procedure numbers here. */
|
/* Define the program number, protocol version and procedure numbers here. */
|
||||||
const VIR_LOG_MANAGER_PROTOCOL_PROGRAM = 0x87539319;
|
const VIR_LOG_MANAGER_PROTOCOL_PROGRAM = 0x87539319;
|
||||||
const VIR_LOG_MANAGER_PROTOCOL_PROGRAM_VERSION = 1;
|
const VIR_LOG_MANAGER_PROTOCOL_PROGRAM_VERSION = 1;
|
||||||
@ -115,5 +127,11 @@ enum virLogManagerProtocolProcedure {
|
|||||||
* @generate: none
|
* @generate: none
|
||||||
* @acl: none
|
* @acl: none
|
||||||
*/
|
*/
|
||||||
VIR_LOG_MANAGER_PROTOCOL_PROC_DOMAIN_READ_LOG_FILE = 3
|
VIR_LOG_MANAGER_PROTOCOL_PROC_DOMAIN_READ_LOG_FILE = 3,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generate: none
|
||||||
|
* @acl: none
|
||||||
|
*/
|
||||||
|
VIR_LOG_MANAGER_PROTOCOL_PROC_DOMAIN_APPEND_LOG_FILE = 4
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user