hammer_cli_foreman 0.9.0 → 0.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE +5 -0
- data/README.md +1 -15
- data/doc/configuration.md +38 -0
- data/doc/developer_docs.md +4 -3
- data/doc/release_notes.md +18 -0
- data/doc/testing.md +133 -0
- data/lib/hammer_cli_foreman.rb +4 -2
- data/lib/hammer_cli_foreman/api/connection.rb +21 -7
- data/lib/hammer_cli_foreman/api/interactive_basic_auth.rb +1 -1
- data/lib/hammer_cli_foreman/api/session_authenticator_wrapper.rb +6 -1
- data/lib/hammer_cli_foreman/api/void_auth.rb +8 -0
- data/lib/hammer_cli_foreman/auth.rb +1 -1
- data/lib/hammer_cli_foreman/common_parameter.rb +1 -0
- data/lib/hammer_cli_foreman/config_group.rb +45 -0
- data/lib/hammer_cli_foreman/defaults.rb +6 -3
- data/lib/hammer_cli_foreman/exception_handler.rb +36 -7
- data/lib/hammer_cli_foreman/filter.rb +61 -0
- data/lib/hammer_cli_foreman/host.rb +7 -5
- data/lib/hammer_cli_foreman/hosts/common_update_options.rb +17 -2
- data/lib/hammer_cli_foreman/output/fields.rb +3 -2
- data/lib/hammer_cli_foreman/output/formatters.rb +3 -2
- data/lib/hammer_cli_foreman/parameter.rb +5 -2
- data/lib/hammer_cli_foreman/references.rb +1 -1
- data/lib/hammer_cli_foreman/role.rb +18 -1
- data/lib/hammer_cli_foreman/template.rb +10 -10
- data/lib/hammer_cli_foreman/testing/api_expectations.rb +108 -8
- data/lib/hammer_cli_foreman/user.rb +25 -0
- data/lib/hammer_cli_foreman/version.rb +1 -1
- data/locale/ca/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
- data/locale/de/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
- data/locale/en/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
- data/locale/en_GB/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
- data/locale/es/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
- data/locale/fr/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
- data/locale/it/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
- data/locale/ja/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
- data/locale/ko/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
- data/locale/pt_BR/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
- data/locale/ru/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
- data/locale/zh_CN/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
- data/locale/zh_TW/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
- data/test/data/1.14/_foreman_api.json +1 -0
- data/test/data/1.14/foreman_api.json +1 -0
- data/test/data/1.15/foreman_api.json +1 -0
- data/test/functional/host_test.rb +69 -1
- data/test/functional/role_test.rb +69 -0
- data/test/functional/template_test.rb +4 -4
- data/test/functional/test_helper.rb +0 -3
- data/test/functional/user_test.rb +85 -0
- data/test/test_helper.rb +4 -6
- data/test/unit/api/interactive_basic_auth_test.rb +2 -3
- data/test/unit/api/session_authenticator_wrapper_test.rb +24 -0
- data/test/unit/apipie_resource_mock.rb +180 -0
- data/test/unit/architecture_test.rb +3 -0
- data/test/unit/auth_source_ldap_test.rb +3 -0
- data/test/unit/commands_test.rb +2 -0
- data/test/unit/common_parameter_test.rb +13 -7
- data/test/unit/compute_resource_test.rb +6 -0
- data/test/unit/config_group_test.rb +72 -0
- data/test/unit/defaults_test.rb +28 -24
- data/test/unit/domain_test.rb +3 -0
- data/test/unit/environment_test.rb +3 -0
- data/test/unit/filter_test.rb +10 -2
- data/test/unit/host_test.rb +14 -1
- data/test/unit/hostgroup_test.rb +3 -0
- data/test/unit/image_test.rb +3 -0
- data/test/unit/media_test.rb +3 -0
- data/test/unit/model_test.rb +3 -0
- data/test/unit/partition_table_test.rb +3 -0
- data/test/unit/puppet_class_test.rb +3 -0
- data/test/unit/realm_test.rb +3 -0
- data/test/unit/report_test.rb +3 -0
- data/test/unit/smart_proxy_test.rb +3 -0
- data/test/unit/smart_variable_test.rb +0 -1
- data/test/unit/subnet_test.rb +3 -0
- data/test/unit/template_test.rb +9 -3
- data/test/unit/user_test.rb +6 -0
- data/test/unit/usergroup_test.rb +3 -0
- metadata +69 -577
- data/locale/Makefile +0 -57
- data/locale/README.md +0 -18
- data/locale/ca/hammer-cli-foreman.edit.po +0 -2910
- data/locale/ca/hammer-cli-foreman.po +0 -2823
- data/locale/ca/hammer-cli-foreman.po.time_stamp +0 -0
- data/locale/de/hammer-cli-foreman.edit.po +0 -2921
- data/locale/de/hammer-cli-foreman.po +0 -2827
- data/locale/de/hammer-cli-foreman.po.time_stamp +0 -0
- data/locale/en/hammer-cli-foreman.edit.po +0 -2865
- data/locale/en/hammer-cli-foreman.po +0 -2167
- data/locale/en/hammer-cli-foreman.po.time_stamp +0 -0
- data/locale/en_GB/hammer-cli-foreman.edit.po +0 -2888
- data/locale/en_GB/hammer-cli-foreman.po +0 -2825
- data/locale/en_GB/hammer-cli-foreman.po.time_stamp +0 -0
- data/locale/es/hammer-cli-foreman.edit.po +0 -2924
- data/locale/es/hammer-cli-foreman.po +0 -2829
- data/locale/es/hammer-cli-foreman.po.time_stamp +0 -0
- data/locale/fr/hammer-cli-foreman.edit.po +0 -2919
- data/locale/fr/hammer-cli-foreman.po +0 -2825
- data/locale/fr/hammer-cli-foreman.po.time_stamp +0 -0
- data/locale/hammer-cli-foreman.pot +0 -3080
- data/locale/it/hammer-cli-foreman.edit.po +0 -2909
- data/locale/it/hammer-cli-foreman.po +0 -2824
- data/locale/it/hammer-cli-foreman.po.time_stamp +0 -0
- data/locale/ja/hammer-cli-foreman.edit.po +0 -2919
- data/locale/ja/hammer-cli-foreman.po +0 -2824
- data/locale/ja/hammer-cli-foreman.po.time_stamp +0 -0
- data/locale/ko/hammer-cli-foreman.edit.po +0 -2917
- data/locale/ko/hammer-cli-foreman.po +0 -2823
- data/locale/ko/hammer-cli-foreman.po.time_stamp +0 -0
- data/locale/pt_BR/hammer-cli-foreman.edit.po +0 -2921
- data/locale/pt_BR/hammer-cli-foreman.po +0 -2826
- data/locale/pt_BR/hammer-cli-foreman.po.time_stamp +0 -0
- data/locale/ru/hammer-cli-foreman.edit.po +0 -2921
- data/locale/ru/hammer-cli-foreman.po +0 -2824
- data/locale/ru/hammer-cli-foreman.po.time_stamp +0 -0
- data/locale/zanata.xml +0 -28
- data/locale/zh_CN/hammer-cli-foreman.edit.po +0 -2917
- data/locale/zh_CN/hammer-cli-foreman.po +0 -2822
- data/locale/zh_CN/hammer-cli-foreman.po.time_stamp +0 -0
- data/locale/zh_TW/hammer-cli-foreman.edit.po +0 -2917
- data/locale/zh_TW/hammer-cli-foreman.po +0 -2822
- data/locale/zh_TW/hammer-cli-foreman.po.time_stamp +0 -0
- data/test/reports/TEST-HammerCLIForeman-Architecture-CreateCommand-parameters.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-Architecture-CreateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Architecture-DeleteCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-Architecture-DeleteCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Architecture-InfoCommand-output.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-Architecture-InfoCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-Architecture-InfoCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Architecture-ListCommand-output.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-Architecture-ListCommand-parameters.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-Architecture-ListCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Architecture-UpdateCommand-parameters.xml +0 -15
- data/test/reports/TEST-HammerCLIForeman-Architecture-UpdateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Architecture.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-CommonParameter-DeleteCommand-parameters.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-CommonParameter-DeleteCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-CommonParameter-ListCommand-output.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-CommonParameter-ListCommand-parameters.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-CommonParameter-ListCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-CommonParameter-SetCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-CommonParameter-SetCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-CommonParameter.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-ComputeResource-CreateCommand-parameters.xml +0 -15
- data/test/reports/TEST-HammerCLIForeman-ComputeResource-CreateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-ComputeResource-DeleteCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-ComputeResource-DeleteCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-ComputeResource-InfoCommand-output.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-ComputeResource-InfoCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-ComputeResource-InfoCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-ComputeResource-ListCommand-output.xml +0 -15
- data/test/reports/TEST-HammerCLIForeman-ComputeResource-ListCommand-parameters.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-ComputeResource-ListCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-ComputeResource-UpdateCommand-parameters.xml +0 -15
- data/test/reports/TEST-HammerCLIForeman-ComputeResource-UpdateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-ComputeResource.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Domain-CreateCommand-parameters.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-Domain-CreateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Domain-DeleteCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-Domain-DeleteCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Domain-DeleteParameterCommand-parameters.xml +0 -15
- data/test/reports/TEST-HammerCLIForeman-Domain-DeleteParameterCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Domain-InfoCommand-output.xml +0 -21
- data/test/reports/TEST-HammerCLIForeman-Domain-InfoCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-Domain-InfoCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Domain-ListCommand-output.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-Domain-ListCommand-parameters.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-Domain-ListCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Domain-SetParameterCommand-parameters.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-Domain-SetParameterCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Domain-UpdateCommand-parameters.xml +0 -15
- data/test/reports/TEST-HammerCLIForeman-Domain-UpdateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Domain.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Environment-CreateCommand-parameters.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-Environment-CreateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Environment-DeleteCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-Environment-DeleteCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Environment-InfoCommand-output.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-Environment-InfoCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-Environment-InfoCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Environment-ListCommand-output.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-Environment-ListCommand-parameters.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-Environment-ListCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Environment-UpdateCommand-parameters.xml +0 -15
- data/test/reports/TEST-HammerCLIForeman-Environment-UpdateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Environment.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-ExceptionHandler.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-Host-CreateCommand-parameters.xml +0 -46
- data/test/reports/TEST-HammerCLIForeman-Host-CreateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Host-DeleteCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-Host-DeleteCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Host-DeleteParameterCommand-parameters.xml +0 -15
- data/test/reports/TEST-HammerCLIForeman-Host-DeleteParameterCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Host-InfoCommand-output.xml +0 -85
- data/test/reports/TEST-HammerCLIForeman-Host-InfoCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-Host-InfoCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Host-ListCommand-output.xml +0 -21
- data/test/reports/TEST-HammerCLIForeman-Host-ListCommand-parameters.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-Host-ListCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Host-PuppetRunCommand-output.xml +0 -9
- data/test/reports/TEST-HammerCLIForeman-Host-PuppetRunCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Host-SetParameterCommand-parameters.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-Host-SetParameterCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Host-StatusCommand-output.xml +0 -9
- data/test/reports/TEST-HammerCLIForeman-Host-StatusCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Host-UpdateCommand-parameters.xml +0 -40
- data/test/reports/TEST-HammerCLIForeman-Host-UpdateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Host.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-CreateCommand-parameters.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-CreateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-DeleteCommand-parameters.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-DeleteCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-DeleteParameterCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-DeleteParameterCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-InfoCommand-output.xml +0 -29
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-InfoCommand-parameters.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-InfoCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-ListCommand-output.xml +0 -27
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-ListCommand-parameters.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-ListCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-SetParameterCommand-parameters.xml +0 -15
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-SetParameterCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-UpdateCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-Hostgroup-UpdateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Hostgroup.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Location-CreateCommand-parameters.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-Location-CreateCommand-resource-disabled.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-Location-CreateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Location-DeleteCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-Location-DeleteCommand-resource-disabled.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-Location-DeleteCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Location-InfoCommand-output.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-Location-InfoCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-Location-InfoCommand-resource-disabled.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-Location-InfoCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Location-ListCommand-output.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-Location-ListCommand-parameters.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-Location-ListCommand-resource-disabled.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-Location-ListCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Location-UpdateCommand-parameters.xml +0 -15
- data/test/reports/TEST-HammerCLIForeman-Location-UpdateCommand-resource-disabled.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-Location-UpdateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Location.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Medium-CreateCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-Medium-CreateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Medium-DeleteCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-Medium-DeleteCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Medium-InfoCommand-output.xml +0 -23
- data/test/reports/TEST-HammerCLIForeman-Medium-InfoCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-Medium-InfoCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Medium-ListCommand-output.xml +0 -15
- data/test/reports/TEST-HammerCLIForeman-Medium-ListCommand-parameters.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-Medium-ListCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Medium-UpdateCommand-parameters.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-Medium-UpdateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Medium.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-CreateCommand-parameters.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-CreateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-DeleteCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-DeleteCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-DeleteParameterCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-DeleteParameterCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-InfoCommand-output.xml +0 -27
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-InfoCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-InfoCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-ListCommand-output.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-ListCommand-parameters.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-ListCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-SetParameterCommand-parameters.xml +0 -15
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-SetParameterCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-UpdateCommand-parameters.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem-UpdateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-OperatingSystem.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Organization-CreateCommand-parameters.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-Organization-CreateCommand-resource-disabled.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-Organization-CreateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Organization-DeleteCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-Organization-DeleteCommand-resource-disabled.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-Organization-DeleteCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Organization-InfoCommand-output.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-Organization-InfoCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-Organization-InfoCommand-resource-disabled.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-Organization-InfoCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Organization-ListCommand-output.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-Organization-ListCommand-parameters.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-Organization-ListCommand-resource-disabled.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-Organization-ListCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Organization-UpdateCommand-parameters.xml +0 -15
- data/test/reports/TEST-HammerCLIForeman-Organization-UpdateCommand-resource-disabled.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-Organization-UpdateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Organization.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-CreateCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-CreateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-DeleteCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-DeleteCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-DumpCommand-parameters.xml +0 -15
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-DumpCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-InfoCommand-output.xml +0 -19
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-InfoCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-InfoCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-ListCommand-output.xml +0 -15
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-ListCommand-parameters.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-ListCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-UpdateCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-PartitionTable-UpdateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-PartitionTable.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-SmartProxy-CreateCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-SmartProxy-CreateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-SmartProxy-DeleteCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-SmartProxy-DeleteCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-SmartProxy-InfoCommand-output.xml +0 -21
- data/test/reports/TEST-HammerCLIForeman-SmartProxy-InfoCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-SmartProxy-InfoCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-SmartProxy-ListCommand-output.xml +0 -15
- data/test/reports/TEST-HammerCLIForeman-SmartProxy-ListCommand-parameters.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-SmartProxy-ListCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-SmartProxy-UpdateCommand-parameters.xml +0 -15
- data/test/reports/TEST-HammerCLIForeman-SmartProxy-UpdateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-SmartProxy.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Subnet-CreateCommand-parameters.xml +0 -15
- data/test/reports/TEST-HammerCLIForeman-Subnet-CreateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Subnet-DeleteCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-Subnet-DeleteCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Subnet-InfoCommand-output.xml +0 -43
- data/test/reports/TEST-HammerCLIForeman-Subnet-InfoCommand-parameters.xml +0 -13
- data/test/reports/TEST-HammerCLIForeman-Subnet-InfoCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Subnet-ListCommand-output.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-Subnet-ListCommand-parameters.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-Subnet-ListCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Subnet-UpdateCommand-parameters.xml +0 -15
- data/test/reports/TEST-HammerCLIForeman-Subnet-UpdateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Subnet.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Template-CreateCommand-parameters.xml +0 -15
- data/test/reports/TEST-HammerCLIForeman-Template-CreateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Template-DeleteCommand-parameters.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-Template-DeleteCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Template-DumpCommand-parameters.xml +0 -12
- data/test/reports/TEST-HammerCLIForeman-Template-DumpCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Template-InfoCommand-output.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-Template-InfoCommand-parameters.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-Template-InfoCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Template-ListCommand-output.xml +0 -15
- data/test/reports/TEST-HammerCLIForeman-Template-ListCommand-parameters.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-Template-ListCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Template-ListKindsCommand-parameters.xml +0 -9
- data/test/reports/TEST-HammerCLIForeman-Template-ListKindsCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Template-UpdateCommand-parameters.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-Template-UpdateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-Template.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-User-CreateCommand-parameters.xml +0 -19
- data/test/reports/TEST-HammerCLIForeman-User-CreateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-User-DeleteCommand-parameters.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-User-DeleteCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-User-InfoCommand-output.xml +0 -23
- data/test/reports/TEST-HammerCLIForeman-User-InfoCommand-parameters.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-User-InfoCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-User-ListCommand-output.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-User-ListCommand-parameters.xml +0 -17
- data/test/reports/TEST-HammerCLIForeman-User-ListCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-User-UpdateCommand-parameters.xml +0 -11
- data/test/reports/TEST-HammerCLIForeman-User-UpdateCommand.xml +0 -7
- data/test/reports/TEST-HammerCLIForeman-User.xml +0 -7
- data/test/reports/TEST-MiniTest-Spec.xml +0 -7
@@ -83,13 +83,42 @@ module HammerCLIForeman
|
|
83
83
|
log_full_error e
|
84
84
|
end
|
85
85
|
|
86
|
-
def
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
86
|
+
def ssl_cert_instructions
|
87
|
+
host_url = HammerCLI::Settings.get(:_params, :host) || HammerCLI::Settings.get(:foreman, :host)
|
88
|
+
uri = URI.parse(host_url)
|
89
|
+
if uri.host.nil?
|
90
|
+
host = '<FOREMAN_HOST>'
|
91
|
+
cert_name = "#{host}.crt"
|
92
|
+
else
|
93
|
+
host = uri.to_s
|
94
|
+
cert_name = "#{uri.host}.crt"
|
95
|
+
end
|
96
|
+
|
97
|
+
cmd = "hammer --fetch-ca-cert #{host}"
|
98
|
+
|
99
|
+
rh_install_cmd = "install #{cert_name} /etc/pki/ca-trust/source/anchors/"
|
100
|
+
rh_update_cmd = "update-ca-trust"
|
101
|
+
deb_install_cmd = "install #{cert_name} /usr/local/share/ca-certificates/"
|
102
|
+
deb_update_cmd = "update-ca-certificates"
|
103
|
+
|
104
|
+
_("Make sure you configured the correct URL and have the server's CA certificate installed on your system.") + "\n\n" +
|
105
|
+
_("You can use hammer to fetch the CA certificate from the server. Be aware that hammer cannot verify whether the certificate is correct and you should verify its authenticity after downloading it.") +
|
106
|
+
"\n\n" +
|
107
|
+
_("Download the certificate and save it as a CRT file as follows:") +
|
108
|
+
"\n\n $ #{cmd} > #{cert_name}\n\n" +
|
109
|
+
_("As root install the certificate and update the list of trusted CA certificates as follows:") + "\n\n" +
|
110
|
+
" " + _("on Redhat systems") + ":\n" +
|
111
|
+
" $ #{rh_install_cmd}\n" +
|
112
|
+
" $ #{rh_update_cmd}\n\n" +
|
113
|
+
" " + _("on Debian systems") + ":\n" +
|
114
|
+
" $ #{deb_install_cmd}\n" +
|
115
|
+
" $ #{deb_update_cmd}\n\n" +
|
116
|
+
_("Alternatively you can save the CA certificate into a custom location and use option --ssl-ca-file or corresponding setting in your configuration file.") +
|
117
|
+
"\n"
|
118
|
+
end
|
119
|
+
|
120
|
+
def rake_command
|
121
|
+
"foreman-rake apipie:cache"
|
93
122
|
end
|
94
123
|
|
95
124
|
private
|
@@ -41,18 +41,79 @@ module HammerCLIForeman
|
|
41
41
|
build_options
|
42
42
|
end
|
43
43
|
|
44
|
+
|
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
|
+
|
54
|
+
def self.included(base)
|
55
|
+
base.extend_help do |h|
|
56
|
+
h.section('Overriding organizations and locations') do
|
57
|
+
override_condition = "--override=true"
|
58
|
+
org_opts = '--organization[s|-ids]'
|
59
|
+
loc_opts = '--location[s|-ids]'
|
60
|
+
|
61
|
+
h.text(_("Filters inherit organizations and locations from its role by default. This behavior can be changed by setting %{condition}\n"+
|
62
|
+
"Therefore options %{org_opts} and %{loc_opts} are applicable only when the override flag is set.") % {
|
63
|
+
:org_opts => org_opts,
|
64
|
+
:loc_opts => loc_opts,
|
65
|
+
:condition => override_condition
|
66
|
+
})
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
|
44
73
|
class CreateCommand < HammerCLIForeman::CreateCommand
|
74
|
+
include TaxonomyCheck
|
75
|
+
|
45
76
|
success_message _("Permission filter for [%<resource_type>s] created")
|
46
77
|
failure_message _("Could not create the permission filter")
|
47
78
|
|
79
|
+
def execute
|
80
|
+
signal_override_usage_error if !option_override && taxonomy_options?
|
81
|
+
super
|
82
|
+
end
|
83
|
+
|
48
84
|
build_options
|
49
85
|
end
|
50
86
|
|
51
87
|
|
52
88
|
class UpdateCommand < HammerCLIForeman::UpdateCommand
|
89
|
+
include TaxonomyCheck
|
90
|
+
|
53
91
|
success_message _("Permission filter for [%<resource_type>s] updated")
|
54
92
|
failure_message _("Could not update the permission filter")
|
55
93
|
|
94
|
+
def request_params
|
95
|
+
params = super
|
96
|
+
if override?
|
97
|
+
# Clear taxonomies in case the filter is switching override from true to false
|
98
|
+
params['filter']['location_ids'] = []
|
99
|
+
params['filter']['organization_ids'] = []
|
100
|
+
end
|
101
|
+
params
|
102
|
+
end
|
103
|
+
|
104
|
+
def execute
|
105
|
+
signal_override_usage_error if !override? && taxonomy_options?
|
106
|
+
super
|
107
|
+
end
|
108
|
+
|
109
|
+
def override?
|
110
|
+
option_override || filter['override?']
|
111
|
+
end
|
112
|
+
|
113
|
+
def filter
|
114
|
+
@filter ||= HammerCLIForeman.foreman_resource!(:filters).action(:show).call({ :id => option_id }, request_headers, request_options)
|
115
|
+
end
|
116
|
+
|
56
117
|
build_options
|
57
118
|
end
|
58
119
|
|
@@ -30,7 +30,7 @@ module HammerCLIForeman
|
|
30
30
|
field :id, _("Id")
|
31
31
|
field :name, _("Name")
|
32
32
|
field nil, _("Operating System"), Fields::SingleReference, :key => :operatingsystem
|
33
|
-
field nil, _("Host Group"), Fields::SingleReference, :key => :hostgroup
|
33
|
+
field nil, _("Host Group"), Fields::SingleReference, :key => :hostgroup, :display_field => 'title'
|
34
34
|
field :ip, _("IP")
|
35
35
|
field :mac, _("MAC")
|
36
36
|
end
|
@@ -64,7 +64,7 @@ module HammerCLIForeman
|
|
64
64
|
field :name, _("Name")
|
65
65
|
field nil, _("Organization"), Fields::SingleReference, :key => :organization, :hide_blank => true
|
66
66
|
field nil, _("Location"), Fields::SingleReference, :key => :location, :hide_blank => true
|
67
|
-
field nil, _("Host Group"), Fields::SingleReference, :key => :hostgroup
|
67
|
+
field nil, _("Host Group"), Fields::SingleReference, :key => :hostgroup, :display_field => 'title'
|
68
68
|
field nil, _("Compute Resource"), Fields::SingleReference, :key => :compute_resource
|
69
69
|
field nil, _("Compute Profile"), Fields::SingleReference, :key => :compute_profile, :hide_blank => true
|
70
70
|
field nil, _("Environment"), Fields::SingleReference, :key => :environment
|
@@ -235,8 +235,10 @@ module HammerCLIForeman
|
|
235
235
|
super
|
236
236
|
unless validator.any(:option_hostgroup_id, :option_hostgroup_name).exist?
|
237
237
|
if option_managed
|
238
|
-
validator.
|
239
|
-
|
238
|
+
validator.any(:option_architecture_name, :option_architecture_id).required
|
239
|
+
validator.any(:option_domain_name, :option_domain_id).required
|
240
|
+
validator.any(:option_operatingsystem_title, :option_operatingsystem_id).required
|
241
|
+
validator.any(:option_ptable_name, :option_ptable_id).required
|
240
242
|
end
|
241
243
|
end
|
242
244
|
end
|
@@ -321,7 +323,7 @@ module HammerCLIForeman
|
|
321
323
|
|
322
324
|
def option_power_action
|
323
325
|
if option_force?
|
324
|
-
:
|
326
|
+
:poweroff
|
325
327
|
else
|
326
328
|
:stop
|
327
329
|
end
|
@@ -8,7 +8,10 @@ module HammerCLIForeman
|
|
8
8
|
base.option "--owner-id", "OWNER_ID", _("ID of the owner"),
|
9
9
|
:attribute_name => :option_user_id
|
10
10
|
|
11
|
-
base.option "--root-password", "
|
11
|
+
base.option ["--root-password", "--root-pass"], "ROOT_PW",
|
12
|
+
_("Required if host is managed and value is not inherited from host group or default password in settings"),
|
13
|
+
:deprecated => { '--root-pass' => _("Use --root-password instead") }
|
14
|
+
|
12
15
|
base.option "--ask-root-password", "ASK_ROOT_PW", " ",
|
13
16
|
:format => HammerCLI::Options::Normalizers::Bool.new
|
14
17
|
|
@@ -48,7 +51,7 @@ module HammerCLIForeman
|
|
48
51
|
:provision_method, :capabilities, :flavour_ref, :image_ref, :start,
|
49
52
|
:network, :cpus, :memory, :provider, :type, :tenant_id, :image_id,
|
50
53
|
# ----------------------------------------------------------------------------------
|
51
|
-
:puppet_class_ids, :host_parameters_attributes, :interfaces_attributes]
|
54
|
+
:puppet_class_ids, :host_parameters_attributes, :interfaces_attributes, :root_pass]
|
52
55
|
end
|
53
56
|
|
54
57
|
def self.ask_password
|
@@ -100,6 +103,14 @@ module HammerCLIForeman
|
|
100
103
|
resolver.puppetclass_ids('option_names' => names) if names
|
101
104
|
end
|
102
105
|
|
106
|
+
def subnet_id(name)
|
107
|
+
resolver.subnet_id('option_name' => name) if name
|
108
|
+
end
|
109
|
+
|
110
|
+
def domain_id(name)
|
111
|
+
resolver.domain_id('option_name' => name) if name
|
112
|
+
end
|
113
|
+
|
103
114
|
def parameter_attributes
|
104
115
|
return {} unless option_parameters
|
105
116
|
option_parameters.collect do |key, value|
|
@@ -132,6 +143,10 @@ module HammerCLIForeman
|
|
132
143
|
compute_attributes[key.gsub('compute_', '')] = nic.delete(key)
|
133
144
|
end
|
134
145
|
end
|
146
|
+
subnet_name = nic.delete('subnet')
|
147
|
+
nic['subnet_id'] ||= subnet_id(subnet_name) if subnet_name
|
148
|
+
domain_name = nic.delete('domain')
|
149
|
+
nic['domain_id'] ||= domain_id(domain_name) if domain_name
|
135
150
|
nic['compute_attributes'] = compute_attributes unless compute_attributes.empty?
|
136
151
|
nic
|
137
152
|
end
|
@@ -6,9 +6,10 @@ module Fields
|
|
6
6
|
|
7
7
|
def display?(value)
|
8
8
|
id_key = "#{parameters[:key]}_id"
|
9
|
-
|
9
|
+
display_field = parameters[:display_field] || 'name'
|
10
|
+
display_key = "#{parameters[:key]}_#{display_field}"
|
10
11
|
|
11
|
-
(value[
|
12
|
+
(value[display_key.to_sym] || value[display_key]) && (value[id_key.to_sym] || value[id_key])
|
12
13
|
end
|
13
14
|
end
|
14
15
|
|
@@ -11,11 +11,12 @@ module HammerCLIForeman::Output
|
|
11
11
|
return "" if resource.nil?
|
12
12
|
|
13
13
|
key = field_params[:key]
|
14
|
+
display_field = field_params[:display_field] || 'name'
|
14
15
|
|
15
16
|
id_key = "#{key}_id"
|
16
|
-
|
17
|
+
display_key = "#{key}_#{display_field}"
|
17
18
|
|
18
|
-
name = resource[
|
19
|
+
name = resource[display_key.to_sym] || resource[display_key]
|
19
20
|
id = resource[id_key.to_sym] || resource[id_key]
|
20
21
|
|
21
22
|
context = field_params[:context] || {}
|
@@ -48,6 +48,7 @@ module HammerCLIForeman
|
|
48
48
|
class SetCommand < AbstractParameterCommand
|
49
49
|
option "--name", "NAME", _("parameter name"), :required => true
|
50
50
|
option "--value", "VALUE", _("parameter value"), :required => true
|
51
|
+
option "--hidden-value", "HIDDEN_VALUE", _("should the value be hidden"), :format => HammerCLI::Options::Normalizers::Bool.new
|
51
52
|
|
52
53
|
def self.command_name(name=nil)
|
53
54
|
(super(name) || "set-parameter").gsub('_', '-')
|
@@ -72,7 +73,8 @@ module HammerCLIForeman
|
|
72
73
|
params = {
|
73
74
|
"id" => get_parameter_identifier,
|
74
75
|
"parameter" => {
|
75
|
-
"value" => option_value
|
76
|
+
"value" => option_value,
|
77
|
+
"hidden_value" => option_hidden_value
|
76
78
|
}
|
77
79
|
}.merge(base_action_params)
|
78
80
|
HammerCLIForeman.record_to_common_format(parameter_resource.call(:update, params))
|
@@ -82,7 +84,8 @@ module HammerCLIForeman
|
|
82
84
|
params = {
|
83
85
|
"parameter" => {
|
84
86
|
"name" => option_name,
|
85
|
-
"value" => option_value
|
87
|
+
"value" => option_value,
|
88
|
+
"hidden_value" => option_hidden_value
|
86
89
|
}
|
87
90
|
}.merge(base_action_params)
|
88
91
|
|
@@ -35,7 +35,7 @@ module HammerCLIForeman
|
|
35
35
|
|
36
36
|
def request_params
|
37
37
|
role_id = get_resource_id(HammerCLIForeman.foreman_resource(:roles))
|
38
|
-
{ :search => "role_id = \"#{role_id}\"" }
|
38
|
+
super.merge({ :search => "role_id = \"#{role_id}\"" })
|
39
39
|
end
|
40
40
|
|
41
41
|
def extend_data(filter)
|
@@ -71,6 +71,23 @@ module HammerCLIForeman
|
|
71
71
|
build_options
|
72
72
|
end
|
73
73
|
|
74
|
+
class CloneCommand < HammerCLIForeman::UpdateCommand
|
75
|
+
action :clone
|
76
|
+
|
77
|
+
def self.command_name(name = "clone")
|
78
|
+
super(name)
|
79
|
+
end
|
80
|
+
|
81
|
+
validate_options do
|
82
|
+
option(:option_new_name).required
|
83
|
+
end
|
84
|
+
|
85
|
+
success_message _("User role cloned")
|
86
|
+
failure_message _("Could not clone the user role")
|
87
|
+
|
88
|
+
build_options
|
89
|
+
end
|
90
|
+
|
74
91
|
|
75
92
|
class DeleteCommand < HammerCLIForeman::DeleteCommand
|
76
93
|
success_message _("User role [%<name>s] deleted")
|
@@ -69,7 +69,7 @@ module HammerCLIForeman
|
|
69
69
|
class ListKindsCommand < HammerCLIForeman::ListCommand
|
70
70
|
|
71
71
|
command_name "kinds"
|
72
|
-
desc _("List available
|
72
|
+
desc _("List available provisioning template kinds.")
|
73
73
|
|
74
74
|
output do
|
75
75
|
field :name, _("Name")
|
@@ -88,7 +88,7 @@ module HammerCLIForeman
|
|
88
88
|
class DumpCommand < HammerCLIForeman::InfoCommand
|
89
89
|
|
90
90
|
command_name "dump"
|
91
|
-
desc _("View
|
91
|
+
desc _("View provisioning template content.")
|
92
92
|
|
93
93
|
def print_data(template)
|
94
94
|
puts template["template"]
|
@@ -104,8 +104,8 @@ module HammerCLIForeman
|
|
104
104
|
:format => HammerCLI::Options::Normalizers::File.new
|
105
105
|
option "--type", "TYPE", _("Template type. Eg. snippet, script, provision"), :required => true
|
106
106
|
|
107
|
-
success_message _("
|
108
|
-
failure_message _("Could not create the
|
107
|
+
success_message _("Provisioning template created")
|
108
|
+
failure_message _("Could not create the provisioning template")
|
109
109
|
|
110
110
|
include TemplateCreateUpdateCommons
|
111
111
|
|
@@ -122,8 +122,8 @@ module HammerCLIForeman
|
|
122
122
|
:format => HammerCLI::Options::Normalizers::File.new
|
123
123
|
option "--type", "TYPE", _("Template type. Eg. snippet, script, provision")
|
124
124
|
|
125
|
-
success_message _("
|
126
|
-
failure_message _("Could not update the
|
125
|
+
success_message _("Provisioning template updated")
|
126
|
+
failure_message _("Could not update the provisioning template")
|
127
127
|
|
128
128
|
include TemplateCreateUpdateCommons
|
129
129
|
|
@@ -136,8 +136,8 @@ module HammerCLIForeman
|
|
136
136
|
|
137
137
|
class DeleteCommand < HammerCLIForeman::DeleteCommand
|
138
138
|
|
139
|
-
success_message _("
|
140
|
-
failure_message _("Could not delete the
|
139
|
+
success_message _("Provisioning template deleted")
|
140
|
+
failure_message _("Could not delete the provisioning template")
|
141
141
|
|
142
142
|
build_options
|
143
143
|
end
|
@@ -161,8 +161,8 @@ module HammerCLIForeman
|
|
161
161
|
action :clone
|
162
162
|
command_name 'clone'
|
163
163
|
|
164
|
-
success_message _('
|
165
|
-
failure_message _('Could not clone the
|
164
|
+
success_message _('Provisioning template cloned')
|
165
|
+
failure_message _('Could not clone the provisioning template')
|
166
166
|
|
167
167
|
validate_options do
|
168
168
|
option(:option_new_name).required
|
@@ -1,11 +1,14 @@
|
|
1
1
|
module HammerCLIForeman
|
2
2
|
module Testing
|
3
3
|
module APIExpectations
|
4
|
-
class
|
4
|
+
class APICallMatcher < Mocha::ParameterMatchers::Base
|
5
|
+
attr_accessor :expected_params, :expected_resource, :expected_action, :block
|
6
|
+
|
5
7
|
def initialize(resource=nil, action=nil, &block)
|
6
8
|
@expected_resource = resource
|
7
9
|
@expected_action = action
|
8
10
|
@block = block if block_given?
|
11
|
+
@expected_params = {}
|
9
12
|
end
|
10
13
|
|
11
14
|
def matches?(actual_parameters)
|
@@ -17,6 +20,7 @@ module HammerCLIForeman
|
|
17
20
|
result &&= (resource_name == @expected_resource.to_s) unless @expected_resource.nil?
|
18
21
|
result &&= (action_name == @expected_action.to_s) unless @expected_action.nil?
|
19
22
|
result &&= @block.call(params) if @block
|
23
|
+
result &&= assert_params(params)
|
20
24
|
result
|
21
25
|
end
|
22
26
|
|
@@ -26,28 +30,124 @@ module HammerCLIForeman
|
|
26
30
|
blk = @block ? '&block' : '*any_argument'
|
27
31
|
"#{res}, #{act}, #{blk}"
|
28
32
|
end
|
33
|
+
|
34
|
+
protected
|
35
|
+
def assert_params(params)
|
36
|
+
params == deep_merge_hash(params, @expected_params)
|
37
|
+
end
|
38
|
+
|
39
|
+
def deep_merge_hash(h, other_h)
|
40
|
+
h = h.clone
|
41
|
+
h.merge!(other_h) do |key, old_val, new_val|
|
42
|
+
if old_val.is_a?(Hash) && new_val.is_a?(Hash)
|
43
|
+
deep_merge_hash(old_val, new_val)
|
44
|
+
else
|
45
|
+
new_val
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
29
49
|
end
|
30
50
|
|
31
51
|
module ExpectationExtensions
|
32
52
|
def method_signature
|
33
|
-
"#{@note}\n #{super}"
|
53
|
+
signature = "#{@note}\n #{super}"
|
54
|
+
if @api_call_matcher && !@api_call_matcher.expected_params.empty?
|
55
|
+
signature += "\n expected params to include: " + params_signature(@api_call_matcher.expected_params)
|
56
|
+
end
|
57
|
+
signature
|
58
|
+
end
|
59
|
+
|
60
|
+
def params_signature(hash)
|
61
|
+
JSON.pretty_generate(hash).split("\n").join("\n ")
|
34
62
|
end
|
35
63
|
|
36
64
|
def set_note(note)
|
37
65
|
@note = note
|
38
66
|
end
|
67
|
+
|
68
|
+
def with_params(expected_params = {}, &block)
|
69
|
+
api_call_matcher.expected_params = expected_params
|
70
|
+
api_call_matcher.block = block if block_given?
|
71
|
+
self.with(api_call_matcher)
|
72
|
+
self
|
73
|
+
end
|
74
|
+
|
75
|
+
def with_action(resource, action)
|
76
|
+
api_call_matcher.expected_resource = resource
|
77
|
+
api_call_matcher.expected_action = action
|
78
|
+
self.with(api_call_matcher)
|
79
|
+
self
|
80
|
+
end
|
81
|
+
|
82
|
+
def api_call_matcher
|
83
|
+
@api_call_matcher ||= APICallMatcher.new
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
class APIExpectationsDecorator < SimpleDelegator
|
88
|
+
def initialize(api_instance = ApipieBindings::API.any_instance)
|
89
|
+
@api_instance = api_instance
|
90
|
+
super
|
91
|
+
end
|
92
|
+
|
93
|
+
def expects_call(resource=nil, action=nil, note=nil, &block)
|
94
|
+
ex = @api_instance.expects(:call_action)
|
95
|
+
ex.extend(ExpectationExtensions)
|
96
|
+
ex.with_action(resource, action).with_params(&block)
|
97
|
+
ex.set_note(note)
|
98
|
+
ex
|
99
|
+
end
|
100
|
+
|
101
|
+
def expects_no_call
|
102
|
+
@api_instance.expects(:call_action).never
|
103
|
+
end
|
104
|
+
|
105
|
+
def expects_search(resource=nil, search_options={}, note=nil)
|
106
|
+
note ||= "Find #{resource}"
|
107
|
+
|
108
|
+
if search_options.is_a?(Hash)
|
109
|
+
search_query = search_options.map{|k, v| "#{k} = \"#{v}\"" }.join(" or ")
|
110
|
+
else
|
111
|
+
search_query = search_options
|
112
|
+
end
|
113
|
+
|
114
|
+
expects_call(resource, :index, note).with_params(:search => search_query)
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
class TestAuthenticator < ApipieBindings::Authenticators::BasicAuth
|
119
|
+
attr_reader :user
|
120
|
+
end
|
121
|
+
|
122
|
+
class FakeApiConnection < HammerCLI::Apipie::ApiConnection
|
123
|
+
attr_reader :authenticator
|
124
|
+
|
125
|
+
def initialize(params, options = {})
|
126
|
+
@authenticator = params[:authenticator]
|
127
|
+
super
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
def api_connection(options={}, version = '1.15')
|
132
|
+
FakeApiConnection.new({
|
133
|
+
:uri => 'https://test.org',
|
134
|
+
:apidoc_cache_dir => "test/data/#{version}",
|
135
|
+
:apidoc_cache_name => 'foreman_api',
|
136
|
+
:authenticator => TestAuthenticator.new('admin', 'changeme'),
|
137
|
+
:dry_run => true
|
138
|
+
}.merge(options))
|
39
139
|
end
|
40
140
|
|
41
141
|
def api_expects(resource=nil, action=nil, note=nil, &block)
|
42
|
-
|
43
|
-
ex.extend(ExpectationExtensions)
|
44
|
-
ex.with(BlockMatcher.new(resource, action, &block))
|
45
|
-
ex.set_note(note)
|
46
|
-
ex
|
142
|
+
APIExpectationsDecorator.new.expects_call(resource, action, note, &block)
|
47
143
|
end
|
48
144
|
|
49
145
|
def api_expects_no_call
|
50
|
-
|
146
|
+
APIExpectationsDecorator.new.expects_no_call
|
147
|
+
end
|
148
|
+
|
149
|
+
def api_expects_search(resource=nil, search_options={}, note=nil)
|
150
|
+
APIExpectationsDecorator.new.expects_search(resource, search_options, note)
|
51
151
|
end
|
52
152
|
|
53
153
|
def index_response(items, options={})
|