From: Ewan Mellor Date: Fri, 2 Feb 2007 10:25:17 +0000 (+0000) Subject: Added host.dmesg method. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~15358^2~9 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=8389ab43f55c635516235c48ba1d38562a84070c;p=xen.git Added host.dmesg method. Also, fixed all of the host methods, which had been broken by the introduction of the host_metrics class. Signed-off-by: Ewan Mellor --- diff --git a/docs/xen-api/xenapi-datamodel.tex b/docs/xen-api/xenapi-datamodel.tex index 739d270244..ee34fc7160 100644 --- a/docs/xen-api/xenapi-datamodel.tex +++ b/docs/xen-api/xenapi-datamodel.tex @@ -4661,13 +4661,45 @@ void +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~dmesg} + +{\bf Overview:} +Get the host xen dmesg. + + \noindent {\bf Signature:} +\begin{verbatim} string dmesg (session_id s, host ref host)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt host ref } & host & The Host to query \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +string +} + + +dmesg string \vspace{0.3cm} \vspace{0.3cm} \vspace{0.3cm} \subsubsection{RPC name:~get\_all} {\bf Overview:} -Return a list of all the hosts known to the system +Return a list of all the hosts known to the system. \noindent {\bf Signature:} \begin{verbatim} ((host ref) Set) get_all (session_id s)\end{verbatim} diff --git a/tools/libxen/include/xen_host.h b/tools/libxen/include/xen_host.h index e64390b89f..26ca29d592 100644 --- a/tools/libxen/include/xen_host.h +++ b/tools/libxen/include/xen_host.h @@ -393,6 +393,13 @@ extern bool xen_host_reboot(xen_session *session, xen_host host); +/** + * Get the host xen dmesg. + */ +extern bool +xen_host_dmesg(xen_session *session, char **result, xen_host host); + + /** * Return a list of all the hosts known to the system. */ diff --git a/tools/libxen/src/xen_host.c b/tools/libxen/src/xen_host.c index 7968b96994..4a79daa90f 100644 --- a/tools/libxen/src/xen_host.c +++ b/tools/libxen/src/xen_host.c @@ -631,6 +631,23 @@ xen_host_reboot(xen_session *session, xen_host host) } +bool +xen_host_dmesg(xen_session *session, char **result, xen_host host) +{ + abstract_value param_values[] = + { + { .type = &abstract_type_string, + .u.string_val = host } + }; + + abstract_type result_type = abstract_type_string; + + *result = NULL; + XEN_CALL_("host.dmesg"); + return session->ok; +} + + bool xen_host_get_all(xen_session *session, struct xen_host_set **result) { diff --git a/tools/libxen/test/test_bindings.c b/tools/libxen/test/test_bindings.c index 8ce02377b1..c1df98dcea 100644 --- a/tools/libxen/test/test_bindings.c +++ b/tools/libxen/test/test_bindings.c @@ -206,6 +206,20 @@ int main(int argc, char **argv) return 1; } + char *dmesg; + if (!xen_host_dmesg(session, &dmesg, host)) + { + print_error(session); + xen_string_string_map_free(versions); + xen_host_free(host); + xen_vm_record_free(vm_record); + xen_uuid_bytes_free(vm_uuid_bytes); + xen_uuid_free(vm_uuid); + xen_vm_free(vm); + CLEANUP; + return 1; + } + printf("%s.\n", vm_uuid); fprintf(stderr, "In bytes, the VM UUID is "); @@ -223,6 +237,8 @@ int main(int argc, char **argv) versions->contents[i].val); } + printf("Host dmesg follows:\n%s\n\n", dmesg); + printf("%s.\n", vm_record->uuid); printf("Resident on %s.\n", (char *)vm_record->resident_on->u.handle); @@ -244,6 +260,7 @@ int main(int argc, char **argv) xen_host_free(host); xen_string_string_map_free(versions); + free(dmesg); xen_vm new_vm = create_new_vm(session, true); diff --git a/tools/python/xen/xend/XendAPI.py b/tools/python/xen/xend/XendAPI.py index 0b3c54a89b..49f2082893 100644 --- a/tools/python/xen/xend/XendAPI.py +++ b/tools/python/xen/xend/XendAPI.py @@ -22,7 +22,7 @@ import sys import traceback import threading -from xen.xend import XendDomain, XendDomainInfo, XendNode +from xen.xend import XendDomain, XendDomainInfo, XendNode, XendDmesg from xen.xend import XendLogging, XendTaskManager from xen.xend.XendAuthSessions import instance as auth_manager @@ -615,7 +615,8 @@ class XendAPI(object): ('reboot', None), ('shutdown', None), ('add_to_other_config', None), - ('remove_from_other_config', None)] + ('remove_from_other_config', None), + ('dmesg', 'String')] host_funcs = [('get_by_name_label', 'Set(host)')] @@ -674,6 +675,9 @@ class XendAPI(object): return xen_api_error(XEND_ERROR_HOST_RUNNING) return xen_api_error(XEND_ERROR_UNSUPPORTED) + def host_dmesg(self, session, host_ref): + return xen_api_success(XendDmesg.instance().info()) + def host_get_record(self, session, host_ref): node = XendNode.instance() dom = XendDomain.instance() @@ -737,7 +741,7 @@ class XendAPI(object): 'memory_free', 'host'] host_metrics_attr_rw = [] - host_methods = [] + host_metrics_methods = [] def _host_metrics_get(self, ref, f): return xen_api_success(getattr(node, f)())