
On 15/07/14 17:59 +0200, Juan Hernandez wrote:
On 07/15/2014 05:51 PM, Adam Litke wrote:
Hi all,
I am trying to configure custom fencing using fence_virsh in order to test out fencing flows with my virtualized oVirt hosts. I'm getting a failure when clicking the "Test" button. Can someone help me to diagnose the problem? I have applied the following settings using engine-config:
~/ovirt-engine/bin/engine-config -s CustomVdsFenceType="xxxvirt" ~/ovirt-engine/bin/engine-config -s CustomFenceAgentMapping="xxxvirt=virsh" ~/ovirt-engine/bin/engine-config -s CustomVdsFenceOptionMapping="xxxvirt:address=ip,username=username,password=password"
(note that engine-config seems to arbitrarily limit the number of mapped options to 3. Seems like a bug to me).
Here is the log output in engine.log:
2014-07-15 11:43:34,813 INFO [org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector] (http--0.0.0.0-8080-1) Correlation ID: null, Call Stack: null, Custom Event ID: -1, Message: Host centennial from cluster block was chosen as a proxy to execute Status command on Host cascade. 2014-07-15 11:43:34,813 INFO [org.ovirt.engine.core.bll.FenceExecutor] (http--0.0.0.0-8080-1) Using Host centennial from cluster block as proxy to execute Status command on Host 2014-07-15 11:43:34,815 INFO [org.ovirt.engine.core.bll.FenceExecutor] (http--0.0.0.0-8080-1) Executing <Status> Power Management command, Proxy Host:centennial, Agent:virsh, Target Host:, Management IP:192.168.2.101, User:root, Options: 2014-07-15 11:43:34,816 INFO [org.ovirt.engine.core.vdsbroker.vdsbroker.FenceVdsVDSCommand] (http--0.0.0.0-8080-1) START, FenceVdsVDSCommand(HostName = centennial, HostId = a34f7dbc-dd99-4831-a1a9-54c411080ec1, targetVdsId = b6b9d480-e20f-411a-9b9c-883fac32a4e5, action = Status, ip = 192.168.2.101, port = , type = virsh, user = root, password = ******, options = ''), log id: 24f33bda 2014-07-15 11:43:34,875 ERROR [org.ovirt.engine.core.vdsbroker.vdsbroker.FenceVdsVDSCommand] (http--0.0.0.0-8080-1) Failed in FenceVdsVDS method, for vds: centennial; host: 192.168.2.103 2014-07-15 11:43:34,876 ERROR [org.ovirt.engine.core.vdsbroker.vdsbroker.FenceVdsVDSCommand] (http--0.0.0.0-8080-1) Command FenceVdsVDSCommand(HostName = centennial, HostId = a34f7dbc-dd99-4831-a1a9-54c411080ec1, targetVdsId = b6b9d480-e20f-411a-9b9c-883fac32a4e5, action = Status, ip = 192.168.2.101, port = , type = virsh, user = root, password = ******, options = '') execution failed. Exception: ClassCastException: [Ljava.lang.Object; cannot be cast to java.lang.String 2014-07-15 11:43:34,877 INFO [org.ovirt.engine.core.vdsbroker.vdsbroker.FenceVdsVDSCommand] (http--0.0.0.0-8080-1) FINISH, FenceVdsVDSCommand, log id: 24f33bda
Looks like this bug:
Indeed it is. So I looked at the host to see what the failure was and I get the following messages. It looks like engine is not passing the contents of the 'Slot' UI field as the port option. This, even after I changed the param mapping like so: engine-config -s CustomVdsFenceOptionMapping="xxxvirt:address=ip,username=username,password=password,slot=port" Thread-440::DEBUG::2014-07-15 15:06:46,997::API::1165::vds::(fenceNode) fenceNode(addr=192.168.2.101,port=,agent=virsh,user=root,passwd=XXXX,action=status,secure=,options==block-cascade) Thread-440::DEBUG::2014-07-15 15:06:46,997::utils::594::root::(execCmd) /usr/sbin/fence_virsh (cwd None) Thread-440::DEBUG::2014-07-15 15:06:47,035::utils::614::root::(execCmd) FAILED: <err> = "WARNING:root:Parse error: Ignoring unknown option '=block-cascade'\n\nERROR:root:Failed: You have to enter plug number or machine identification\n\nERROR:root:Please use '-h' for usage\n\n"; <rc> = 1 Thread-440::DEBUG::2014-07-15 15:06:47,035::API::1152::vds::(fence) rc 1 inp agent=fence_virsh ipaddr=192.168.2.101 login=root action=status passwd=XXXX =block-cascade out [] err ["WARNING:root:Parse error: Ignoring unknown option '=block-cascade'", '', 'ERROR:root:Failed: You have to enter plug number or machine identification', '', "ERROR:root:Please use '-h' for usage", ''] Thread-440::DEBUG::2014-07-15 15:06:47,035::API::1188::vds::(fenceNode) rc 1 in agent=fence_virsh ipaddr=192.168.2.101 login=root action=status passwd=XXXX =block-cascade out [] err ["WARNING:root:Parse error: Ignoring unknown option '=block-cascade'", '', 'ERROR:root:Failed: You have to enter plug number or machine identification', '', "ERROR:root:Please use '-h' for usage", '']
-- Dirección Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta 3ºD, 28016 Madrid, Spain Inscrita en el Reg. Mercantil de Madrid – C.I.F. B82657941 - Red Hat S.L.
-- Adam Litke