[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] Make host.sched_policy read-only. Added docs, bindings, and a test for
# HG changeset patch # User Ewan Mellor <ewan@xxxxxxxxxxxxx> # Date 1176117635 -3600 # Node ID 3565e4883548fcb448c8c9489b83ee80035d27f7 # Parent 51678fab4b0fb73faa141fef19dbe69207961573 Make host.sched_policy read-only. Added docs, bindings, and a test for host.cpu_configuration and host.sched_policy. Signed-off-by: Ewan Mellor <ewan@xxxxxxxxxxxxx> --- docs/xen-api/xenapi-datamodel.tex | 66 ++++++++++++++++++++++++++++++++++++++ tools/libxen/include/xen_host.h | 16 +++++++++ tools/libxen/src/xen_host.c | 42 ++++++++++++++++++++++++ tools/libxen/test/test_bindings.c | 45 +++++++++++++++++++++++++ tools/python/xen/xend/XendAPI.py | 2 - 5 files changed, 170 insertions(+), 1 deletion(-) diff -r 51678fab4b0f -r 3565e4883548 docs/xen-api/xenapi-datamodel.tex --- a/docs/xen-api/xenapi-datamodel.tex Mon Apr 09 11:39:27 2007 +0100 +++ b/docs/xen-api/xenapi-datamodel.tex Mon Apr 09 12:20:35 2007 +0100 @@ -4744,6 +4744,8 @@ Quals & Field & Type & Description \\ $\mathit{RO}_\mathit{run}$ & {\tt software\_version} & (string $\rightarrow$ string) Map & version strings \\ $\mathit{RW}$ & {\tt other\_config} & (string $\rightarrow$ string) Map & additional configuration \\ $\mathit{RO}_\mathit{run}$ & {\tt capabilities} & string Set & Xen capabilities \\ +$\mathit{RO}_\mathit{run}$ & {\tt cpu\_configuration} & (string $\rightarrow$ string) Map & The CPU configuration on this host. May contain keys such as ``nr\_nodes'', ``sockets\_per\_node'', ``cores\_per\_socket'', or ``threads\_per\_core'' \\ +$\mathit{RO}_\mathit{run}$ & {\tt sched\_policy} & string & Scheduler policy currently in force on this host \\ $\mathit{RO}_\mathit{run}$ & {\tt supported\_bootloaders} & string Set & a list of the bootloaders installed on the machine \\ $\mathit{RO}_\mathit{run}$ & {\tt resident\_VMs} & (VM ref) Set & list of VMs currently resident on host \\ $\mathit{RW}$ & {\tt logging} & (string $\rightarrow$ string) Map & logging configuration \\ @@ -5545,6 +5547,70 @@ Get the capabilities field of the given \noindent {\bf Return Type:} {\tt string Set +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_cpu\_configuration} + +{\bf Overview:} +Get the cpu\_configuration field of the given host. + + \noindent {\bf Signature:} +\begin{verbatim} ((string -> string) Map) get_cpu_configuration (session_id s, host ref self)\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 } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +(string $\rightarrow$ string) Map +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_sched\_policy} + +{\bf Overview:} +Get the sched\_policy field of the given host. + + \noindent {\bf Signature:} +\begin{verbatim} string get_sched_policy (session_id s, host ref self)\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 } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +string } diff -r 51678fab4b0f -r 3565e4883548 tools/libxen/include/xen_host.h --- a/tools/libxen/include/xen_host.h Mon Apr 09 11:39:27 2007 +0100 +++ b/tools/libxen/include/xen_host.h Mon Apr 09 12:20:35 2007 +0100 @@ -79,6 +79,8 @@ typedef struct xen_host_record xen_string_string_map *software_version; xen_string_string_map *other_config; struct xen_string_set *capabilities; + xen_string_string_map *cpu_configuration; + char *sched_policy; struct xen_string_set *supported_bootloaders; struct xen_vm_record_opt_set *resident_vms; xen_string_string_map *logging; @@ -261,6 +263,20 @@ xen_host_get_capabilities(xen_session *s /** + * Get the cpu_configuration field of the given host. + */ +extern bool +xen_host_get_cpu_configuration(xen_session *session, xen_string_string_map **result, xen_host host); + + +/** + * Get the sched_policy field of the given host. + */ +extern bool +xen_host_get_sched_policy(xen_session *session, char **result, xen_host host); + + +/** * Get the supported_bootloaders field of the given host. */ extern bool diff -r 51678fab4b0f -r 3565e4883548 tools/libxen/src/xen_host.c --- a/tools/libxen/src/xen_host.c Mon Apr 09 11:39:27 2007 +0100 +++ b/tools/libxen/src/xen_host.c Mon Apr 09 12:20:35 2007 +0100 @@ -73,6 +73,12 @@ static const struct_member xen_host_reco { .key = "capabilities", .type = &abstract_type_string_set, .offset = offsetof(xen_host_record, capabilities) }, + { .key = "cpu_configuration", + .type = &abstract_type_string_string_map, + .offset = offsetof(xen_host_record, cpu_configuration) }, + { .key = "sched_policy", + .type = &abstract_type_string, + .offset = offsetof(xen_host_record, sched_policy) }, { .key = "supported_bootloaders", .type = &abstract_type_string_set, .offset = offsetof(xen_host_record, supported_bootloaders) }, @@ -128,6 +134,8 @@ xen_host_record_free(xen_host_record *re xen_string_string_map_free(record->software_version); xen_string_string_map_free(record->other_config); xen_string_set_free(record->capabilities); + xen_string_string_map_free(record->cpu_configuration); + free(record->sched_policy); xen_string_set_free(record->supported_bootloaders); xen_vm_record_opt_set_free(record->resident_vms); xen_string_string_map_free(record->logging); @@ -350,6 +358,40 @@ xen_host_get_capabilities(xen_session *s bool +xen_host_get_cpu_configuration(xen_session *session, xen_string_string_map **result, xen_host host) +{ + abstract_value param_values[] = + { + { .type = &abstract_type_string, + .u.string_val = host } + }; + + abstract_type result_type = abstract_type_string_string_map; + + *result = NULL; + XEN_CALL_("host.get_cpu_configuration"); + return session->ok; +} + + +bool +xen_host_get_sched_policy(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.get_sched_policy"); + return session->ok; +} + + +bool xen_host_get_supported_bootloaders(xen_session *session, struct xen_string_set **result, xen_host host) { abstract_value param_values[] = diff -r 51678fab4b0f -r 3565e4883548 tools/libxen/test/test_bindings.c --- a/tools/libxen/test/test_bindings.c Mon Apr 09 11:39:27 2007 +0100 +++ b/tools/libxen/test/test_bindings.c Mon Apr 09 12:20:35 2007 +0100 @@ -285,6 +285,40 @@ int main(int argc, char **argv) return 1; } + xen_string_string_map *cpu_configuration; + if (!xen_host_get_cpu_configuration(session, &cpu_configuration, host)) + { + print_error(session); + free(dmesg); + xen_string_set_free(capabilities); + xen_string_set_free(supported_bootloaders); + 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; + } + + char *sched_policy; + if (!xen_host_get_sched_policy(session, &sched_policy, host)) + { + print_error(session); + xen_string_string_map_free(cpu_configuration); + xen_string_set_free(capabilities); + xen_string_set_free(supported_bootloaders); + 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); printf("In bytes, the VM UUID is "); @@ -317,6 +351,15 @@ int main(int argc, char **argv) printf(" %s", capabilities->contents[i]); } printf("\n"); + + printf("Host has the following CPU configuration:\n"); + for (size_t i = 0; i < cpu_configuration->size; i++) + { + printf(" %s -> %s.\n", cpu_configuration->contents[i].key, + cpu_configuration->contents[i].val); + } + + printf("Current scheduler policy: %s.\n\n", sched_policy); printf("%s.\n", vm_record->uuid); @@ -334,6 +377,8 @@ int main(int argc, char **argv) free(dmesg); xen_string_set_free(supported_bootloaders); xen_string_set_free(capabilities); + xen_string_string_map_free(cpu_configuration); + free(sched_policy); print_vm_metrics(session, vm); if (!session->ok) diff -r 51678fab4b0f -r 3565e4883548 tools/python/xen/xend/XendAPI.py --- a/tools/python/xen/xend/XendAPI.py Mon Apr 09 11:39:27 2007 +0100 +++ b/tools/python/xen/xend/XendAPI.py Mon Apr 09 12:20:35 2007 +0100 @@ -860,13 +860,13 @@ class XendAPI(object): 'metrics', 'capabilities', 'supported_bootloaders', + 'sched_policy', 'API_version_major', 'API_version_minor', 'API_version_vendor', 'API_version_vendor_implementation'] host_attr_rw = ['name_label', - 'sched_policy', 'name_description', 'other_config'] _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |