Bug #20549

Response of reboot API action needs more readable messages

Added by Rahul Bajaj 10 months ago. Updated 30 days ago.

Status:Ready For Testing
Priority:Normal
Assigned To:Rahul Bajaj
Category:Discovery plugin
Target version:Foreman - Team Anurag Iteration 21
Difficulty: Pull request:https://github.com/theforeman/foreman_discovery/pull/380
Bugzilla link:
Story points-
Velocity based estimate-

Description

When a reboot fails for one or more hosts, api glues the error messages together and puts them into one message. It also prints details about exception class (Foreman::WrappedException) which makes it even worse to read.

We should remove the wrapped exception details and put each message on it's own line.

Current response:

{"error" => {
  "message" => "Errors during reboot: mac525400d8c85d: ERF50-4973 [Foreman::WrappedException]: Unable to reboot mac525400d8c85d via https://192.168.122.25:8443: Failed to open TCP connection to 192.168.122.25:8443 (No route to host - connect(2) for "192.168.122.25" port 8443) ([Errno::EHOSTUNREACH]: Failed to open TCP connection to 192.168.122.25:8443 (No route to host - connect(2) for...) mac52540022ab12: ERF50-4973 [Foreman::WrappedException]: Unable to reboot mac52540022ab12 via https://192.168.122.156:8443: Failed to open TCP connection to 192.168.122.156:8443 (No route to host - connect(2) for "192.168.122.156" port 8443) ([Errno::EHOSTUNREACH]: Failed to open TCP connection to 192.168.122.156:8443 (No route to host - connect(2) fo...)" 
  }
}

Expected result:

The common messages should put status of each host on a single line. The response should also contain the data about failures in machine readable format.

{ "error" => {
    "message" => "Errors during reboot:\n
Unable to reboot mac525400d8c85d via https://192.168.122.25:8443: Failed to open TCP connection to 192.168.122.25:8443\n
Unable to reboot mac52540022ab12 via https://192.168.122.156:8443: Failed to open TCP connection to 192.168.122.156:8443" 
    "host_details" => [{
      "name" => "mac525400d8c85d",
      "error" => "Failed to open TCP connection to 192.168.122.25:8443" 
    },{
      "name" => "mac52540022ab12",
      "error" => "Failed to open TCP connection to 192.168.122.156:8443" 
    }]
  }
}

It will enable for easier usage in scripts. Eg. hammer can use the 'host_details' for printing nicely formatted messages:

hammer discovery reboot --all
Could not reboot the host(s):
  mac525400d8c85d: Failed to open TCP connection to 192.168.122.25:8443
  mac52540022ab12: Failed to open TCP connection to 192.168.122.156:8443


Related issues

Related to Foreman - Bug #21108: Add host_details to custom error Rejected 09/26/2017
Related to Discovery - Bug #21109: Format the message passed on by the reboot API Closed 09/26/2017

History

#1 Updated by Tomáš Strachota 10 months ago

  • Project changed from Hammer CLI to Discovery
  • Subject changed from Remove the wrapped exception details and put each message on it's own line to Response of reboot API action needs more readable messages
  • Description updated (diff)
  • Category changed from Hammer core to Discovery plugin

Thanks for reporting the issue, Rahul. I moved it to project "Discovery" because it's an API issue and it needs to be fixed in the foreman discovery plugin (server side). I also added some more details.

#2 Updated by Rahul Bajaj 8 months ago

  • Target version set to Team Anurag Iteration 21

#3 Updated by The Foreman Bot 8 months ago

  • Status changed from New to Ready For Testing
  • Pull request https://github.com/theforeman/foreman_discovery/pull/380 added

#4 Updated by Rahul Bajaj 8 months ago

  • Related to Bug #21108: Add host_details to custom error added

#5 Updated by Rahul Bajaj 8 months ago

  • Related to Bug #21109: Format the message passed on by the reboot API added

Also available in: Atom PDF