WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] Added host.capabilities field.

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] Added host.capabilities field.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Mon, 26 Feb 2007 03:50:32 -0800
Delivery-date: Mon, 26 Feb 2007 04:42:17 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Ewan Mellor <ewan@xxxxxxxxxxxxx>
# Date 1172446625 0
# Node ID 36702d9b2c5cffc73f431bffc109629db386f898
# Parent  e71b277f1533df03a3c51641552308d10aa4e0f0
Added host.capabilities field.

Signed-off-by: Ewan Mellor <ewan@xxxxxxxxxxxxx>
---
 docs/xen-api/xenapi-datamodel.tex |   33 +++++++++++++++++++++++++++++++++
 tools/libxen/include/xen_host.h   |    8 ++++++++
 tools/libxen/src/xen_host.c       |   21 +++++++++++++++++++++
 tools/libxen/test/test_bindings.c |   24 ++++++++++++++++++++++++
 tools/python/xen/xend/XendAPI.py  |    4 ++++
 tools/python/xen/xend/XendNode.py |    3 +++
 6 files changed, 93 insertions(+)

diff -r e71b277f1533 -r 36702d9b2c5c docs/xen-api/xenapi-datamodel.tex
--- a/docs/xen-api/xenapi-datamodel.tex Sun Feb 25 23:17:14 2007 +0000
+++ b/docs/xen-api/xenapi-datamodel.tex Sun Feb 25 23:37:05 2007 +0000
@@ -4806,6 +4806,7 @@ Quals & Field & Type & Description \\
 $\mathit{RO}_\mathit{run}$ &  {\tt API\_version/vendor\_implementation} & 
(string $\rightarrow$ string) Map & details of vendor implementation \\
 $\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 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 \\
@@ -5460,6 +5461,38 @@ void
 
 
 
+\vspace{0.3cm}
+\vspace{0.3cm}
+\vspace{0.3cm}
+\subsubsection{RPC name:~get\_capabilities}
+
+{\bf Overview:} 
+Get the capabilities field of the given host.
+
+ \noindent {\bf Signature:} 
+\begin{verbatim} (string Set) get_capabilities (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 Set
+}
+
+
+value of the field
 \vspace{0.3cm}
 \vspace{0.3cm}
 \vspace{0.3cm}
diff -r e71b277f1533 -r 36702d9b2c5c tools/libxen/include/xen_host.h
--- a/tools/libxen/include/xen_host.h   Sun Feb 25 23:17:14 2007 +0000
+++ b/tools/libxen/include/xen_host.h   Sun Feb 25 23:37:05 2007 +0000
@@ -78,6 +78,7 @@ typedef struct xen_host_record
     xen_string_string_map *api_version_vendor_implementation;
     xen_string_string_map *software_version;
     xen_string_string_map *other_config;
+    struct xen_string_set *capabilities;
     struct xen_string_set *supported_bootloaders;
     struct xen_vm_record_opt_set *resident_vms;
     xen_string_string_map *logging;
