diff options
-rw-r--r-- | docs/xen-api/xenapi-datamodel.tex | 33 | ||||
-rw-r--r-- | tools/libxen/include/xen_host.h | 8 | ||||
-rw-r--r-- | tools/libxen/src/xen_host.c | 19 | ||||
-rw-r--r-- | tools/python/xen/xend/XendAPI.py | 7 |
4 files changed, 64 insertions, 3 deletions
diff --git a/docs/xen-api/xenapi-datamodel.tex b/docs/xen-api/xenapi-datamodel.tex index 7a2a493a57..39055b8d89 100644 --- a/docs/xen-api/xenapi-datamodel.tex +++ b/docs/xen-api/xenapi-datamodel.tex @@ -5086,6 +5086,7 @@ $\mathit{RO}_\mathit{run}$ & {\tt API\_version/major} & int & major version num $\mathit{RO}_\mathit{run}$ & {\tt API\_version/minor} & int & minor version number \\ $\mathit{RO}_\mathit{run}$ & {\tt API\_version/vendor} & string & identification of vendor \\ $\mathit{RO}_\mathit{run}$ & {\tt API\_version/vendor\_implementation} & (string $\rightarrow$ string) Map & details of vendor implementation \\ +$\mathit{RO}_\mathit{run}$ & {\tt enabled} & bool & True if the host is currently enabled \\ $\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 \\ @@ -5698,6 +5699,38 @@ value of the field \vspace{0.3cm} \vspace{0.3cm} \vspace{0.3cm} +\subsubsection{RPC name:~get\_enabled} + +{\bf Overview:} +Get the enabled field of the given host. + + \noindent {\bf Signature:} +\begin{verbatim} bool get_enabled (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 +bool +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} \subsubsection{RPC name:~get\_software\_version} {\bf Overview:} diff --git a/tools/libxen/include/xen_host.h b/tools/libxen/include/xen_host.h index 181aa5e22d..cb2c447fc4 100644 --- a/tools/libxen/include/xen_host.h +++ b/tools/libxen/include/xen_host.h @@ -76,6 +76,7 @@ typedef struct xen_host_record int64_t api_version_minor; char *api_version_vendor; xen_string_string_map *api_version_vendor_implementation; + bool enabled; xen_string_string_map *software_version; xen_string_string_map *other_config; struct xen_string_set *capabilities; @@ -242,6 +243,13 @@ xen_host_get_api_version_vendor_implementation(xen_session *session, xen_string_ /** + * Get the enabled field of the given host. + */ +extern bool +xen_host_get_enabled(xen_session *session, bool *result, xen_host host); + + +/** * Get the software_version field of the given host. */ extern bool diff --git a/tools/libxen/src/xen_host.c b/tools/libxen/src/xen_host.c index bc2b1f0e8b..331ed2105b 100644 --- a/tools/libxen/src/xen_host.c +++ b/tools/libxen/src/xen_host.c @@ -64,6 +64,9 @@ static const struct_member xen_host_record_struct_members[] = { .key = "API_version_vendor_implementation", .type = &abstract_type_string_string_map, .offset = offsetof(xen_host_record, api_version_vendor_implementation) }, + { .key = "enabled", + .type = &abstract_type_bool, + .offset = offsetof(xen_host_record, enabled) }, { .key = "software_version", .type = &abstract_type_string_string_map, .offset = offsetof(xen_host_record, software_version) }, @@ -307,6 +310,22 @@ xen_host_get_api_version_vendor_implementation(xen_session *session, xen_string_ bool +xen_host_get_enabled(xen_session *session, bool *result, xen_host host) +{ + abstract_value param_values[] = + { + { .type = &abstract_type_string, + .u.string_val = host } + }; + + abstract_type result_type = abstract_type_bool; + + XEN_CALL_("host.get_enabled"); + return session->ok; +} + + +bool xen_host_get_software_version(xen_session *session, xen_string_string_map **result, xen_host host) { abstract_value param_values[] = diff --git a/tools/python/xen/xend/XendAPI.py b/tools/python/xen/xend/XendAPI.py index 89f0265f8b..add54448a6 100644 --- a/tools/python/xen/xend/XendAPI.py +++ b/tools/python/xen/xend/XendAPI.py @@ -876,7 +876,8 @@ class XendAPI(object): 'API_version_major', 'API_version_minor', 'API_version_vendor', - 'API_version_vendor_implementation'] + 'API_version_vendor_implementation', + 'enabled'] host_attr_rw = ['name_label', 'name_description', @@ -933,8 +934,8 @@ class XendAPI(object): return xen_api_success(XEN_API_VERSION_VENDOR) def host_get_API_version_vendor_implementation(self, _, ref): return xen_api_success(XEN_API_VERSION_VENDOR_IMPLEMENTATION) - def host_get_software_version(self, session, host_ref): - return xen_api_success(XendNode.instance().xen_version()) + def host_get_enabled(self, _, _): + return xen_api_success(XendDomain.instance().allow_new_domains()) def host_get_resident_VMs(self, session, host_ref): return xen_api_success(XendDomain.instance().get_domain_refs()) def host_get_PBDs(self, _, ref): |