Description of problem: When I'm trying to fence host without power management configured I'm getting misleading error: "Cannot stop Host. Fencing operation failed., Cannot perform Stop operation, Host has to be in Maintenance mode in order to be stopped" I expect to get an error about no PM configured ... Version-Release number of selected component (if applicable): How reproducible: Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info: ## host details <host id="07a308be-d67f-11e1-b33b-001a4a231295" href="/api/hosts/07a308be-d67f-11e1-b33b-001a4a231295"> <name>cinteg35.ci.lab.tlv.redhat.com</name> <actions> <link rel="fence" href="/api/hosts/07a308be-d67f-11e1-b33b-001a4a231295/fence"/> <link rel="install" href="/api/hosts/07a308be-d67f-11e1-b33b-001a4a231295/install"/> <link rel="activate" href="/api/hosts/07a308be-d67f-11e1-b33b-001a4a231295/activate"/> <link rel="deactivate" href="/api/hosts/07a308be-d67f-11e1-b33b-001a4a231295/deactivate"/> <link rel="approve" href="/api/hosts/07a308be-d67f-11e1-b33b-001a4a231295/approve"/> <link rel="iscsilogin" href="/api/hosts/07a308be-d67f-11e1-b33b-001a4a231295/iscsilogin"/> <link rel="iscsidiscover" href="/api/hosts/07a308be-d67f-11e1-b33b-001a4a231295/iscsidiscover"/> <link rel="commitnetconfig" href="/api/hosts/07a308be-d67f-11e1-b33b-001a4a231295/commitnetconfig"/> </actions> <link rel="storage" href="/api/hosts/07a308be-d67f-11e1-b33b-001a4a231295/storage"/> <link rel="nics" href="/api/hosts/07a308be-d67f-11e1-b33b-001a4a231295/nics"/> <link rel="tags" href="/api/hosts/07a308be-d67f-11e1-b33b-001a4a231295/tags"/> <link rel="permissions" href="/api/hosts/07a308be-d67f-11e1-b33b-001a4a231295/permissions"/> <link rel="statistics" href="/api/hosts/07a308be-d67f-11e1-b33b-001a4a231295/statistics"/> <address>10.35.148.108</address> <certificate> <organization>oVirt</organization> <subject>O=oVirt,CN=10.35.148.108</subject> </certificate> <status> <state>up</state> </status> <cluster id="059643ce-d67f-11e1-9410-001a4a231295" href="/api/clusters/059643ce-d67f-11e1-9410-001a4a231295"/> <port>54321</port> <type>rhel</type> <storage_manager priority="5">false</storage_manager> <power_management> <enabled>false</enabled> <options/> </power_management> <ksm> <enabled>false</enabled> </ksm> <transparent_hugepages> <enabled>false</enabled> </transparent_hugepages> <iscsi> <initiator>iqn.1994-05.com.redhat:7d19e19ec49b</initiator> </iscsi> <cpu> <topology cores="4" sockets="1"/> <name>Intel(R) Xeon(R) CPU E5620 @ 2.40GHz</name> <speed>2400</speed> </cpu> <memory>12479102976</memory> <summary> <total>0</total> </summary> </host> </hosts> ## fence post command : 2012-07-25 20:39:59,910 - MainThread - hosts - DEBUG - Response code is valid: [200, 201] 2012-07-25 20:39:59,913 - MainThread - hosts - DEBUG - Action request content is -- url:http://localhost:8080/api/hosts/07a308be-d67f-11e1-b33b-001a4a231295/fence body:<action><async>false</async><grace_period><expiry>10</expiry><absolute>false</absolute></grace_period><fence_type>STOP</fence_type></action> 2012-07-25 20:40:00,239 - MainThread - hosts - DEBUG - Response body for action request is: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <action> <async>false</async> <grace_period> <expiry>10</expiry> </grace_period> <fence_type>STOP</fence_type> <status> <state>failed</state> </status> <fault> <reason>Operation Failed</reason> <detail>[Cannot stop Host. Fencing operation failed., Cannot perform Stop operation, Host has to be in Maintenance mode in order to be stopped.]</detail> </fault> </action>
http://gerrit.ovirt.org/#/c/6879
fixed in commit: 99c42a1
The error message is still misleading when <fence_type>STOP</fence_type> while it is fixed when <fence_type>RESTART</fence_type> Request STOP: ============= <action> <async>false</async> <grace_period> <expiry>10</expiry> <absolute>false</absolute> </grace_period> <fence_type>STOP</fence_type> </action> Response STOP: ============== <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <action> <async>false</async> <grace_period> <expiry>10</expiry> </grace_period> <fence_type>STOP</fence_type> <status> <state>failed</state> </status> <fault> <reason>Operation Failed</reason> <detail>[Cannot fence Host, Host fencing is disabled., Cannot perform Stop operation, Host has to be in Maintenance mode in order to be stopped.]</detail> </fault> </action> REQUEST RESTART: ================ <action> <async>false</async> <grace_period> <expiry>10</expiry> <absolute>false</absolute> </grace_period> <fence_type>RESTART</fence_type> </action> RESPONSE RESTART: ================= <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <action> <async>false</async> <grace_period> <expiry>10</expiry> </grace_period> <fence_type>RESTART</fence_type> <status> <state>failed</state> </status> <fault> <reason>Operation Failed</reason> <detail>[Cannot fence Host, Host fencing is disabled.]</detail> </fault> </action>
This is not a Bug, you got the right message in both Stop & Restart "Cannot fence Host, Host fencing is disabled." The difference is, that in Stop you got an additional message : "Cannot perform Stop operation, Host has to be in Maintenance mode in order to be stopped." Each command has a validation phase (called canDoAction) and execution phase. During the validation phase, all validations are checked and we got back a list of all the validations rejections as a collection of messages. Therefore, in Stop command, in which we are checking also the Host status, you got in addition to the 'fencing is disabled' message , also the second message that reminds you that even if you had PM configured on the Host , still , the operation will fail since the Host is not in the right status. IMHO, its user friendly , instead of fixing one problem , clicking the Stop again and getting another reason why your command is not working, you got it all and can fix it all at once . I had closed this bug since it functions exactly as designed