From mboxrd@z Thu Jan 1 00:00:00 1970 From: kupcevic@sourceware.org Date: 12 Oct 2006 20:01:52 -0000 Subject: [Cluster-devel] conga/ricci/modules/cluster Clusvcadm.cpp clum ... Message-ID: <20061012200152.12949.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-10-12 20:01:51 Modified files: ricci/modules/cluster: Clusvcadm.cpp ricci/modules/cluster/clumon/src/daemon: Monitor.cpp Log message: rpm module & modcluster: implement changes in `clustat -x` output Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/modules/cluster/Clusvcadm.cpp.diff?cvsroot=cluster&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/modules/cluster/clumon/src/daemon/Monitor.cpp.diff?cvsroot=cluster&r1=1.6&r2=1.7 --- conga/ricci/modules/cluster/Clusvcadm.cpp 2006/10/06 03:10:13 1.5 +++ conga/ricci/modules/cluster/Clusvcadm.cpp 2006/10/12 20:01:51 1.6 @@ -51,15 +51,18 @@ ServiceStatus(const String& name, const String& node, - state status) : + state status, + bool xenvm) : name(name), node(node), - status(status) {} + status(status), + xenvm(xenvm) {} virtual ~ServiceStatus() {} String name; String node; state status; + bool xenvm; }; @@ -101,8 +104,12 @@ iter->status == ServiceStatus::RG_STATE_DISABLED) flag = "-e"; else if (iter->status == ServiceStatus::RG_STATE_STARTED || - iter->status == ServiceStatus::RG_STATE_STARTING) - flag = "-r"; + iter->status == ServiceStatus::RG_STATE_STARTING) { + if (iter->xenvm) + flag = "-M"; + else + flag = "-r"; + } if (flag.size()) { String out, err; @@ -215,7 +222,7 @@ args.push_back("-x"); if (utils::execute(CLUSTAT_TOOL_PATH, args, out, err, status, false)) throw command_not_found_error_msg(CLUSTAT_TOOL_PATH); - if (status != 0) + if (status) throw String("clustat failed"); XMLObject xml = parseXML(out); @@ -249,11 +256,18 @@ iter != groups_xml.children().end(); iter++) if (iter->tag() == "group") { + bool xenvm = false; String name(iter->get_attr("name")); + String::size_type idx = name.find(":"); + if (idx != name.npos) { + if (name.substr(0, idx) == "xenvm") + xenvm = true; + name = name.substr(idx + 1); + } String node(iter->get_attr("owner")); ServiceStatus::state state = (ServiceStatus::state) utils::to_long(iter->get_attr("state")); - services.push_back(ServiceStatus(name, node, state)); + services.push_back(ServiceStatus(name, node, state, xenvm)); } return pair, list >(nodes, services); --- conga/ricci/modules/cluster/clumon/src/daemon/Monitor.cpp 2006/08/15 00:12:33 1.6 +++ conga/ricci/modules/cluster/clumon/src/daemon/Monitor.cpp 2006/10/12 20:01:51 1.7 @@ -628,7 +628,16 @@ XMLObject service("service"); // name - service.set_attr("name", group.get_attr("name")); + String name(group.get_attr("name")); + bool xenvm = false; + String::size_type idx = name.find(":"); + if (idx != name.npos) { + if (name.substr(0, idx) == "xenvm") + xenvm = true; + name = name.substr(idx + 1); + } + service.set_attr("name", name); + // state bool failed, running;