Skip to contentSkip to conversation

resource-agents: Find any descendant IP resource of a service

PATCH New Michael Bunk 2 participants 3 messages Sep 28, 2011 – Sep 30, 2011

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 resource-agents: Find any descendant IP resource of a service

Not just immediate children. This fixes errors in sylog like this:

rgmanager[xxxx]: Looking For IP Addresses [apache:apache] > Failed - No IP Addresses Found

---
 rgmanager/src/resources/utils/config-utils.sh.in |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
rgmanager/src/resources/utils/config-utils.sh.in +1 -1
index 299537a..7786eb3 100644
@@ -135,7 +135,7 @@ get_service_ip_keys()
 	#
 	x=1
 	while : ; do
-		key="/cluster/rm/service[@name=\"$svc\"]/ip[$x]"
+		key="/cluster/rm/service[@name=\"$svc\"]//ip[$x]"
 
 		#
 		# Try direct method
Signature · 1 line
1.7.5.1
#1 lore raw

PATCH 1/1 resource-agents: Find any descendant IP resource of a service

Quoted 3 lines · Michael Bunk

Not just immediate children. This fixes errors in sylog like this:

rgmanager[xxxx]: Looking For IP Addresses [apache:apache]> Failed - No IP Addresses Found

I -think- it was intentional; if it's not at the top level, you can do things like:

<service>

     <apache>
       <ip/>
     </apache>

</service>

The // will then find that IP, but the configuration generated by apache resource agent will be incorrect and cause the Apache instance to fail to start: it will try to bind to the IP address.

I suppose that's a degenerate case, however.

The RA guys should definitely have an idea here.

-- Lon

#2 lore raw

PATCH 1/1 resource-agents: Find any descendant IP resource of a service

Am 28.09.2011 22:35, schrieb Lon Hohberger:

Quoted 13 lines · Michael Bunk
Quoted 4 lines

Not just immediate children. This fixes errors in sylog like this:

rgmanager[xxxx]: Looking For IP Addresses [apache:apache]> Failed - No IP Addresses Found

I -think- it was intentional; if it's not at the top level, you can do things like:

<service>

    <apache>
      <ip/>
    </apache>
Quoted 7 lines

</service>

The // will then find that IP, but the configuration generated by apache resource agent will be incorrect and cause the Apache instance to fail to start: it will try to bind to the IP address.

I suppose that's a degenerate case, however.

Yes, that is pathological... but our case - which worked in RHEL 4 - looks like this:

<service>
<script ref="tiebreaker">

     <script file="/etc/cluster/drbd0" name="drbd0" ...>
        <fs device="/dev/drbd0" ...>
          <ip ...>
            <apache/>
          </ip>
        </fs>
      </script>
    </script>

</service>

It doesn't feel right to make the ip resource a sibling of the tiebreaker script.

If <ip> resources are required to be put directly under <service>, then the docs (without having read them every word) should mention this and the XML schema for cluster.conf should enforce it.

Michael