Project

General

Profile

Actions

Bug #20742

closed

Host reports command is dysfunctional

Added by Tomáš Strachota about 7 years ago. Updated over 6 years ago.

Status:
Closed
Priority:
High
Category:
Reporting
Difficulty:
Triaged:
Team Backlog:
Fixed in Releases:
Found in Releases:
In Kanboard:

Description

hammer host reports allow specifying the host by either --id or --name. None of the methods actually work.

Using --name
Ends up with 400 error

> hammer host reports --name sandy-oberdorf.tstracho-laptop
Error: 400 Bad Request

caused by:

[ INFO 2017-08-25 12:27:34 API] GET /api/reports
[DEBUG 2017-08-25 12:27:34 API] Params: {
    :search => "name = \"sandy-oberdorf.tstracho-laptop\"" 
}
[DEBUG 2017-08-25 12:27:34 API] Headers: {
    :params => {
        :search => "name = \"sandy-oberdorf.tstracho-laptop\"" 
    }
}
[ERROR 2017-08-25 12:27:34 API] 400 Bad Request
[DEBUG 2017-08-25 12:27:34 API] {
    "error" => {
        "message" => "Field 'name' not recognized for searching!",
          "class" => "ScopedSearch::QueryNotSupported" 
    }
}

Using --id
Returns empty list

hammer host reports --id 13
---|------|-------------|---------|-----------|--------|------------------|---------|--------
ID | HOST | LAST REPORT | APPLIED | RESTARTED | FAILED | RESTART FAILURES | SKIPPED | PENDING
---|------|-------------|---------|-----------|--------|------------------|---------|--------

which is caused by wrong search condition:

[ INFO 2017-08-25 12:54:59 API] GET /api/reports
[DEBUG 2017-08-25 12:54:59 API] Params: {
        "page" => 1,
    "per_page" => 1000,
          "id" => "13",
     "host_id" => "13" 
}
[DEBUG 2017-08-25 12:54:59 API] Headers: {
    :params => {
            "page" => 1,
        "per_page" => 1000,
              "id" => "13",
         "host_id" => "13" 
    }
}
[DEBUG 2017-08-25 12:54:59 API] Using authenticator: HammerCLIForeman::Api::SessionAuthenticatorWrapper
[DEBUG 2017-08-25 12:54:59 API] Response: {
       "total" => 135,
    "subtotal" => 0,
        "page" => 1,
    "per_page" => 1000,
      "search" => " host = 13",
        "sort" => {
           "by" => nil,
        "order" => nil
    },
     "results" => []
}


Note that searching by "host = <HOSTNAME>" would work as intended (tested in the UI).

The fix should be quite simple: modify the command to use "host = X" or "host.id = X" search query according to what parameters were used.


Related issues 2 (0 open2 closed)

Related to Hammer CLI - Bug #14510: Hammer should use /config_reports rather than /reportsClosedOleh Fedorenko04/06/2016Actions
Related to Foreman - Feature #21602: Add scoped_search on host id for reportsClosedOndřej Pražák11/08/2017Actions
Actions

Also available in: Atom PDF