Hi Junko-san, Can you try the attached patch, instead of this one?
Cheers, Dejan On Wed, Apr 10, 2013 at 06:13:45PM +0900, Junko IKEDA wrote: > Hi, > I set upper-case hostname (GUEST03/GUEST4) and run Pacemaker 1.1.9 + > Corosync 2.3.0. > > [root@GUEST04 ~]# crm_mon -1 > Last updated: Wed Apr 10 15:12:48 2013 > Last change: Wed Apr 10 14:02:36 2013 via crmd on GUEST04 > Stack: corosync > Current DC: GUEST04 (3232242817) - partition with quorum > Version: 1.1.9-e8caee8 > 2 Nodes configured, unknown expected votes > 1 Resources configured. > > > Online: [ GUEST03 GUEST04 ] > > dummy (ocf::pacemaker:Dummy): Started GUEST03 > > > for example, call crm shell with lower-case hostname. > > [root@GUEST04 ~]# crm node standby guest03 > ERROR: bad lifetime: guest03 > > "crm node standby GUEST03" surely works well, > so crm shell just doesn't take into account the hostname conversion. > It's better to accept the both of the upper/lower-case. > > "node standby", "node delete", "resource migrate(move)" get hit with this > issue. > Please see the attached. > > Thanks, > Junko > _______________________________________________________ > Linux-HA-Dev: [email protected] > http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev > Home Page: http://linux-ha.org/
# HG changeset patch # User Dejan Muhamedagic <[email protected]> # Date 1366728211 -7200 # Node ID cd4d36b347c17b06b76f3386c041947a03c708bb # Parent 4a47465b1fe1f48123080b4336f0b4516d9264f6 Medium: node: ignore case when looking up nodes (thanks to Junko Ikeda) diff -r 4a47465b1fe1 -r cd4d36b347c1 modules/ui.py.in --- a/modules/ui.py.in Tue Apr 23 11:23:10 2013 +0200 +++ b/modules/ui.py.in Tue Apr 23 16:43:31 2013 +0200 @@ -924,7 +924,7 @@ class RscMgmt(UserInterface): lifetime = None opt_l = fetch_opts(argl, ["force"]) if len(argl) == 1: - if not argl[0] in listnodes(): + if not is_node(argl[0]): lifetime = argl[0] else: node = argl[0] @@ -1186,7 +1186,7 @@ class NodeMgmt(UserInterface): if not args: node = vars.this_node if len(args) == 1: - if not args[0] in listnodes(): + if not is_node(args[0]): node = vars.this_node lifetime = args[0] else: @@ -1249,7 +1249,7 @@ class NodeMgmt(UserInterface): 'usage: delete <node>' if not is_name_sane(node): return False - if not node in listnodes(): + if not is_node(node): common_err("node %s not found in the CIB" % node) return False rc = True diff -r 4a47465b1fe1 -r cd4d36b347c1 modules/xmlutil.py --- a/modules/xmlutil.py Tue Apr 23 11:23:10 2013 +0200 +++ b/modules/xmlutil.py Tue Apr 23 16:43:31 2013 +0200 @@ -159,6 +159,15 @@ def mk_rsc_type(n): if ra_provider: s2 = "%s:"%ra_provider return ''.join((s1,s2,ra_type)) +def is_node(s): + ''' + Check if s is in a list of our nodes (ignore case). + This is not fast, perhaps should be cached. + ''' + for n in listnodes(): + if n.lower() == s.lower(): + return True + return False def listnodes(): nodes_elem = cibdump2elem("nodes") if nodes_elem is None:
_______________________________________________________ Linux-HA-Dev: [email protected] http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev Home Page: http://linux-ha.org/
