Project

General

Profile

Actions

Feature #1890

closed

Implement a host status API call

Added by Rytis Sileika over 11 years ago. Updated over 11 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
API
Target version:
Difficulty:
Triaged:
Fixed in Releases:
Found in Releases:

Description

Currently it is not possible to obtain host status for a particular host via API.

I mean host status like it is displayed in the host list screen:

- out of sync (S)
- building (B)
- active (A)
- no changes (O)
- error (E)

Something like: /hosts/FQDN/status

Actions #1

Updated by Ohad Levy over 11 years ago

what about /hosts/fqdn/reports/last ?

Actions #2

Updated by Rytis Sileika over 11 years ago

But that only returns puppet report status, ie number of failed modules, stuff like that. It doesn't tell whether node is in "build" state, or haven't checked in for a long time (ie 'out of sync')?

I might be making up things as I speak from memory, can't check it right now - will check the reports/status url output when back in the office....

Actions #3

Updated by Rytis Sileika over 11 years ago

So /hosts/FQDN/reports/last gives me this:

{"report":
    {"host":"FQDN",
     "id":409,
     "logs":[
        {"log":{"messages":
                {"message":"Finished catalog run in 3.25 seconds"},
                "sources":{"source":"//FQDN/Puppet"}}},
        {"log":{"messages":{"message":"Could not intern from pson: source '\"#<Puppet::Node:0x7f' not in PSON!"},
                "sources":{"source":"//FQDN/Puppet"}}},
        {"log":{"messages":{"message":"Unable to fetch my node definition, but the agent run will continue:"},
                "sources":{"source":"//FQDN/Puppet"}}}],
     "summary":"Success",
     "status":{"skipped":6,
               "failed_restarts":0,
               "applied":0,
               "pending":0,
               "restarted":0,
               "failed":0},
     "reported_at":"2012-10-08T07:21:14Z",
     "metrics":{"events":
                {"total":0,
                 "success":0,
                 "failure":0},
                "resources":
                 {"skipped":6,
                  "total":23,
                  "changed":0,
                  "out_of_sync":0,
                  "scheduled":0,
                  "failed_to_restart":0,
                  "restarted":0,
                  "failed":0},
     "changes":{"total":0},
     "time":{"total":4.13812288578796,
             "config_retrieval":1.55275988578796,
             "exec":0.409399,
             "filebucket":0.000166,
             "service":1.815179,
             "file":0.355286,
             "package":0.005333}}}}

Which is perhaps OK for the hosts that are already built. But it does not tell me whether the host is set to be built. If I click on build, all reports are deleted, and I don't even get the info above.

Here's what I wanted to do, may be that would serve as a use case: I want to schedule a periodic host rebuild task:
  1. Create an empty VM object in VMware
  2. Register in Foreman
  3. PXE boot
  4. Wait for the node to finish building
  5. Do something else with the built VM

So steps 1-3 are easy to implement, but I got stuck at checking when the build is completely finished. There are ways of doing that, but just having a simple API call that would tell me various states (Building, Active, No changes, etc) would be very helpful... :)

Actions #4

Updated by Greg Sutcliffe over 11 years ago

I think there are other good use cases for this as well. For example, it would be trivial to use this to build a set of Nagios checks that report if hosts stay in a certain state too long.

Actions #5

Updated by Joseph Magen over 11 years ago

  • Status changed from New to Ready For Testing
  • Assignee set to Joseph Magen

I submitted a pull request with status names
https://github.com/theforeman/foreman/pull/315

  • missing
  • failed
  • pending
  • changed
  • unchanged
  • unreported

I don't have a status yet for "building"

Actions #6

Updated by Joseph Magen over 11 years ago

New status names. Sames is UI hover hints on List of Hosts page.

"Pending Installation"
"Alerts disabled"
"No reports"
"Out of sync"
"Error"
"Active"
"Pending"
"No changes"

Actions #7

Updated by Ohad Levy over 11 years ago

  • Category set to API
  • Target version set to 1.1
Actions #8

Updated by Anonymous over 11 years ago

  • Status changed from Ready For Testing to Closed
  • % Done changed from 0 to 100
Actions

Also available in: Atom PDF