From mboxrd@z Thu Jan 1 00:00:00 1970 From: kupcevic@sourceware.org Date: 24 Aug 2006 20:15:33 -0000 Subject: [Cluster-devel] conga luci/site/luci/Extensions/ricci_communic ... Message-ID: <20060824201533.13006.qmail@sourceware.org> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit CVSROOT: /cvs/cluster Module name: conga Changes by: kupcevic at sourceware.org 2006-08-24 20:15:30 Modified files: luci/site/luci/Extensions: ricci_communicator.py ricci/ricci : Ricci.cpp Log message: xen: domain-0 detection Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/ricci_communicator.py.diff?cvsroot=cluster&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/ricci/Ricci.cpp.diff?cvsroot=cluster&r1=1.16&r2=1.17 --- conga/luci/site/luci/Extensions/ricci_communicator.py 2006/06/21 23:07:06 1.3 +++ conga/luci/site/luci/Extensions/ricci_communicator.py 2006/08/24 20:15:23 1.4 @@ -33,6 +33,7 @@ self.__clualias = hello.firstChild.getAttribute('clusteralias') self.__reported_hostname = hello.firstChild.getAttribute('hostname') self.__os = hello.firstChild.getAttribute('os') + self.__dom0 = hello.firstChild.getAttribute('xen_host') == 'true' pass @@ -49,6 +50,8 @@ return (self.__cluname, self.__clualias) def os(self): return self.__os + def dom0(self): + return self.__dom0 def auth(self, password): @@ -211,6 +214,8 @@ return ricci.system_name() def ricci_get_os(self, ricci): return ricci.os() +def ricci_get_dom0(self, ricci): + return ricci.dom0() def ricci_get_cluster_info(self, ricci): return ricci.cluster_info() def ricci_get_authenticated(self, ricci): --- conga/ricci/ricci/Ricci.cpp 2006/08/14 23:53:21 1.16 +++ conga/ricci/ricci/Ricci.cpp 2006/08/24 20:15:29 1.17 @@ -43,6 +43,7 @@ using namespace std; +static bool dom0(); static String hostname(); static pair clusterinfo(); static String os_release(); @@ -83,6 +84,9 @@ String os = os_release(); if (os.size()) header.set_attr("os", os); + + header.set_attr("xen_host", + dom0() ? "true" : "false"); } } @@ -529,3 +533,25 @@ return ""; } } + +bool +dom0() +{ + try { + String out, err; + int status; + vector args; + args.push_back("nodeinfo"); + if (utils::execute("/usr/bin/virsh", + args, + out, + err, + status, + false)) + throw String("execution of virsh failed"); + if (status == 0) + return true; + } catch ( ... ) {} + + return false; +}