Project

General

Profile

Bug #15174

hammer ignores location-id if organization-id is specified

Added by Ivan Necas about 2 years ago. Updated about 1 month ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Organizations and Locations
Target version:
Difficulty:
Triaged:
Bugzilla link:
Team Backlog:
Fixed in Releases:
Found in Releases:

Description

Cloned from https://bugzilla.redhat.com/show_bug.cgi?id=1337947
Description of problem:
Hammer does not check all parameters if multiple filters are supplied, e.g. supplying both organization-id and location-id then the location-id is ignored. There is also no error that both are mutual exclusive.

See below a test that location-id is completly ignored, even the validation check of the id is not done:

[crash] root@li-lc-1578:~# hammer -d -c/opt/hoici/etc/sat6/hammer-hoici.yaml environment list --organization-id=3 --location-id=999999
[ INFO 2016-05-20 14:01:43 Init] Initialization of Hammer CLI (0.5.1.5) has started...
[DEBUG 2016-05-20 14:01:43 Init] Running at ruby 2.2.2-p95
[ INFO 2016-05-20 14:01:43 Init] Configuration from the file /etc/hammer/cli_config.yml has been loaded
[ INFO 2016-05-20 14:01:43 Init] Configuration from the file /etc/hammer/cli.modules.d/csv.yml has been loaded
[ INFO 2016-05-20 14:01:43 Init] Configuration from the file /etc/hammer/cli.modules.d/foreman.yml has been loaded
[ INFO 2016-05-20 14:01:43 Init] Configuration from the file /etc/hammer/cli.modules.d/foreman_bootdisk.yml has been loaded
[ INFO 2016-05-20 14:01:43 Init] Configuration from the file /etc/hammer/cli.modules.d/foreman_discovery.yml has been loaded
[ INFO 2016-05-20 14:01:43 Init] Configuration from the file /etc/hammer/cli.modules.d/foreman_docker.yml has been loaded
[ INFO 2016-05-20 14:01:43 Init] Configuration from the file /etc/hammer/cli.modules.d/foreman_remote_execution.yml has been loaded
[ INFO 2016-05-20 14:01:43 Init] Configuration from the file /etc/hammer/cli.modules.d/foreman_tasks.yml has been loaded
[ INFO 2016-05-20 14:01:43 Init] Configuration from the file /etc/hammer/cli.modules.d/gutterball.yml has been loaded
[ INFO 2016-05-20 14:01:43 Init] Configuration from the file /etc/hammer/cli.modules.d/import.yml has been loaded
[ INFO 2016-05-20 14:01:43 Init] Configuration from the file /etc/hammer/cli.modules.d/katello.yml has been loaded
[ INFO 2016-05-20 14:01:43 Init] Configuration from the file /opt/hoici/etc/sat6/hammer-hoici.yaml has been loaded
[DEBUG 2016-05-20 14:01:43 Connection] Registered: foreman
[DEBUG 2016-05-20 14:01:43 API] Global headers: {
        :content_type => "application/json",
              :accept => "application/json;version=2",
    "Accept-Language" => "en" 
}
[ INFO 2016-05-20 14:01:44 Modules] Extension module hammer_cli_foreman (0.5.1.4) loaded
[ INFO 2016-05-20 14:01:44 Modules] Extension module hammer_cli_foreman_bootdisk (0.1.3) loaded
[ INFO 2016-05-20 14:01:44 Modules] Extension module hammer_cli_foreman_discovery (0.0.2.1) loaded
[ WARN 2016-05-20 14:01:44 HammerCLIForemanRemoteExecution::JobInvocation] Resource 'job_invocations' does not exist in the API
[ WARN 2016-05-20 14:01:44 HammerCLIForemanRemoteExecution::JobTemplate] Resource 'job_templates' does not exist in the API
[ WARN 2016-05-20 14:01:44 HammerCLIForemanRemoteExecution::TemplateInput] Resource 'template_inputs' does not exist in the API
[ WARN 2016-05-20 14:01:44 HammerCLIForemanRemoteExecution::ForeignInputSet] Resource 'foreign_input_sets' does not exist in the API
[ WARN 2016-05-20 14:01:44 HammerCLIForemanRemoteExecution::RemoteExecutionFeature] Resource 'remote_execution_features' does not exist in the API
[ INFO 2016-05-20 14:01:44 HammerCLI::MainCommand] subcommand organization (HammerCLIForeman::Organization) was removed.
[ INFO 2016-05-20 14:01:44 HammerCLI::MainCommand] subcommand organization (HammerCLIKatello::Organization) was created.
[ INFO 2016-05-20 14:01:45 Modules] Extension module hammer_cli_gutterball (1.0.1) loaded
[ INFO 2016-05-20 14:01:45 Modules] Extension module hammer_cli_import (0.10.23) loaded
[ INFO 2016-05-20 14:01:45 Modules] Extension module hammer_cli_katello (0.0.22.6) loaded
[DEBUG 2016-05-20 14:01:45 Init] Using locale 'en'
[DEBUG 2016-05-20 14:01:45 Init] 'mo' files for locale domain 'hammer-cli' loaded from '/opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli-0.5.1.5/locale'
[DEBUG 2016-05-20 14:01:45 Init] 'mo' files for locale domain 'hammer-cli-foreman' loaded from '/opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli_foreman-0.5.1.4/locale'
[DEBUG 2016-05-20 14:01:45 Init] 'mo' files for locale domain 'hammer_cli_foreman_docker' loaded from '/opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli_foreman_docker-0.0.4/locale'
[DEBUG 2016-05-20 14:01:45 Init] 'mo' files for locale domain 'hammer-cli-katello' loaded from '/opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli_katello-0.0.22.6/locale'
[ INFO 2016-05-20 14:01:45 HammerCLI::MainCommand] Called with options: {"option_debug"=>true, "option_config"=>"/opt/hoici/etc/sat6/hammer-hoici.yaml"}
[ INFO 2016-05-20 14:01:45 HammerCLIForeman::Environment] Called with options: {}
[ INFO 2016-05-20 14:01:45 HammerCLIForeman::Environment::ListCommand] Called with options: {"option_location_id"=>999999, "option_organization_id"=>3}
[ INFO 2016-05-20 14:01:45 API] GET /api/locations/999999/environments
[DEBUG 2016-05-20 14:01:45 API] Params: {
    "organization_id" => 3,
               "page" => 1,
           "per_page" => 1000
}
[DEBUG 2016-05-20 14:01:45 API] Headers: {
    :params => {
        "organization_id" => 3,
                   "page" => 1,
               "per_page" => 1000
    }
}
[DEBUG 2016-05-20 14:01:46 API] Response: {
       "total" => 15,
    "subtotal" => 15,
        "page" => 1,
    "per_page" => 1000,
      "search" => nil,
        "sort" => {
           "by" => nil,
        "order" => nil
    },
     "results" => [
        [ 0] {
            "created_at" => "2016-05-19 20:16:27 UTC",
            "updated_at" => "2016-05-19 20:16:27 UTC",
                  "name" => "KT_Hilti_Library_hg_crash_57",
                    "id" => 29
        },
....
                    :status => "200 OK",
                      :vary => "Accept-Encoding",
          :content_encoding => "gzip",
            :content_length => "510",
              :content_type => "application/json; charset=utf-8" 
}
---|---------------------------------------------------
ID | NAME
---|---------------------------------------------------
29 | KT_Hilti_Library_hg_crash_57
...
1  | production
---|---------------------------------------------------

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
1. Run hammer with both organization-id and location-id=999999
2.
3.

Actual results:
No errors, results for the whole organization returned

Expected results:
- Results that match both organization-id and location-id are returned
- Location-id is checked on validation

Additional info:

Associated revisions

Revision 3e05c127 (diff)
Added by Ivan Necas about 2 years ago

Fixes #15174 - make sure to return 404 when taxonomy not found

Revision 4666cbff (diff)
Added by Ivan Necas about 2 years ago

Fixes #15174 - make sure to return 404 when taxonomy not found

(cherry picked from commit 3e05c127986cca0d3b53341a93e16d0c55d0840e)

History

#1 Updated by The Foreman Bot about 2 years ago

  • Status changed from New to Ready For Testing
  • Assignee set to Ivan Necas
  • Pull request https://github.com/theforeman/foreman/pull/3549 added

#2 Updated by Marek Hulán about 2 years ago

  • Description updated (diff)

#3 Updated by Ivan Necas about 2 years ago

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

#4 Updated by Dominic Cleal about 2 years ago

  • Legacy Backlogs Release (now unused) set to 159

Also available in: Atom PDF