@@ -253,6 +254,13 @@ xen_host_get_other_config(xen_session *s
 
 
 /**
+ * Get the capabilities field of the given host.
+ */
+extern bool
+xen_host_get_capabilities(xen_session *session, struct xen_string_set 
**result, xen_host host);
+
+
+/**
  * Get the supported_bootloaders field of the given host.
  */
 extern bool
diff -r e71b277f1533 -r 36702d9b2c5c tools/libxen/src/xen_host.c
--- a/tools/libxen/src/xen_host.c       Sun Feb 25 23:17:14 2007 +0000
+++ b/tools/libxen/src/xen_host.c       Sun Feb 25 23:37:05 2007 +0000
@@ -70,6 +70,9 @@ static const struct_member xen_host_reco
         { .key = "other_config",
           .type = &abstract_type_string_string_map,
           .offset = offsetof(xen_host_record, other_config) },
+        { .key = "capabilities",
+          .type = &abstract_type_string_set,
+          .offset = offsetof(xen_host_record, capabilities) },
         { .key = "supported_bootloaders",
           .type = &abstract_type_string_set,
           .offset = offsetof(xen_host_record, supported_bootloaders) },
@@ -124,6 +127,7 @@ xen_host_record_free(xen_host_record *re
     xen_string_string_map_free(record->api_version_vendor_implementation);
     xen_string_string_map_free(record->software_version);
     xen_string_string_map_free(record->other_config);
+    xen_string_set_free(record->capabilities);
     xen_string_set_free(record->supported_bootloaders);
     xen_vm_record_opt_set_free(record->resident_vms);
     xen_string_string_map_free(record->logging);
@@ -329,6 +333,23 @@ xen_host_get_other_config(xen_session *s
 
 
 bool
+xen_host_get_capabilities(xen_session *session, struct xen_string_set 
**result, xen_host host)
+{
+    abstract_value param_values[] =
+        {
+            { .type = &abstract_type_string,
+              .u.string_val = host }
+        };
+
+    abstract_type result_type = abstract_type_string_set;
+
+    *result = NULL;
+    XEN_CALL_("host.get_capabilities");
+    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 e71b277f1533 -r 36702d9b2c5c tools/libxen/test/test_bindings.c
--- a/tools/libxen/test/test_bindings.c Sun Feb 25 23:17:14 2007 +0000
+++ b/tools/libxen/test/test_bindings.c Sun Feb 25 23:37:05 2007 +0000
@@ -238,6 +238,22 @@ int main(int argc, char **argv)
         return 1;
     }
 
+    xen_string_set *capabilities;
+    if (!xen_host_get_capabilities(session, &capabilities, host))
+    {
+        print_error(session);
+        free(dmesg);
+        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);
 
     fprintf(stderr, "In bytes, the VM UUID is ");
@@ -261,6 +277,13 @@ int main(int argc, char **argv)
     for (size_t i = 0; i < supported_bootloaders->size; i++)
     {
         printf(" %s", supported_bootloaders->contents[i]);
+    }
+    printf("\n");
+
+    printf("Host has the following capabilities:");
+    for (size_t i = 0; i < capabilities->size; i++)
+    {
+        printf(" %s", capabilities->contents[i]);
     }
     printf("\n");
 
@@ -279,6 +302,7 @@ int main(int argc, char **argv)
     xen_string_string_map_free(versions);
     free(dmesg);
     xen_string_set_free(supported_bootloaders);
+    xen_string_set_free(capabilities);
 
     print_vm_metrics(session, vm);
     if (!session->ok)
diff -r e71b277f1533 -r 36702d9b2c5c tools/python/xen/xend/XendAPI.py
--- a/tools/python/xen/xend/XendAPI.py  Sun Feb 25 23:17:14 2007 +0000
+++ b/tools/python/xen/xend/XendAPI.py  Sun Feb 25 23:37:05 2007 +0000
@@ -630,6 +630,7 @@ class XendAPI(object):
                     'resident_VMs',
                     'host_CPUs',
                     'metrics',
+                    'capabilities',
                     'supported_bootloaders',
                     'API_version_major',
                     'API_version_minor',
@@ -694,6 +695,8 @@ class XendAPI(object):
         return xen_api_success(XendNode.instance().get_host_cpu_refs())
     def host_get_metrics(self, _, ref):
         return xen_api_success(XendNode.instance().host_metrics_uuid)
+    def host_get_capabilities(self, session, host_ref):
+        return xen_api_success(XendNode.instance().get_capabilities())
     def host_get_supported_bootloaders(self, session, host_ref):
         return xen_api_success(['pygrub'])
 
@@ -732,6 +735,7 @@ class XendAPI(object):
                   'resident_VMs': dom.get_domain_refs(),
                   'host_CPUs': node.get_host_cpu_refs(),
                   'metrics': node.host_metrics_uuid,
+                  'capabilities': node.get_capabilities(),
                   'supported_bootloaders': 'pygrub'}
         return xen_api_success(record)
 
diff -r e71b277f1533 -r 36702d9b2c5c tools/python/xen/xend/XendNode.py
--- a/tools/python/xen/xend/XendNode.py Sun Feb 25 23:17:14 2007 +0000
+++ b/tools/python/xen/xend/XendNode.py Sun Feb 25 23:37:05 2007 +0000
@@ -353,6 +353,9 @@ class XendNode:
     def get_uuid(self):
         return self.uuid
 
+    def get_capabilities(self):
+        return self.xc.xeninfo()['xen_caps'].split(" ")
+
     #
     # Host CPU Functions
     #

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] Added host.capabilities field., Xen patchbot-unstable <=