hammer_cli_foreman 0.11.0 → 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/doc/configuration.md +2 -2
- data/doc/name_id_resolution.md +26 -1
- data/doc/release_notes.md +24 -0
- data/lib/hammer_cli_foreman.rb +30 -29
- data/lib/hammer_cli_foreman/api/connection.rb +1 -1
- data/lib/hammer_cli_foreman/api/interactive_basic_auth.rb +3 -3
- data/lib/hammer_cli_foreman/api/session_authenticator_wrapper.rb +9 -8
- data/lib/hammer_cli_foreman/api/void_auth.rb +7 -0
- data/lib/hammer_cli_foreman/architecture.rb +3 -5
- data/lib/hammer_cli_foreman/associating_commands.rb +32 -32
- data/lib/hammer_cli_foreman/auth.rb +2 -2
- data/lib/hammer_cli_foreman/auth_source_ldap.rb +4 -4
- data/lib/hammer_cli_foreman/commands.rb +23 -55
- data/lib/hammer_cli_foreman/common_parameter.rb +5 -5
- data/lib/hammer_cli_foreman/compute_resource.rb +17 -7
- data/lib/hammer_cli_foreman/config_group.rb +3 -3
- data/lib/hammer_cli_foreman/domain.rb +6 -8
- data/lib/hammer_cli_foreman/environment.rb +3 -3
- data/lib/hammer_cli_foreman/exception_handler.rb +27 -4
- data/lib/hammer_cli_foreman/external_usergroup.rb +3 -4
- data/lib/hammer_cli_foreman/filter.rb +20 -21
- data/lib/hammer_cli_foreman/host.rb +43 -18
- data/lib/hammer_cli_foreman/hostgroup.rb +24 -19
- data/lib/hammer_cli_foreman/hosts/common_update_options.rb +4 -6
- data/lib/hammer_cli_foreman/id_resolver.rb +86 -50
- data/lib/hammer_cli_foreman/image.rb +3 -4
- data/lib/hammer_cli_foreman/interface.rb +7 -9
- data/lib/hammer_cli_foreman/location.rb +6 -9
- data/lib/hammer_cli_foreman/media.rb +3 -6
- data/lib/hammer_cli_foreman/model.rb +3 -6
- data/lib/hammer_cli_foreman/operating_system.rb +11 -12
- data/lib/hammer_cli_foreman/option_sources.rb +4 -0
- data/lib/hammer_cli_foreman/option_sources/id_params.rb +51 -0
- data/lib/hammer_cli_foreman/option_sources/ids_params.rb +30 -0
- data/lib/hammer_cli_foreman/option_sources/self_param.rb +16 -0
- data/lib/hammer_cli_foreman/option_sources/user_params.rb +59 -0
- data/lib/hammer_cli_foreman/organization.rb +6 -9
- data/lib/hammer_cli_foreman/output/formatters.rb +1 -1
- data/lib/hammer_cli_foreman/parameter.rb +3 -5
- data/lib/hammer_cli_foreman/partition_table.rb +5 -6
- data/lib/hammer_cli_foreman/realm.rb +3 -3
- data/lib/hammer_cli_foreman/report.rb +1 -4
- data/lib/hammer_cli_foreman/role.rb +4 -7
- data/lib/hammer_cli_foreman/settings.rb +1 -1
- data/lib/hammer_cli_foreman/smart_class_parameter.rb +24 -14
- data/lib/hammer_cli_foreman/smart_proxy.rb +5 -7
- data/lib/hammer_cli_foreman/smart_variable.rb +24 -12
- data/lib/hammer_cli_foreman/ssh_keys.rb +56 -0
- data/lib/hammer_cli_foreman/subnet.rb +6 -9
- data/lib/hammer_cli_foreman/template.rb +16 -9
- data/lib/hammer_cli_foreman/user.rb +10 -52
- data/lib/hammer_cli_foreman/usergroup.rb +3 -3
- data/lib/hammer_cli_foreman/version.rb +1 -1
- data/test/data/1.15/foreman_api.json +1 -1
- data/test/data/1.16/foreman_api.json +1 -0
- data/test/functional/compute_resource_test.rb +117 -0
- data/test/functional/filter_test.rb +2 -2
- data/test/functional/host_test.rb +61 -10
- data/test/functional/location_test.rb +5 -5
- data/test/functional/organization_test.rb +7 -7
- data/test/functional/role_test.rb +3 -3
- data/test/functional/smart_class_parameter_test.rb +5 -5
- data/test/functional/smart_variable_test.rb +1 -1
- data/test/functional/ssh_keys_test.rb +105 -0
- data/test/functional/template_test.rb +30 -4
- data/test/functional/user_test.rb +5 -5
- data/test/reports/TEST-HammerCLIForeman-Architecture-CreateCommand-parameters.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-Architecture-CreateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Architecture-DeleteCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-Architecture-DeleteCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Architecture-InfoCommand-output.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-Architecture-InfoCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-Architecture-InfoCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Architecture-ListCommand-output.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-Architecture-ListCommand-parameters.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-Architecture-ListCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Architecture-UpdateCommand-parameters.xml +15 -0
- data/test/reports/TEST-HammerCLIForeman-Architecture-UpdateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Architecture.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-CommonParameter-DeleteCommand-parameters.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-CommonParameter-DeleteCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-CommonParameter-ListCommand-output.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-CommonParameter-ListCommand-parameters.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-CommonParameter-ListCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-CommonParameter-SetCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-CommonParameter-SetCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-CommonParameter.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-ComputeResource-CreateCommand-parameters.xml +15 -0
- data/test/reports/TEST-HammerCLIForeman-ComputeResource-CreateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-ComputeResource-DeleteCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-ComputeResource-DeleteCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-ComputeResource-InfoCommand-output.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-ComputeResource-InfoCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-ComputeResource-InfoCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-ComputeResource-ListCommand-output.xml +15 -0
- data/test/reports/TEST-HammerCLIForeman-ComputeResource-ListCommand-parameters.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-ComputeResource-ListCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-ComputeResource-UpdateCommand-parameters.xml +15 -0
- data/test/reports/TEST-HammerCLIForeman-ComputeResource-UpdateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-ComputeResource.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Domain-CreateCommand-parameters.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-Domain-CreateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Domain-DeleteCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-Domain-DeleteCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Domain-DeleteParameterCommand-parameters.xml +15 -0
- data/test/reports/TEST-HammerCLIForeman-Domain-DeleteParameterCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Domain-InfoCommand-output.xml +21 -0
- data/test/reports/TEST-HammerCLIForeman-Domain-InfoCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-Domain-InfoCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Domain-ListCommand-output.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-Domain-ListCommand-parameters.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-Domain-ListCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Domain-SetParameterCommand-parameters.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-Domain-SetParameterCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Domain-UpdateCommand-parameters.xml +15 -0
- data/test/reports/TEST-HammerCLIForeman-Domain-UpdateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Domain.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Environment-CreateCommand-parameters.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-Environment-CreateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Environment-DeleteCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-Environment-DeleteCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Environment-InfoCommand-output.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-Environment-InfoCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-Environment-InfoCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Environment-ListCommand-output.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-Environment-ListCommand-parameters.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-Environment-ListCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Environment-UpdateCommand-parameters.xml +15 -0
- data/test/reports/TEST-HammerCLIForeman-Environment-UpdateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Environment.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-ExceptionHandler.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-Host-CreateCommand-parameters.xml +46 -0
- data/test/reports/TEST-HammerCLIForeman-Host-CreateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Host-DeleteCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-Host-DeleteCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Host-DeleteParameterCommand-parameters.xml +15 -0
- data/test/reports/TEST-HammerCLIForeman-Host-DeleteParameterCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Host-InfoCommand-output.xml +85 -0
- data/test/reports/TEST-HammerCLIForeman-Host-InfoCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-Host-InfoCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Host-ListCommand-output.xml +21 -0
- data/test/reports/TEST-HammerCLIForeman-Host-ListCommand-parameters.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-Host-ListCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Host-PuppetRunCommand-output.xml +9 -0
- data/test/reports/TEST-HammerCLIForeman-Host-PuppetRunCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Host-SetParameterCommand-parameters.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-Host-SetParameterCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Host-StatusCommand-output.xml +9 -0
- data/test/reports/TEST-HammerCLIForeman-Host-StatusCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Host-UpdateCommand-parameters.xml +40 -0
- data/test/reports/TEST-HammerCLIForeman-Host-UpdateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Host.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-CreateCommand-parameters.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-CreateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-DeleteCommand-parameters.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-DeleteCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-DeleteParameterCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-DeleteParameterCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-InfoCommand-output.xml +29 -0
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-InfoCommand-parameters.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-InfoCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-ListCommand-output.xml +27 -0
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-ListCommand-parameters.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-ListCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-SetParameterCommand-parameters.xml +15 -0
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-SetParameterCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-UpdateCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-UpdateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Hostgroup.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Location-CreateCommand-parameters.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-Location-CreateCommand-resource-disabled.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-Location-CreateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Location-DeleteCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-Location-DeleteCommand-resource-disabled.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-Location-DeleteCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Location-InfoCommand-output.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-Location-InfoCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-Location-InfoCommand-resource-disabled.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-Location-InfoCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Location-ListCommand-output.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-Location-ListCommand-parameters.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-Location-ListCommand-resource-disabled.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-Location-ListCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Location-UpdateCommand-parameters.xml +15 -0
- data/test/reports/TEST-HammerCLIForeman-Location-UpdateCommand-resource-disabled.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-Location-UpdateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Location.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Medium-CreateCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-Medium-CreateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Medium-DeleteCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-Medium-DeleteCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Medium-InfoCommand-output.xml +23 -0
- data/test/reports/TEST-HammerCLIForeman-Medium-InfoCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-Medium-InfoCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Medium-ListCommand-output.xml +15 -0
- data/test/reports/TEST-HammerCLIForeman-Medium-ListCommand-parameters.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-Medium-ListCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Medium-UpdateCommand-parameters.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-Medium-UpdateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Medium.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-CreateCommand-parameters.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-CreateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-DeleteCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-DeleteCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-DeleteParameterCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-DeleteParameterCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-InfoCommand-output.xml +27 -0
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-InfoCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-InfoCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-ListCommand-output.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-ListCommand-parameters.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-ListCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-SetParameterCommand-parameters.xml +15 -0
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-SetParameterCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-UpdateCommand-parameters.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-UpdateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Organization-CreateCommand-parameters.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-Organization-CreateCommand-resource-disabled.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-Organization-CreateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Organization-DeleteCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-Organization-DeleteCommand-resource-disabled.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-Organization-DeleteCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Organization-InfoCommand-output.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-Organization-InfoCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-Organization-InfoCommand-resource-disabled.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-Organization-InfoCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Organization-ListCommand-output.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-Organization-ListCommand-parameters.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-Organization-ListCommand-resource-disabled.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-Organization-ListCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Organization-UpdateCommand-parameters.xml +15 -0
- data/test/reports/TEST-HammerCLIForeman-Organization-UpdateCommand-resource-disabled.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-Organization-UpdateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Organization.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-CreateCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-CreateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-DeleteCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-DeleteCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-DumpCommand-parameters.xml +15 -0
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-DumpCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-InfoCommand-output.xml +19 -0
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-InfoCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-InfoCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-ListCommand-output.xml +15 -0
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-ListCommand-parameters.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-ListCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-UpdateCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-UpdateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-PartitionTable.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-SmartProxy-CreateCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-SmartProxy-CreateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-SmartProxy-DeleteCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-SmartProxy-DeleteCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-SmartProxy-InfoCommand-output.xml +21 -0
- data/test/reports/TEST-HammerCLIForeman-SmartProxy-InfoCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-SmartProxy-InfoCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-SmartProxy-ListCommand-output.xml +15 -0
- data/test/reports/TEST-HammerCLIForeman-SmartProxy-ListCommand-parameters.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-SmartProxy-ListCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-SmartProxy-UpdateCommand-parameters.xml +15 -0
- data/test/reports/TEST-HammerCLIForeman-SmartProxy-UpdateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-SmartProxy.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Subnet-CreateCommand-parameters.xml +15 -0
- data/test/reports/TEST-HammerCLIForeman-Subnet-CreateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Subnet-DeleteCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-Subnet-DeleteCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Subnet-InfoCommand-output.xml +43 -0
- data/test/reports/TEST-HammerCLIForeman-Subnet-InfoCommand-parameters.xml +13 -0
- data/test/reports/TEST-HammerCLIForeman-Subnet-InfoCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Subnet-ListCommand-output.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-Subnet-ListCommand-parameters.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-Subnet-ListCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Subnet-UpdateCommand-parameters.xml +15 -0
- data/test/reports/TEST-HammerCLIForeman-Subnet-UpdateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Subnet.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Template-CreateCommand-parameters.xml +15 -0
- data/test/reports/TEST-HammerCLIForeman-Template-CreateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Template-DeleteCommand-parameters.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-Template-DeleteCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Template-DumpCommand-parameters.xml +12 -0
- data/test/reports/TEST-HammerCLIForeman-Template-DumpCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Template-InfoCommand-output.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-Template-InfoCommand-parameters.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-Template-InfoCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Template-ListCommand-output.xml +15 -0
- data/test/reports/TEST-HammerCLIForeman-Template-ListCommand-parameters.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-Template-ListCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Template-ListKindsCommand-parameters.xml +9 -0
- data/test/reports/TEST-HammerCLIForeman-Template-ListKindsCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Template-UpdateCommand-parameters.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-Template-UpdateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-Template.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-User-CreateCommand-parameters.xml +19 -0
- data/test/reports/TEST-HammerCLIForeman-User-CreateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-User-DeleteCommand-parameters.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-User-DeleteCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-User-InfoCommand-output.xml +23 -0
- data/test/reports/TEST-HammerCLIForeman-User-InfoCommand-parameters.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-User-InfoCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-User-ListCommand-output.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-User-ListCommand-parameters.xml +17 -0
- data/test/reports/TEST-HammerCLIForeman-User-ListCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-User-UpdateCommand-parameters.xml +11 -0
- data/test/reports/TEST-HammerCLIForeman-User-UpdateCommand.xml +7 -0
- data/test/reports/TEST-HammerCLIForeman-User.xml +7 -0
- data/test/reports/TEST-MiniTest-Spec.xml +7 -0
- data/test/unit/api/interactive_basic_auth_test.rb +20 -1
- data/test/unit/api/session_authenticator_wrapper_test.rb +23 -8
- data/test/unit/api/void_auth_test.rb +11 -0
- data/test/unit/commands_test.rb +1 -1
- data/test/unit/exception_handler_test.rb +24 -3
- data/test/unit/helpers/command.rb +6 -2
- data/test/unit/host_test.rb +2 -2
- data/test/unit/hostgroup_test.rb +5 -3
- data/test/unit/id_resolver_test.rb +53 -5
- data/test/unit/media_test.rb +2 -2
- data/test/unit/option_sources/id_params_test.rb +30 -0
- data/test/unit/option_sources/ids_params_test.rb +30 -0
- data/test/unit/output/formatters_test.rb +4 -0
- data/test/unit/smart_class_parameter_test.rb +4 -4
- data/test/unit/smart_variable_test.rb +2 -2
- data/test/unit/user_test.rb +1 -2
- metadata +569 -69
@@ -54,7 +54,7 @@ module HammerCLIForeman
|
|
54
54
|
|
55
55
|
|
56
56
|
class CreateCommand < HammerCLIForeman::CreateCommand
|
57
|
-
success_message _("External user group created")
|
57
|
+
success_message _("External user group created.")
|
58
58
|
failure_message _("Could not create external user group")
|
59
59
|
|
60
60
|
build_options
|
@@ -62,7 +62,7 @@ module HammerCLIForeman
|
|
62
62
|
|
63
63
|
|
64
64
|
class UpdateCommand < HammerCLIForeman::UpdateCommand
|
65
|
-
success_message _("External user group updated")
|
65
|
+
success_message _("External user group updated.")
|
66
66
|
failure_message _("Could not update external user group")
|
67
67
|
|
68
68
|
build_options
|
@@ -70,7 +70,7 @@ module HammerCLIForeman
|
|
70
70
|
|
71
71
|
|
72
72
|
class DeleteCommand < HammerCLIForeman::DeleteCommand
|
73
|
-
success_message _("External user group deleted")
|
73
|
+
success_message _("External user group deleted.")
|
74
74
|
failure_message _("Could not delete the external user group")
|
75
75
|
|
76
76
|
build_options
|
@@ -80,4 +80,3 @@ module HammerCLIForeman
|
|
80
80
|
end
|
81
81
|
|
82
82
|
end
|
83
|
-
|
@@ -43,23 +43,28 @@ module HammerCLIForeman
|
|
43
43
|
|
44
44
|
|
45
45
|
module TaxonomyCheck
|
46
|
-
def taxonomy_options?
|
47
|
-
option_location_names || option_location_ids || option_organization_names || option_organization_ids
|
48
|
-
end
|
49
|
-
|
50
|
-
def signal_override_usage_error
|
51
|
-
signal_usage_error _('Organizations and locations can be set only for overriding filters')
|
52
|
-
end
|
53
46
|
|
54
47
|
def self.included(base)
|
48
|
+
def taxonomy_options?
|
49
|
+
opt_names = ['location_ids', 'organization_ids']
|
50
|
+
opt_names += resolver.searchables(:locations).map { |s| 'location_' + s.plural_name }
|
51
|
+
opt_names += resolver.searchables(:organizations).map { |s| 'organization_' + s.plural_name }
|
52
|
+
opt_names.any? { |opt| send(HammerCLI.option_accessor_name(opt)) }
|
53
|
+
end
|
54
|
+
|
55
|
+
def signal_override_usage_error
|
56
|
+
signal_usage_error _('Organizations and locations can be set only for overriding filters.')
|
57
|
+
end
|
58
|
+
|
55
59
|
base.extend_help do |h|
|
56
|
-
h.section('Overriding organizations and locations') do
|
60
|
+
h.section(_('Overriding organizations and locations')) do
|
57
61
|
override_condition = "--override=true"
|
58
62
|
org_opts = '--organization[s|-ids]'
|
59
63
|
loc_opts = '--location[s|-ids]'
|
60
64
|
|
61
|
-
h.text(_("Filters inherit organizations and locations from its role by default. This behavior can be changed by setting %{condition}
|
65
|
+
h.text(_("Filters inherit organizations and locations from its role by default. This behavior can be changed by setting %{condition}.%{wsp}" +
|
62
66
|
"Therefore options %{org_opts} and %{loc_opts} are applicable only when the override flag is set.") % {
|
67
|
+
:wsp => "\n",
|
63
68
|
:org_opts => org_opts,
|
64
69
|
:loc_opts => loc_opts,
|
65
70
|
:condition => override_condition
|
@@ -73,12 +78,11 @@ module HammerCLIForeman
|
|
73
78
|
class CreateCommand < HammerCLIForeman::CreateCommand
|
74
79
|
include TaxonomyCheck
|
75
80
|
|
76
|
-
success_message _("Permission filter for [%<resource_type>s] created")
|
81
|
+
success_message _("Permission filter for [%<resource_type>s] created.")
|
77
82
|
failure_message _("Could not create the permission filter")
|
78
83
|
|
79
|
-
def
|
84
|
+
def validate_options
|
80
85
|
signal_override_usage_error if !option_override && taxonomy_options?
|
81
|
-
super
|
82
86
|
end
|
83
87
|
|
84
88
|
build_options
|
@@ -88,7 +92,7 @@ module HammerCLIForeman
|
|
88
92
|
class UpdateCommand < HammerCLIForeman::UpdateCommand
|
89
93
|
include TaxonomyCheck
|
90
94
|
|
91
|
-
success_message _("Permission filter for [%<resource_type>s] updated")
|
95
|
+
success_message _("Permission filter for [%<resource_type>s] updated.")
|
92
96
|
failure_message _("Could not update the permission filter")
|
93
97
|
|
94
98
|
def request_params
|
@@ -101,9 +105,8 @@ module HammerCLIForeman
|
|
101
105
|
params
|
102
106
|
end
|
103
107
|
|
104
|
-
def
|
108
|
+
def validate_options
|
105
109
|
signal_override_usage_error if !override? && taxonomy_options?
|
106
|
-
super
|
107
110
|
end
|
108
111
|
|
109
112
|
def override?
|
@@ -115,7 +118,7 @@ module HammerCLIForeman
|
|
115
118
|
end
|
116
119
|
|
117
120
|
def filter
|
118
|
-
@filter ||= HammerCLIForeman.foreman_resource!(:filters).action(:show).call({ :id =>
|
121
|
+
@filter ||= HammerCLIForeman.foreman_resource!(:filters).action(:show).call({ :id => get_identifier }, request_headers, request_options)
|
119
122
|
end
|
120
123
|
|
121
124
|
build_options
|
@@ -123,7 +126,7 @@ module HammerCLIForeman
|
|
123
126
|
|
124
127
|
|
125
128
|
class DeleteCommand < HammerCLIForeman::DeleteCommand
|
126
|
-
success_message _("Permission filter deleted")
|
129
|
+
success_message _("Permission filter deleted.")
|
127
130
|
failure_message _("Could not delete the permission filter")
|
128
131
|
|
129
132
|
build_options
|
@@ -161,8 +164,4 @@ module HammerCLIForeman
|
|
161
164
|
|
162
165
|
autoload_subcommands
|
163
166
|
end
|
164
|
-
|
165
167
|
end
|
166
|
-
|
167
|
-
|
168
|
-
|
@@ -35,7 +35,7 @@ module HammerCLIForeman
|
|
35
35
|
field :mac, _("MAC")
|
36
36
|
end
|
37
37
|
|
38
|
-
build_options
|
38
|
+
build_options :without => [:include, :thin]
|
39
39
|
end
|
40
40
|
|
41
41
|
|
@@ -61,9 +61,9 @@ module HammerCLIForeman
|
|
61
61
|
field nil, _("Host Group"), Fields::SingleReference, :key => :hostgroup, :display_field => 'title'
|
62
62
|
field nil, _("Compute Resource"), Fields::SingleReference, :key => :compute_resource
|
63
63
|
field nil, _("Compute Profile"), Fields::SingleReference, :key => :compute_profile, :hide_blank => true
|
64
|
-
field nil, _("Environment"), Fields::SingleReference, :key => :environment
|
65
|
-
field
|
66
|
-
field
|
64
|
+
field nil, _("Puppet Environment"), Fields::SingleReference, :key => :environment
|
65
|
+
field nil, _("Puppet CA Proxy"), Fields::SingleReference, :key => :puppet_ca_proxy
|
66
|
+
field nil, _("Puppet Master Proxy"), Fields::SingleReference, :key => :puppet_proxy
|
67
67
|
field :certname, _("Cert name")
|
68
68
|
field :managed, _("Managed"), Fields::Boolean
|
69
69
|
|
@@ -71,9 +71,11 @@ module HammerCLIForeman
|
|
71
71
|
field :last_report, _("Last report"), Fields::Date
|
72
72
|
|
73
73
|
label _("Network") do
|
74
|
-
field :ip, _("
|
74
|
+
field :ip, _("IPv4 address"), Fields::Field, :hide_blank => true
|
75
|
+
field :ip6, _("IPv6 address"), Fields::Field, :hide_blank => true
|
75
76
|
field :mac, _("MAC")
|
76
|
-
field nil, _("Subnet"), Fields::SingleReference, :key => :subnet
|
77
|
+
field nil, _("Subnet ipv4"), Fields::SingleReference, :key => :subnet
|
78
|
+
field nil, _("Subnet ipv6"), Fields::SingleReference, :key => :subnet6
|
77
79
|
field nil, _("Domain"), Fields::SingleReference, :key => :domain
|
78
80
|
field nil, _("Service provider"), Fields::Label, :hide_blank => true do
|
79
81
|
field :sp_name, _("SP Name"), Fields::Field, :hide_blank => true
|
@@ -88,7 +90,8 @@ module HammerCLIForeman
|
|
88
90
|
field :identifier, _('Identifier')
|
89
91
|
field :_type, _('Type')
|
90
92
|
field :mac, _('MAC address')
|
91
|
-
field :ip, _('
|
93
|
+
field :ip, _('IPv4 address'), Fields::Field, :hide_blank => true
|
94
|
+
field :ip6, _('IPv6 address'), Fields::Field, :hide_blank => true
|
92
95
|
field :fqdn, _('FQDN')
|
93
96
|
end
|
94
97
|
|
@@ -100,6 +103,7 @@ module HammerCLIForeman
|
|
100
103
|
field :build, _("Build"), Fields::Boolean
|
101
104
|
field nil, _("Medium"), Fields::SingleReference, :key => :medium
|
102
105
|
field nil, _("Partition Table"), Fields::SingleReference, :key => :ptable
|
106
|
+
field :pxe_loader, _("PXE Loader"), Fields::Field, :hide_blank => true
|
103
107
|
field :disk, _("Custom partition table"), Fields::LongText
|
104
108
|
# image
|
105
109
|
# for image based
|
@@ -113,7 +117,7 @@ module HammerCLIForeman
|
|
113
117
|
|
114
118
|
# additional info
|
115
119
|
label _("Additional info") do
|
116
|
-
field
|
120
|
+
field nil, _("Owner"), Fields::SingleReference, :key => :owner
|
117
121
|
field :owner_type, _("Owner Type")
|
118
122
|
field :enabled, _("Enabled"), Fields::Boolean
|
119
123
|
field nil, _("Model"), Fields::SingleReference, :key => :model, :hide_blank => true
|
@@ -209,18 +213,39 @@ module HammerCLIForeman
|
|
209
213
|
end
|
210
214
|
|
211
215
|
|
212
|
-
class ReportsCommand < HammerCLIForeman::
|
216
|
+
class ReportsCommand < HammerCLIForeman::ListCommand
|
213
217
|
command_name "reports"
|
214
218
|
resource :reports, :index
|
215
|
-
|
219
|
+
|
220
|
+
option('--id', "ID", _('Host id'), :referenced_resource => 'host')
|
221
|
+
option('--name', "NAME", _('Host name'))
|
216
222
|
|
217
223
|
output HammerCLIForeman::Report::ListCommand.output_definition
|
218
224
|
|
225
|
+
def validate_options
|
226
|
+
validator.any(:option_name, :option_id).required
|
227
|
+
end
|
228
|
+
|
229
|
+
def request_params
|
230
|
+
params = super
|
231
|
+
search = []
|
232
|
+
search << params['search'] if params['search']
|
233
|
+
|
234
|
+
hostname = get_option_value('name')
|
235
|
+
search << %Q(host="#{hostname}") if hostname
|
236
|
+
|
237
|
+
host_id = get_option_value('id')
|
238
|
+
search << "host_id=#{host_id}" if host_id
|
239
|
+
|
240
|
+
params['search'] = search.join(' and ') unless search.empty?
|
241
|
+
params
|
242
|
+
end
|
243
|
+
|
219
244
|
build_options
|
220
245
|
end
|
221
246
|
|
222
247
|
class CreateCommand < HammerCLIForeman::CreateCommand
|
223
|
-
success_message _("Host created")
|
248
|
+
success_message _("Host created.")
|
224
249
|
failure_message _("Could not create the host")
|
225
250
|
|
226
251
|
include HammerCLIForeman::Hosts::CommonUpdateOptions
|
@@ -241,7 +266,7 @@ module HammerCLIForeman
|
|
241
266
|
end
|
242
267
|
|
243
268
|
class UpdateCommand < HammerCLIForeman::UpdateCommand
|
244
|
-
success_message _("Host updated")
|
269
|
+
success_message _("Host updated.")
|
245
270
|
failure_message _("Could not update the host")
|
246
271
|
|
247
272
|
include HammerCLIForeman::Hosts::CommonUpdateOptions
|
@@ -250,7 +275,7 @@ module HammerCLIForeman
|
|
250
275
|
|
251
276
|
|
252
277
|
class DeleteCommand < HammerCLIForeman::DeleteCommand
|
253
|
-
success_message _("Host deleted")
|
278
|
+
success_message _("Host deleted.")
|
254
279
|
failure_message _("Could not delete the host")
|
255
280
|
|
256
281
|
build_options
|
@@ -258,7 +283,7 @@ module HammerCLIForeman
|
|
258
283
|
|
259
284
|
|
260
285
|
class SetParameterCommand < HammerCLIForeman::Parameter::SetCommand
|
261
|
-
desc _("Create or update parameter for a host
|
286
|
+
desc _("Create or update parameter for a host")
|
262
287
|
|
263
288
|
success_message_for :update, _("Host parameter updated")
|
264
289
|
success_message_for :create, _("New host parameter created")
|
@@ -274,9 +299,9 @@ module HammerCLIForeman
|
|
274
299
|
|
275
300
|
|
276
301
|
class DeleteParameterCommand < HammerCLIForeman::Parameter::DeleteCommand
|
277
|
-
desc _("Delete parameter for a host
|
302
|
+
desc _("Delete parameter for a host")
|
278
303
|
|
279
|
-
success_message _("Host parameter deleted")
|
304
|
+
success_message _("Host parameter deleted.")
|
280
305
|
|
281
306
|
def validate_options
|
282
307
|
super
|
@@ -326,9 +351,9 @@ module HammerCLIForeman
|
|
326
351
|
|
327
352
|
def success_message
|
328
353
|
if option_force?
|
329
|
-
_("Power off forced
|
354
|
+
_("Power off forced")
|
330
355
|
else
|
331
|
-
_("Powering the host off
|
356
|
+
_("Powering the host off")
|
332
357
|
end
|
333
358
|
end
|
334
359
|
|
@@ -61,11 +61,11 @@ module HammerCLIForeman
|
|
61
61
|
field :name, _("Name")
|
62
62
|
field :title, _("Title")
|
63
63
|
field nil, _("Operating System"), Fields::SingleReference, :key => :operatingsystem
|
64
|
-
field nil, _("Environment"), Fields::SingleReference, :key => :environment
|
64
|
+
field nil, _("Puppet Environment"), Fields::SingleReference, :key => :environment
|
65
65
|
field nil, _("Model"), Fields::SingleReference, :key => :model
|
66
66
|
end
|
67
67
|
|
68
|
-
build_options
|
68
|
+
build_options :without => :include
|
69
69
|
end
|
70
70
|
|
71
71
|
|
@@ -73,19 +73,26 @@ module HammerCLIForeman
|
|
73
73
|
|
74
74
|
output ListCommand.output_definition do
|
75
75
|
field :description, _("Description"), Fields::LongText, :hide_blank => true
|
76
|
-
field nil, _("
|
77
|
-
|
78
|
-
field nil, _("
|
79
|
-
field nil, _("Architecture"), Fields::SingleReference, :key => :architecture
|
80
|
-
field nil, _("Partition Table"), Fields::SingleReference, :key => :ptable
|
81
|
-
field nil, _("Medium"), Fields::SingleReference, :key => :medium
|
82
|
-
field :puppet_ca_proxy_id, _("Puppet CA Proxy Id")
|
83
|
-
field :puppet_proxy_id, _("Puppet Master Proxy Id")
|
76
|
+
field nil, _("Parent"), Fields::SingleReference, :key => :parent, :hide_blank => true
|
77
|
+
field nil, _("Puppet CA Proxy"), Fields::SingleReference, :key => :puppet_ca_proxy
|
78
|
+
field nil, _("Puppet Master Proxy"), Fields::SingleReference, :key => :puppet_proxy
|
84
79
|
field nil, _("ComputeProfile"), Fields::SingleReference, :key => :compute_profile
|
80
|
+
label _('Network') do
|
81
|
+
field nil, _("Subnet ipv4"), Fields::SingleReference, :key => :subnet
|
82
|
+
field nil, _("Subnet ipv6"), Fields::SingleReference, :key => :subnet6
|
83
|
+
field nil, _("Realm"), Fields::SingleReference, :key => :realm
|
84
|
+
field nil, _("Domain"), Fields::SingleReference, :key => :domain
|
85
|
+
end
|
86
|
+
label _('Operating system') do
|
87
|
+
field nil, _("Architecture"), Fields::SingleReference, :key => :architecture
|
88
|
+
field nil, _("Operating System"), Fields::SingleReference, :key => :operatingsystem
|
89
|
+
field nil, _("Medium"), Fields::SingleReference, :key => :medium
|
90
|
+
field nil, _("Partition Table"), Fields::SingleReference, :key => :ptable
|
91
|
+
field :pxe_loader, _("PXE Loader"), Fields::Field, :hide_blank => true
|
92
|
+
end
|
85
93
|
HammerCLIForeman::References.puppetclasses(self)
|
86
94
|
HammerCLIForeman::References.parameters(self)
|
87
95
|
HammerCLIForeman::References.taxonomies(self)
|
88
|
-
field :ancestry, _("Parent Id")
|
89
96
|
end
|
90
97
|
|
91
98
|
build_options
|
@@ -95,7 +102,7 @@ module HammerCLIForeman
|
|
95
102
|
class CreateCommand < HammerCLIForeman::CreateCommand
|
96
103
|
include HostgroupUpdateCreateCommons
|
97
104
|
|
98
|
-
success_message _("Hostgroup created")
|
105
|
+
success_message _("Hostgroup created.")
|
99
106
|
failure_message _("Could not create the hostgroup")
|
100
107
|
|
101
108
|
build_options
|
@@ -105,7 +112,7 @@ module HammerCLIForeman
|
|
105
112
|
class UpdateCommand < HammerCLIForeman::UpdateCommand
|
106
113
|
include HostgroupUpdateCreateCommons
|
107
114
|
|
108
|
-
success_message _("Hostgroup updated")
|
115
|
+
success_message _("Hostgroup updated.")
|
109
116
|
failure_message _("Could not update the hostgroup")
|
110
117
|
|
111
118
|
build_options
|
@@ -113,7 +120,7 @@ module HammerCLIForeman
|
|
113
120
|
|
114
121
|
|
115
122
|
class DeleteCommand < HammerCLIForeman::DeleteCommand
|
116
|
-
success_message _("Hostgroup deleted")
|
123
|
+
success_message _("Hostgroup deleted.")
|
117
124
|
failure_message _("Could not delete the hostgroup")
|
118
125
|
|
119
126
|
build_options
|
@@ -138,7 +145,7 @@ module HammerCLIForeman
|
|
138
145
|
|
139
146
|
|
140
147
|
class SetParameterCommand < HammerCLIForeman::Parameter::SetCommand
|
141
|
-
desc _("Create or update parameter for a hostgroup
|
148
|
+
desc _("Create or update parameter for a hostgroup")
|
142
149
|
|
143
150
|
success_message_for :update, _("Hostgroup parameter updated")
|
144
151
|
success_message_for :create, _("New hostgroup parameter created")
|
@@ -149,9 +156,9 @@ module HammerCLIForeman
|
|
149
156
|
|
150
157
|
|
151
158
|
class DeleteParameterCommand < HammerCLIForeman::Parameter::DeleteCommand
|
152
|
-
desc _("Delete parameter for a hostgroup
|
159
|
+
desc _("Delete parameter for a hostgroup")
|
153
160
|
|
154
|
-
success_message _("Hostgroup parameter deleted")
|
161
|
+
success_message _("Hostgroup parameter deleted.")
|
155
162
|
|
156
163
|
build_options
|
157
164
|
end
|
@@ -178,5 +185,3 @@ module HammerCLIForeman
|
|
178
185
|
end
|
179
186
|
|
180
187
|
end
|
181
|
-
|
182
|
-
|
@@ -35,20 +35,18 @@ module HammerCLIForeman
|
|
35
35
|
bme_options[:format] = HammerCLI::Options::Normalizers::Bool.new
|
36
36
|
base.option "--overwrite", "OVERWRITE", " ", bme_options
|
37
37
|
|
38
|
-
base.option "--parameters", "PARAMS", _("Host parameters
|
38
|
+
base.option "--parameters", "PARAMS", _("Host parameters"),
|
39
39
|
:format => HammerCLI::Options::Normalizers::KeyValueList.new
|
40
|
-
base.option "--compute-attributes", "COMPUTE_ATTRS", _("Compute resource attributes
|
40
|
+
base.option "--compute-attributes", "COMPUTE_ATTRS", _("Compute resource attributes"),
|
41
41
|
:format => HammerCLI::Options::Normalizers::KeyValueList.new
|
42
42
|
base.option "--volume", "VOLUME", _("Volume parameters"), :multivalued => true,
|
43
43
|
:format => HammerCLI::Options::Normalizers::KeyValueList.new
|
44
|
-
base.option "--interface", "INTERFACE", _("Interface parameters
|
44
|
+
base.option "--interface", "INTERFACE", _("Interface parameters"), :multivalued => true,
|
45
45
|
:format => HammerCLI::Options::Normalizers::KeyValueList.new
|
46
|
-
base.option "--provision-method", "METHOD", " ",
|
47
|
-
:format => HammerCLI::Options::Normalizers::Enum.new(['build', 'image'])
|
48
46
|
|
49
47
|
base.build_options :without => [
|
50
48
|
# - temporarily disabled params that will be removed from the api ------------------
|
51
|
-
:
|
49
|
+
:capabilities, :flavour_ref, :image_ref, :start,
|
52
50
|
:network, :cpus, :memory, :provider, :type, :tenant_id, :image_id,
|
53
51
|
# ----------------------------------------------------------------------------------
|
54
52
|
:puppet_class_ids, :host_parameters_attributes, :interfaces_attributes, :root_pass]
|
@@ -52,7 +52,7 @@ module HammerCLIForeman
|
|
52
52
|
:ptable => [ s_name(_("Partition table name")) ],
|
53
53
|
:proxy => [ s_name(_("Proxy name")) ],
|
54
54
|
:puppetclass => [ s_name(_("Puppet class name")) ],
|
55
|
-
:report => [
|
55
|
+
:report => [],
|
56
56
|
:role => [ s_name(_("User role name")) ],
|
57
57
|
:setting => [ s_name(_("Setting name"), :editable => false) ],
|
58
58
|
:subnet => [ s_name(_("Subnet name")) ],
|
@@ -82,15 +82,22 @@ module HammerCLIForeman
|
|
82
82
|
define_id_finders
|
83
83
|
end
|
84
84
|
|
85
|
-
|
85
|
+
# @param mode [Symbol] mode in which ids are searched :single, :multi, nil for old beahvior
|
86
|
+
def scoped_options(scope, options, mode = nil)
|
86
87
|
scoped_options = options.dup
|
87
88
|
|
88
89
|
resource = HammerCLIForeman.param_to_resource(scope)
|
89
90
|
return scoped_options unless resource
|
90
91
|
|
91
|
-
option_names =
|
92
|
-
|
93
|
-
|
92
|
+
option_names = []
|
93
|
+
if (mode.nil? || mode == :single)
|
94
|
+
option_names << "id"
|
95
|
+
option_names += searchables(resource).map { |s| s.name }
|
96
|
+
end
|
97
|
+
if (mode.nil? || mode == :multi)
|
98
|
+
option_names << "ids"
|
99
|
+
option_names += searchables(resource).map { |s| s.plural_name }
|
100
|
+
end
|
94
101
|
|
95
102
|
option_names.each do |name|
|
96
103
|
option = HammerCLI.option_accessor_name(name)
|
@@ -106,22 +113,15 @@ module HammerCLIForeman
|
|
106
113
|
scoped_options
|
107
114
|
end
|
108
115
|
|
109
|
-
|
110
|
-
def puppetclass_id(options)
|
111
|
-
if options[HammerCLI.option_accessor_name("id")]
|
112
|
-
return options[HammerCLI.option_accessor_name("id")]
|
113
|
-
else
|
114
|
-
resource = @api.resource(:puppetclasses)
|
115
|
-
results = resolved_call(:puppetclasses, :index, options)[0]
|
116
|
-
results = results.values.flatten
|
117
|
-
return pick_result(results, resource)['id']
|
118
|
-
end
|
119
|
-
end
|
120
|
-
|
121
116
|
def puppetclass_ids(options)
|
122
117
|
options[HammerCLI.option_accessor_name("ids")] || find_puppetclasses(options).collect { |c| c['id'] }
|
123
118
|
end
|
124
119
|
|
120
|
+
def searchables(resource)
|
121
|
+
resource = @api.resource(resource) if resource.is_a? Symbol
|
122
|
+
@searchables.for(resource)
|
123
|
+
end
|
124
|
+
|
125
125
|
protected
|
126
126
|
|
127
127
|
def define_id_finders
|
@@ -140,23 +140,39 @@ module HammerCLIForeman
|
|
140
140
|
end
|
141
141
|
|
142
142
|
def get_id(resource_name, options)
|
143
|
-
options[HammerCLI.option_accessor_name("id")] ||
|
143
|
+
options[HammerCLI.option_accessor_name("id")] ||
|
144
|
+
nil_from_searchables(resource_name, options) ||
|
145
|
+
find_resource(resource_name, options)['id']
|
144
146
|
end
|
145
147
|
|
146
148
|
def get_ids(resource_name, options)
|
147
149
|
if (ids = options[HammerCLI.option_accessor_name("ids")])
|
148
150
|
ids
|
149
|
-
elsif
|
150
|
-
|
151
|
-
|
151
|
+
elsif (ids = nil_from_searchables(resource_name, options, :plural => true))
|
152
|
+
ids
|
153
|
+
elsif options_not_set?(@api.resource(resource_name), options)
|
154
|
+
resource = @api.resource(resource_name)
|
155
|
+
raise MissingSearchOptions.new(_("Missing options to search %s") % resource.name, resource)
|
156
|
+
elsif options_empty?(@api.resource(resource_name), options)
|
152
157
|
[]
|
158
|
+
else
|
159
|
+
find_resources(resource_name, options).map{|r| r['id']}
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
def nil_from_searchables(resource_name, options, plural = false)
|
164
|
+
resource = @api.resource(resource_name)
|
165
|
+
searchables(resource).each do |s|
|
166
|
+
option_name = plural ? s.plural_name.to_s : s.name.to_s
|
167
|
+
return HammerCLI::NilValue if options[HammerCLI.option_accessor_name(option_name)] == HammerCLI::NilValue
|
153
168
|
end
|
169
|
+
nil
|
154
170
|
end
|
155
171
|
|
156
172
|
def find_resources(resource_name, options)
|
157
173
|
resource = @api.resource(resource_name)
|
158
|
-
results = resolved_call(resource_name, :index, options)
|
159
|
-
raise ResolverError.new(_("one of %s not found") % resource.name, resource) if results.count < expected_record_count(options, resource)
|
174
|
+
results = resolved_call(resource_name, :index, options, :multi)
|
175
|
+
raise ResolverError.new(_("one of %s not found.") % resource.name, resource) if results.count < expected_record_count(options, resource)
|
160
176
|
results
|
161
177
|
end
|
162
178
|
|
@@ -167,8 +183,8 @@ module HammerCLIForeman
|
|
167
183
|
if (ids = options[HammerCLI.option_accessor_name("ids")])
|
168
184
|
ids
|
169
185
|
elsif !options_empty?(resource, options)
|
170
|
-
results = resolved_call(resource_name, :index, options).first.values.flatten
|
171
|
-
raise ResolverError.new(_("one of %s not found") % resource.name, resource) if results.count < expected_record_count(options, resource)
|
186
|
+
results = resolved_call(resource_name, :index, options, :multi).first.values.flatten
|
187
|
+
raise ResolverError.new(_("one of %s not found.") % resource.name, resource) if results.count < expected_record_count(options, resource)
|
172
188
|
results
|
173
189
|
else
|
174
190
|
[]
|
@@ -182,17 +198,20 @@ module HammerCLIForeman
|
|
182
198
|
end
|
183
199
|
|
184
200
|
def find_resource_raw(resource_name, options)
|
185
|
-
resolved_call(resource_name, :index, options)
|
201
|
+
resolved_call(resource_name, :index, options, :single)
|
186
202
|
end
|
187
203
|
|
188
204
|
|
189
|
-
|
205
|
+
# @param mode [Symbol] mode in which ids are searched :single, :multi, nil for old beahvior
|
206
|
+
def resolved_call(resource_name, action_name, options, mode = nil)
|
190
207
|
resource = @api.resource(resource_name)
|
191
208
|
action = resource.action(action_name)
|
192
209
|
|
193
|
-
search_options = search_options(options, resource)
|
210
|
+
search_options = search_options(options, resource, mode)
|
194
211
|
IdParamsFilter.new(:only_required => true).for_action(action).each do |param|
|
195
|
-
|
212
|
+
scoped_options_params = [param.name.gsub(/_id$/, ""), options]
|
213
|
+
scoped_options_params << mode if method(:scoped_options).arity == -3
|
214
|
+
search_options[param.name] ||= send(param.name, scoped_options(*scoped_options_params))
|
196
215
|
end
|
197
216
|
search_options = route_options(options, action).merge(search_options)
|
198
217
|
|
@@ -218,26 +237,35 @@ module HammerCLIForeman
|
|
218
237
|
end
|
219
238
|
|
220
239
|
def pick_result(results, resource)
|
221
|
-
raise ResolverError.new(_("%s not found") % resource.singular_name, resource) if results.empty?
|
222
|
-
raise ResolverError.new(_("
|
240
|
+
raise ResolverError.new(_("%s not found.") % resource.singular_name, resource) if results.empty?
|
241
|
+
raise ResolverError.new(_("Found more than one %s.") % resource.singular_name, resource) if results.count > 1
|
223
242
|
results[0]
|
224
243
|
end
|
225
244
|
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
245
|
+
# @param mode [Symbol] mode in which ids are searched :single, :multi, nil for old beahvior
|
246
|
+
def search_options(options, resource, mode = nil)
|
247
|
+
override_method = "create_#{resource.name}_search_options"
|
248
|
+
search_options = if respond_to?(override_method, true)
|
249
|
+
create_search_options_params = [override_method, options]
|
250
|
+
if method(override_method.to_sym).arity == -2
|
251
|
+
create_search_options_params << mode
|
252
|
+
else
|
253
|
+
warn "create_*_search_options methods (#{override_method}) without 'mode' parameter are deprecated"
|
254
|
+
end
|
255
|
+
send(*create_search_options_params)
|
256
|
+
else
|
257
|
+
create_search_options_params = [options, resource]
|
258
|
+
if method(:create_search_options).arity == -3
|
259
|
+
create_search_options_params << mode
|
260
|
+
else
|
261
|
+
warn "create_search_options methods without 'mode' parameter are deprecated"
|
262
|
+
end
|
263
|
+
create_search_options(*create_search_options_params)
|
264
|
+
end
|
265
|
+
raise MissingSearchOptions.new(_("Missing options to search %s.") % resource.singular_name, resource) if search_options.empty?
|
234
266
|
search_options
|
235
267
|
end
|
236
268
|
|
237
|
-
def searchables(resource)
|
238
|
-
@searchables.for(resource)
|
239
|
-
end
|
240
|
-
|
241
269
|
def expected_record_count(options, resource)
|
242
270
|
searchables(resource).each do |s|
|
243
271
|
value = options[HammerCLI.option_accessor_name(s.name.to_s)]
|
@@ -263,13 +291,20 @@ module HammerCLIForeman
|
|
263
291
|
end
|
264
292
|
|
265
293
|
def options_empty?(resource, options)
|
266
|
-
searchables(resource).
|
294
|
+
searchables(resource).all? do |s|
|
267
295
|
values = options[HammerCLI.option_accessor_name(s.plural_name.to_s)]
|
268
|
-
values
|
296
|
+
values.nil? || (values.respond_to?(:empty?) && values.empty?)
|
269
297
|
end
|
270
298
|
end
|
271
299
|
|
272
|
-
def
|
300
|
+
def options_not_set?(resource, options)
|
301
|
+
searchables(resource).all? do |s|
|
302
|
+
values = options[HammerCLI.option_accessor_name(s.plural_name.to_s)]
|
303
|
+
values.nil?
|
304
|
+
end
|
305
|
+
end
|
306
|
+
|
307
|
+
def create_smart_class_parameters_search_options(options, mode = nil)
|
273
308
|
search_options = {}
|
274
309
|
value = options[HammerCLI.option_accessor_name('name')]
|
275
310
|
search_options[:search] = "key = \"#{value}\""
|
@@ -277,7 +312,7 @@ module HammerCLIForeman
|
|
277
312
|
search_options
|
278
313
|
end
|
279
314
|
|
280
|
-
def create_smart_variables_search_options(options)
|
315
|
+
def create_smart_variables_search_options(options, mode = nil)
|
281
316
|
search_options = {}
|
282
317
|
value = options[HammerCLI.option_accessor_name('variable')]
|
283
318
|
|
@@ -288,13 +323,14 @@ module HammerCLIForeman
|
|
288
323
|
search_options
|
289
324
|
end
|
290
325
|
|
291
|
-
|
326
|
+
# @param mode [Symbol] mode in which ids are searched :single, :multi, nil for old beahvior
|
327
|
+
def create_search_options(options, resource, mode = nil)
|
292
328
|
searchables(resource).each do |s|
|
293
329
|
value = options[HammerCLI.option_accessor_name(s.name.to_s)]
|
294
330
|
values = options[HammerCLI.option_accessor_name(s.plural_name.to_s)]
|
295
|
-
if value
|
331
|
+
if value && (mode.nil? || mode == :single)
|
296
332
|
return {:search => "#{s.name} = \"#{value}\""}
|
297
|
-
elsif values
|
333
|
+
elsif values && (mode.nil? || mode == :multi)
|
298
334
|
query = values.map{|v| "#{s.name} = \"#{v}\"" }.join(" or ")
|
299
335
|
return {:search => query}
|
300
336
|
end
|