hammer_cli_foreman 2.5.1 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/doc/release_notes.md +31 -1
  3. data/lib/hammer_cli_foreman/architecture.rb +5 -5
  4. data/lib/hammer_cli_foreman/associating_commands.rb +0 -24
  5. data/lib/hammer_cli_foreman/bookmark.rb +5 -5
  6. data/lib/hammer_cli_foreman/combination.rb +3 -13
  7. data/lib/hammer_cli_foreman/command_extensions/domain.rb +20 -0
  8. data/lib/hammer_cli_foreman/command_extensions/subnet.rb +25 -10
  9. data/lib/hammer_cli_foreman/command_extensions/user.rb +9 -5
  10. data/lib/hammer_cli_foreman/command_extensions.rb +1 -2
  11. data/lib/hammer_cli_foreman/commands.rb +3 -11
  12. data/lib/hammer_cli_foreman/compute_attribute.rb +1 -1
  13. data/lib/hammer_cli_foreman/compute_profile.rb +5 -5
  14. data/lib/hammer_cli_foreman/compute_resource/libvirt.rb +4 -2
  15. data/lib/hammer_cli_foreman/compute_resource/vmware.rb +4 -2
  16. data/lib/hammer_cli_foreman/compute_resource.rb +1 -0
  17. data/lib/hammer_cli_foreman/domain.rb +5 -28
  18. data/lib/hammer_cli_foreman/filter.rb +3 -3
  19. data/lib/hammer_cli_foreman/host.rb +1 -35
  20. data/lib/hammer_cli_foreman/hostgroup.rb +14 -58
  21. data/lib/hammer_cli_foreman/hosts/common_update_options.rb +8 -30
  22. data/lib/hammer_cli_foreman/id_resolver.rb +7 -68
  23. data/lib/hammer_cli_foreman/location.rb +0 -6
  24. data/lib/hammer_cli_foreman/mail_notification.rb +2 -2
  25. data/lib/hammer_cli_foreman/model.rb +5 -5
  26. data/lib/hammer_cli_foreman/operating_system.rb +10 -10
  27. data/lib/hammer_cli_foreman/option_builders.rb +65 -53
  28. data/lib/hammer_cli_foreman/option_sources/id_params.rb +41 -11
  29. data/lib/hammer_cli_foreman/option_sources/ids_params.rb +39 -7
  30. data/lib/hammer_cli_foreman/option_sources.rb +0 -1
  31. data/lib/hammer_cli_foreman/organization.rb +0 -6
  32. data/lib/hammer_cli_foreman/references.rb +0 -16
  33. data/lib/hammer_cli_foreman/settings.rb +3 -3
  34. data/lib/hammer_cli_foreman/smart_proxy.rb +7 -57
  35. data/lib/hammer_cli_foreman/template.rb +3 -15
  36. data/lib/hammer_cli_foreman/user.rb +5 -4
  37. data/lib/hammer_cli_foreman/usergroup.rb +5 -5
  38. data/lib/hammer_cli_foreman/version.rb +1 -1
  39. data/lib/hammer_cli_foreman.rb +0 -21
  40. data/lib/minitest/coverage_reporter.rb +1 -1
  41. data/locale/ca/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  42. data/locale/de/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  43. data/locale/en/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  44. data/locale/en_GB/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  45. data/locale/es/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  46. data/locale/fr/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  47. data/locale/it/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  48. data/locale/ja/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  49. data/locale/ko/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  50. data/locale/pt_BR/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  51. data/locale/ru/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  52. data/locale/zh_CN/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  53. data/locale/zh_TW/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  54. data/test/data/3.1/foreman_api.json +1 -0
  55. data/test/functional/architecture_test.rb +6 -4
  56. data/test/functional/bookmark_test.rb +3 -1
  57. data/test/functional/compute_attribute_test.rb +20 -20
  58. data/test/functional/compute_profile_test.rb +3 -1
  59. data/test/functional/domain/create_test.rb +91 -0
  60. data/test/functional/domain/update_test.rb +90 -0
  61. data/test/functional/host_test.rb +34 -1
  62. data/test/functional/hostgroup/create_test.rb +11 -117
  63. data/test/functional/hostgroup/update_test.rb +11 -79
  64. data/test/functional/location_test.rb +0 -3
  65. data/test/functional/mail_notification_test.rb +3 -1
  66. data/test/functional/model_test.rb +3 -1
  67. data/test/functional/operating_system_test.rb +3 -1
  68. data/test/functional/personal_access_token_test.rb +4 -4
  69. data/test/functional/settings_test.rb +4 -4
  70. data/test/functional/template_test.rb +76 -49
  71. data/test/functional/user_mail_notification_test.rb +3 -3
  72. data/test/functional/usergroup_test.rb +3 -1
  73. data/test/test_helper.rb +1 -1
  74. data/test/unit/apipie_resource_mock.rb +1 -39
  75. data/test/unit/architecture_test.rb +10 -10
  76. data/test/unit/bookmark_test.rb +10 -14
  77. data/test/unit/commands_test.rb +1 -2
  78. data/test/unit/compute_profile_test.rb +10 -10
  79. data/test/unit/helpers/command.rb +0 -8
  80. data/test/unit/host_test.rb +14 -61
  81. data/test/unit/hostgroup_test.rb +7 -26
  82. data/test/unit/id_resolver_test.rb +0 -28
  83. data/test/unit/mail_notification_test.rb +4 -4
  84. data/test/unit/model_test.rb +47 -47
  85. data/test/unit/operating_system_test.rb +10 -16
  86. data/test/unit/option_builders_test.rb +88 -83
  87. data/test/unit/settings_test.rb +4 -4
  88. data/test/unit/smart_proxy_test.rb +0 -12
  89. data/test/unit/usergroup_test.rb +10 -10
  90. metadata +70 -84
  91. data/lib/hammer_cli_foreman/command_extensions/puppet_environment.rb +0 -29
  92. data/lib/hammer_cli_foreman/command_extensions/puppet_environments.rb +0 -29
  93. data/lib/hammer_cli_foreman/config_group.rb +0 -45
  94. data/lib/hammer_cli_foreman/option_sources/puppet_environment_params.rb +0 -59
  95. data/lib/hammer_cli_foreman/puppet_class.rb +0 -61
  96. data/lib/hammer_cli_foreman/puppet_environment.rb +0 -65
  97. data/lib/hammer_cli_foreman/smart_class_parameter.rb +0 -189
  98. data/test/functional/config_group_test.rb +0 -50
  99. data/test/functional/proxy_test.rb +0 -86
  100. data/test/functional/smart_class_parameter_test.rb +0 -97
  101. data/test/unit/config_group_test.rb +0 -82
  102. data/test/unit/puppet_class_test.rb +0 -72
  103. data/test/unit/puppet_environment_test.rb +0 -114
  104. data/test/unit/smart_class_parameter_test.rb +0 -113
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9a7510aa3b7250c6c467a18d128bc575f5a79f40c3a07283bb65def698e9c4cc
4
- data.tar.gz: e5b1cbbd810d718b84f6a0102883bd4825880efe10250bbd8af1688966f209f1
3
+ metadata.gz: 87407ba2c43be96a076220e9500050007447596f6d14024932fa85a7c9046f20
4
+ data.tar.gz: 2987c54ab5fef04cc45629754a55c62d16a252b6cd950e7de461a989712a79ca
5
5
  SHA512:
6
- metadata.gz: e4112d9f91de37bfac6af33daf9d6e31d58d880889d421a873147dd75ac151c981849b641a90eb3322ca27add6b9dc8596f5a7fd8f6f95e830e1ffb3b8d3c5a5
7
- data.tar.gz: 137ee8f5c12f70577b438132a4b5c2a68bb12c0f54f06fbdf6ad4d6db4b514bdea654c6daf3f1150132061a4e519f43c3d75828df4b2ac1fd96e767be9f45894
6
+ metadata.gz: 030d7c3ff4d19fb767e771c123b8cb0de2a6166cec3ec2012b689f7d920d3049a234f7900ee43141c2af97ce0d5aaf403ea9a9f3962072bdffc181126de57e70
7
+ data.tar.gz: 6acaf9a9b06c59b4c7db28b73bdc7dfe31170ac3b621adb2b85a5a501090e310a4fcfc703e2b6dc48170a693ff675507b8b9c478a8c344ff7793bfe778a8f3f3
data/doc/release_notes.md CHANGED
@@ -1,7 +1,37 @@
1
1
  Release notes
2
2
  =============
3
- ### 2.5.1 (2021-06-08)
3
+ ### 3.2.0 (2022-02-10)
4
+ * Domain update doesn't reset dns implicitly ([PR #591](https://github.com/theforeman/hammer-cli-foreman/pull/591)), [#34177](http://projects.theforeman.org/issues/34177)
5
+ * Send filter's tax params only when required ([PR #592](https://github.com/theforeman/hammer-cli-foreman/pull/592)), [#34199](http://projects.theforeman.org/issues/34199)
6
+ * Add boot_order to compute-attribute ([PR #588](https://github.com/theforeman/hammer-cli-foreman/pull/588)), [#33910](http://projects.theforeman.org/issues/33910)
7
+ * Add mail_enabled to user list/info command ([PR #589](https://github.com/theforeman/hammer-cli-foreman/pull/589)), [#34180](http://projects.theforeman.org/issues/34180)
8
+ * Add token to host info command ([PR #586](https://github.com/theforeman/hammer-cli-foreman/pull/586)), [#34120](http://projects.theforeman.org/issues/34120)
9
+ * Bump to 3.2.0-develop
10
+
11
+ ### 3.1.0 (2021-11-10)
12
+ * Update test data for 3.1
13
+ * Make sure provided options override defaults, [#33711](http://projects.theforeman.org/issues/33711)
14
+ * Make template create/update commands use resolver, [#33721](http://projects.theforeman.org/issues/33721)
15
+ * Revert fix rake version
16
+ * Fix rake version
17
+ * Show status once for proxy info ([PR #581](https://github.com/theforeman/hammer-cli-foreman/pull/581)), [#19510](http://projects.theforeman.org/issues/19510)
18
+ * Add proxy status and version to info command ([PR #572](https://github.com/theforeman/hammer-cli-foreman/pull/572))
19
+ * Associate a vm via hammer to a compute resource, [#33047](http://projects.theforeman.org/issues/33047)
20
+ * Fix option builders and tests, [#33226](http://projects.theforeman.org/issues/33226)
21
+ * Bump to 3.1.0-develop
22
+ * Add parent title option for hostgroup, [#32878](http://projects.theforeman.org/issues/32878)
23
+
24
+ ### 3.0.0 (2021-08-04)
25
+ * Puppet extraction ([PR #571](https://github.com/theforeman/hammer-cli-foreman/pull/571)), [#33174](http://projects.theforeman.org/issues/33174)
26
+ * Update rel-eng notebook ([PR #573](https://github.com/theforeman/hammer-cli-foreman/pull/573))
27
+ * Bump version to 3.0-develop
28
+ * Deprecate root-pass and remove deprecation warning, [#22574](http://projects.theforeman.org/issues/22574)
29
+ * Return org and loc options to all hammer commands ([PR #575](https://github.com/theforeman/hammer-cli-foreman/pull/575)), [#32872](http://projects.theforeman.org/issues/32872)
30
+ * prevent full-help from failure if apidoc not available ([PR #574](https://github.com/theforeman/hammer-cli-foreman/pull/574)), [#32861](http://projects.theforeman.org/issues/32861)
4
31
  * Show new msg for empty update commands, [#32454](http://projects.theforeman.org/issues/32454)
32
+ * Remove --environment deprecations ([PR #569](https://github.com/theforeman/hammer-cli-foreman/pull/569)), [#28862](http://projects.theforeman.org/issues/28862)
33
+ * Force name resolving due defaults, [#32392](http://projects.theforeman.org/issues/32392)
34
+ * Bump to 2.6.0-develop
5
35
 
6
36
  ### 2.5.0 (2021-05-04)
7
37
  * Update test data to latest foreman
@@ -11,7 +11,7 @@ module HammerCLIForeman
11
11
  field :name, _("Name")
12
12
  end
13
13
 
14
- build_options expand: { except: %i[organizations locations] }, without: %i[organization_id location_id]
14
+ build_options
15
15
  end
16
16
 
17
17
 
@@ -23,7 +23,7 @@ module HammerCLIForeman
23
23
  HammerCLIForeman::References.timestamps(self)
24
24
  end
25
25
 
26
- build_options expand: { except: %i[organizations locations] }, without: %i[organization_id location_id]
26
+ build_options
27
27
  end
28
28
 
29
29
 
@@ -31,7 +31,7 @@ module HammerCLIForeman
31
31
  success_message _("Architecture created.")
32
32
  failure_message _("Could not create the architecture")
33
33
 
34
- build_options expand: { except: %i[organizations locations] }, without: %i[organization_id location_id]
34
+ build_options
35
35
  end
36
36
 
37
37
 
@@ -39,7 +39,7 @@ module HammerCLIForeman
39
39
  success_message _("Architecture deleted.")
40
40
  failure_message _("Could not delete the architecture")
41
41
 
42
- build_options expand: { except: %i[organizations locations] }, without: %i[organization_id location_id]
42
+ build_options
43
43
  end
44
44
 
45
45
 
@@ -47,7 +47,7 @@ module HammerCLIForeman
47
47
  success_message _("Architecture updated.")
48
48
  failure_message _("Could not update the architecture")
49
49
 
50
- build_options expand: { except: %i[organizations locations] }, without: %i[organization_id location_id]
50
+ build_options
51
51
  end
52
52
 
53
53
  HammerCLIForeman::AssociatingCommands::OperatingSystem.extend_command(self)
@@ -53,30 +53,6 @@ module HammerCLIForeman
53
53
  end
54
54
  end
55
55
 
56
- module PuppetEnvironment
57
- extend CommandExtension
58
-
59
- class AddPuppetEnvironmentCommand < HammerCLIForeman::AddAssociatedCommand
60
- associated_resource :environments
61
- desc _('Associate a Puppet environment')
62
-
63
- success_message _("The environment has been associated.")
64
- failure_message _("Could not associate the environment")
65
-
66
- extend_with(HammerCLIForeman::CommandExtensions::PuppetEnvironment.new)
67
- end
68
-
69
- class RemovePuppetEnvironmentCommand < HammerCLIForeman::RemoveAssociatedCommand
70
- associated_resource :environments
71
- desc _('Disassociate a Puppet environment')
72
-
73
- success_message _("The environment has been disassociated.")
74
- failure_message _("Could not disassociate the environment")
75
-
76
- extend_with(HammerCLIForeman::CommandExtensions::PuppetEnvironment.new)
77
- end
78
- end
79
-
80
56
  module Domain
81
57
  extend CommandExtension
82
58
 
@@ -15,34 +15,34 @@ module HammerCLIForeman
15
15
  field :owner_type, _('Owner Type')
16
16
  end
17
17
 
18
- build_options expand: { except: %i[organizations locations] }, without: %i[organization_id location_id]
18
+ build_options
19
19
  end
20
20
 
21
21
  class InfoCommand < HammerCLIForeman::InfoCommand
22
22
  output ListCommand.output_definition
23
23
 
24
- build_options expand: { except: %i[organizations locations] }, without: %i[organization_id location_id]
24
+ build_options
25
25
  end
26
26
 
27
27
  class CreateCommand < HammerCLIForeman::CreateCommand
28
28
  success_message _('Bookmark %<name>s created.')
29
29
  failure_message _('Failed to create %<name>s bookmark')
30
30
 
31
- build_options expand: { except: %i[organizations locations] }, without: %i[organization_id location_id]
31
+ build_options
32
32
  end
33
33
 
34
34
  class UpdateCommand < HammerCLIForeman::UpdateCommand
35
35
  success_message _('Bookmark %<name>s updated successfully.')
36
36
  failure_message _('Failed to update %<name>s bookmark')
37
37
 
38
- build_options expand: { except: %i[organizations locations] }, without: %i[organization_id location_id]
38
+ build_options
39
39
  end
40
40
 
41
41
  class DeleteCommand < HammerCLIForeman::DeleteCommand
42
42
  success_message _('Bookmark deleted successfully.')
43
43
  failure_message _('Failed to delete bookmark')
44
44
 
45
- build_options expand: { except: %i[organizations locations] }, without: %i[organization_id location_id]
45
+ build_options
46
46
  end
47
47
 
48
48
  autoload_subcommands
@@ -6,8 +6,7 @@ module HammerCLIForeman
6
6
 
7
7
  module RequestParams
8
8
  def request_params
9
- combination_params = { 'hostgroup_id' => params['hostgroup_id'].to_s,
10
- 'environment_id' => params['environment_id'].to_s }
9
+ combination_params = { 'hostgroup_id' => params['hostgroup_id'].to_s }
11
10
  super.merge('template_combination' => combination_params)
12
11
  end
13
12
  end
@@ -21,8 +20,6 @@ module HammerCLIForeman
21
20
  field :provisioning_template_name, _('Provisioning template name')
22
21
  field :hostgroup_id, _('Hostgroup ID')
23
22
  field :hostgroup_name, _('Hostgroup name')
24
- field :environment_id, _('Environment ID')
25
- field :environment_name, _('Environment name')
26
23
 
27
24
  HammerCLIForeman::References.taxonomies(self)
28
25
  HammerCLIForeman::References.timestamps(self)
@@ -31,8 +28,6 @@ module HammerCLIForeman
31
28
  build_options do |o|
32
29
  o.expand(:all)
33
30
  end
34
-
35
- extend_with(HammerCLIForeman::CommandExtensions::PuppetEnvironment.new)
36
31
  end
37
32
 
38
33
  class ListCombination < HammerCLIForeman::ListCommand
@@ -40,12 +35,11 @@ module HammerCLIForeman
40
35
  field :id, _('ID')
41
36
  field nil, _('Provisioning Template'), Fields::SingleReference, :key => :provisioning_template
42
37
  field nil, _('Hostgroup'), Fields::SingleReference, :key => :hostgroup
43
- field nil, _('Environment'), Fields::SingleReference, :key => :environment
44
38
  end
45
39
 
46
40
  build_options do |o|
47
- o.expand(:all).except(:hostgroups, :environments)
48
- o.without(:hostgroup_id, :environment_id)
41
+ o.expand(:all).except(:hostgroups)
42
+ o.without(:hostgroup_id)
49
43
  end
50
44
  end
51
45
 
@@ -58,8 +52,6 @@ module HammerCLIForeman
58
52
  build_options do |o|
59
53
  o.expand(:all)
60
54
  end
61
-
62
- extend_with(HammerCLIForeman::CommandExtensions::PuppetEnvironment.new)
63
55
  end
64
56
 
65
57
  class CreateCombination < HammerCLIForeman::CreateCommand
@@ -71,8 +63,6 @@ module HammerCLIForeman
71
63
  build_options do |o|
72
64
  o.expand(:all)
73
65
  end
74
-
75
- extend_with(HammerCLIForeman::CommandExtensions::PuppetEnvironment.new)
76
66
  end
77
67
 
78
68
  class DeleteCombination < HammerCLIForeman::DeleteCommand
@@ -0,0 +1,20 @@
1
+ module HammerCLIForeman
2
+ module CommandExtensions
3
+ class Domain < HammerCLI::CommandExtensions
4
+ option_sources do |sources, command|
5
+ sources.find_by_name('IdResolution').insert_relative(
6
+ :after,
7
+ 'IdParams',
8
+ HammerCLIForeman::OptionSources::ReferencedResourceIdParams.new(command)
9
+ )
10
+ sources
11
+ end
12
+
13
+ option_family associate: 'dns' do
14
+ child '--dns', 'DNS_NAME', _('Name of DNS proxy to use within this domain'),
15
+ attribute_name: :option_dns_name,
16
+ referenced_resource: :smart_proxy
17
+ end
18
+ end
19
+ end
20
+ end
@@ -1,16 +1,7 @@
1
1
  module HammerCLIForeman
2
2
  module CommandExtensions
3
3
  class Subnet < HammerCLI::CommandExtensions
4
- option "--dns", "DNS_NAME", _("DNS Proxy to use within this subnet"),
5
- attribute_name: :option_dns_name,
6
- referenced_resource: :smart_proxy
7
- option "--dhcp", "DHCP_NAME", _("DHCP Proxy to use within this subnet"),
8
- attribute_name: :option_dhcp_name,
9
- referenced_resource: :smart_proxy
10
- option "--tftp", "TFTP_NAME", _("TFTP Proxy to use within this subnet"),
11
- attribute_name: :option_tftp_name,
12
- referenced_resource: :smart_proxy
13
- option "--prefix", "PREFIX", _("Network prefix in CIDR notation (e.g. 64) for this subnet")
4
+ option '--prefix', 'PREFIX', _('Network prefix in CIDR notation (e.g. 64) for this subnet')
14
5
 
15
6
  option_sources do |sources, command|
16
7
  sources.find_by_name('IdResolution').insert_relative(
@@ -20,6 +11,30 @@ module HammerCLIForeman
20
11
  )
21
12
  sources
22
13
  end
14
+
15
+ option_family associate: 'tftp' do
16
+ child '--tftp', 'TFTP_NAME', _('TFTP Proxy to use within this subnet'),
17
+ attribute_name: :option_tftp_name,
18
+ referenced_resource: :smart_proxy
19
+ end
20
+
21
+ option_family associate: 'dns' do
22
+ child '--dns', 'DNS_NAME', _('DNS Proxy to use within this subnet'),
23
+ attribute_name: :option_dns_name,
24
+ referenced_resource: :smart_proxy
25
+ end
26
+
27
+ option_family associate: 'dhcp' do
28
+ child '--dhcp', 'DHCP_NAME', _('DHCP Proxy to use within this subnet'),
29
+ attribute_name: :option_dhcp_name,
30
+ referenced_resource: :smart_proxy
31
+ end
32
+
33
+ option_family associate: 'bmc' do
34
+ child '--bmc', 'BMC_NAME', _('BMC Proxy to use within this subnet'),
35
+ attribute_name: :option_bmc_name,
36
+ referenced_resource: :smart_proxy
37
+ end
23
38
  end
24
39
  end
25
40
  end
@@ -1,17 +1,21 @@
1
1
  module HammerCLIForeman
2
2
  module CommandExtensions
3
3
  class User < HammerCLI::CommandExtensions
4
- option '--default-organization', 'DEFAULT_ORGANIZATION_NAME', _('Default organization name'),
5
- aliased_resource: 'default_organization', referenced_resource: 'default_organization'
6
- option '--default-location', 'DEFAULT_LOCATION_NAME', _('Default location name'),
7
- aliased_resource: 'default_location', referenced_resource: 'default_location'
8
-
9
4
  option '--ask-password', 'ASK_PW', ' ', format: HammerCLI::Options::Normalizers::Bool.new
10
5
 
11
6
  option_sources do |sources, command|
12
7
  sources << HammerCLIForeman::OptionSources::UserParams.new(command)
13
8
  sources
14
9
  end
10
+
11
+ option_family associate: 'default_organization' do
12
+ child '--default-organization', 'DEFAULT_ORGANIZATION_NAME', _('Default organization name'),
13
+ aliased_resource: 'default_organization', referenced_resource: 'organization'
14
+ end
15
+ option_family associate: 'default_location' do
16
+ child '--default-location', 'DEFAULT_LOCATION_NAME', _('Default location name'),
17
+ aliased_resource: 'default_location', referenced_resource: 'location'
18
+ end
15
19
  end
16
20
  end
17
21
  end
@@ -1,10 +1,9 @@
1
1
  require 'hammer_cli_foreman/command_extensions/update_common'
2
2
  require 'hammer_cli_foreman/command_extensions/fields'
3
- require 'hammer_cli_foreman/command_extensions/puppet_environment'
4
- require 'hammer_cli_foreman/command_extensions/puppet_environments'
5
3
  require 'hammer_cli_foreman/command_extensions/option_sources'
6
4
  require 'hammer_cli_foreman/command_extensions/hosts'
7
5
  require 'hammer_cli_foreman/command_extensions/ping'
8
6
  require 'hammer_cli_foreman/command_extensions/status'
9
7
  require 'hammer_cli_foreman/command_extensions/user'
10
8
  require 'hammer_cli_foreman/command_extensions/subnet'
9
+ require 'hammer_cli_foreman/command_extensions/domain'
@@ -7,16 +7,9 @@ module HammerCLIForeman
7
7
  :usergroups => :user_groups,
8
8
  :ptable => :partition_table,
9
9
  :ptables => :partition_tables,
10
- :puppetclass => :puppet_class,
11
- :puppetclasses => :puppet_classes,
12
- :environment => :puppet_environment,
13
- :environments => :puppet_environments
14
10
  }
15
11
 
16
- RESOURCE_ALIAS_NAME_MAPPING = {
17
- environment: :puppet_environment,
18
- environments: :puppet_environments
19
- }
12
+ RESOURCE_ALIAS_NAME_MAPPING = { }
20
13
 
21
14
  def self.foreman_api
22
15
  foreman_api_connection
@@ -104,9 +97,8 @@ module HammerCLIForeman
104
97
  configurator = BuilderConfigurator.new(searchables, dependency_resolver)
105
98
 
106
99
  builder = ForemanOptionBuilder.new(searchables)
107
- builder.builders = []
100
+ builder.builders = super.builders
108
101
  builder.builders += configurator.builders_for(resource, resource.action(action)) if resource_defined?
109
- builder.builders += super.builders
110
102
  builder
111
103
  end
112
104
 
@@ -294,7 +286,7 @@ module HammerCLIForeman
294
286
  def help
295
287
  return super unless resource
296
288
 
297
- meta = resource.action(action).apidoc[:metadata]
289
+ meta = resource.action(action).apidoc&.dig(:metadata)
298
290
  if meta && meta[:search] && respond_to?(:option_search)
299
291
  self.class.extend_help do |h|
300
292
  h.section(_('Search / Order fields'), id: :search_fields_section) do |h|
@@ -12,7 +12,7 @@ module HammerCLIForeman
12
12
  profile = HammerCLIForeman.record_to_common_format(
13
13
  HammerCLIForeman.foreman_resource(:compute_profiles).call(:show, 'id' => options['option_compute_profile_id'] )
14
14
  )
15
- params['compute_attribute'] = profile['compute_attributes'].select { |hash| hash['compute_resource_id'] == options['option_compute_resource_id']}[0] || {}
15
+ params['compute_attribute'] = profile['compute_attributes'].select { |hash| hash['compute_resource_id'].to_s == options['option_compute_resource_id'].to_s}[0] || {}
16
16
  params['compute_attribute'].delete('attributes') if params['compute_attribute']['attributes']
17
17
  params
18
18
  end
@@ -9,7 +9,7 @@ module HammerCLIForeman
9
9
  field :id, _('Id')
10
10
  field :name, _('Name')
11
11
  end
12
- build_options expand: { except: %i[organizations locations] }, without: %i[organization_id location_id]
12
+ build_options
13
13
  end
14
14
 
15
15
  class InfoCommand < HammerCLIForeman::InfoCommand
@@ -25,13 +25,13 @@ module HammerCLIForeman
25
25
  field :vm_attrs, _('VM attributes')
26
26
  end
27
27
  end
28
- build_options expand: { except: %i[organizations locations] }, without: %i[organization_id location_id]
28
+ build_options
29
29
  end
30
30
 
31
31
  class CreateCommand < HammerCLIForeman::CreateCommand
32
32
  success_message _('Compute profile created.')
33
33
  failure_message _('Could not create a compute profile')
34
- build_options expand: { except: %i[organizations locations] }, without: %i[organization_id location_id]
34
+ build_options
35
35
  end
36
36
 
37
37
  class UpdateCommand < HammerCLIForeman::UpdateCommand
@@ -40,7 +40,7 @@ module HammerCLIForeman
40
40
  validate_options do
41
41
  any(:option_name,:option_id).required
42
42
  end
43
- build_options expand: { except: %i[organizations locations] }, without: %i[organization_id location_id]
43
+ build_options
44
44
  end
45
45
 
46
46
  class DeleteCommand < HammerCLIForeman::DeleteCommand
@@ -49,7 +49,7 @@ module HammerCLIForeman
49
49
  validate_options do
50
50
  any(:option_name,:option_id).required
51
51
  end
52
- build_options expand: { except: %i[organizations locations] }, without: %i[organization_id location_id]
52
+ build_options
53
53
  end
54
54
 
55
55
  lazy_subcommand('values', _("Create update and delete Compute profile values"),
@@ -9,7 +9,8 @@ module HammerCLIForeman
9
9
  [
10
10
  ['cpus', _('Number of CPUs'), { bold: true }],
11
11
  ['memory', _('String, amount of memory, value in bytes'), { bold: true }],
12
- ['cpu_mode', _('Possible values: %{modes}') % { modes: 'default, host-model, host-passthrough' }]
12
+ ['cpu_mode', _('Possible values: %{modes}') % { modes: 'default, host-model, host-passthrough' }],
13
+ ['boot_order', _('Device names to specify the boot order')]
13
14
  ]
14
15
  end
15
16
 
@@ -48,7 +49,8 @@ module HammerCLIForeman
48
49
  Fields::Field.new(:label => _('Status'), :path => [:state]),
49
50
  Fields::Field.new(:label => _('OS Type'), :path => [:os_type]),
50
51
  Fields::Field.new(:label => _('Domain Type'), :path => [:domain_type]),
51
- Fields::Field.new(:label => _('Persistent'), :path => [:persistent])
52
+ Fields::Field.new(:label => _('Persistent'), :path => [:persistent]),
53
+ Fields::List.new(:label => _('Boot order'), :path => [:boot_order])
52
54
  ]
53
55
  end
54
56
 
@@ -25,7 +25,8 @@ module HammerCLIForeman
25
25
  ['scsi_controllers', [_('List with SCSI controllers definitions'),
26
26
  ' type - ' + _('ID of the controller from VMware'),
27
27
  ' key - ' + _('Key of the controller (e.g. 1000)')
28
- ].flatten(1).join("\n")]
28
+ ].flatten(1).join("\n")],
29
+ ['boot_order', _('Device names to specify the boot order')]
29
30
  ]
30
31
  end
31
32
 
@@ -76,7 +77,8 @@ module HammerCLIForeman
76
77
  Fields::Field.new(:label => _('Connection Status'), :path => [:connection_status]),
77
78
  Fields::Field.new(:label => _('Hardware Version'), :path => [:hardware_version]),
78
79
  Fields::Field.new(:label => _('Path'), :path => [:path]),
79
- Fields::Field.new(:label => _('Operating System'), :path => [:operatingsystem])
80
+ Fields::Field.new(:label => _('Operating System'), :path => [:operatingsystem]),
81
+ Fields::List.new(:label => _('Boot order'), :path => [:boot_order])
80
82
  ]
81
83
  end
82
84
 
@@ -107,6 +107,7 @@ module HammerCLIForeman
107
107
  class AssociateVmsCommand < HammerCLIForeman::Command
108
108
  action :associate
109
109
  command_name 'associate-vms'
110
+ option "--vm-id","VM ID", _("Associate a specific VM")
110
111
  success_message _("Virtual machines have been associated.")
111
112
  failure_message _("Could not associate the virtual machines")
112
113
 
@@ -1,28 +1,5 @@
1
1
  module HammerCLIForeman
2
-
3
- module DomainUpdateCreateCommons
4
-
5
- def self.included(base)
6
- base.option "--dns-id", "DNS_ID", _("ID of DNS proxy to use within this domain")
7
- base.option "--dns", "DNS_NAME", _("Name of DNS proxy to use within this domain")
8
- end
9
-
10
- def request_params
11
- params = super
12
- params['domain']["dns_id"] = option_dns_id || dns_id(option_dns)
13
- params
14
- end
15
-
16
- private
17
-
18
- def dns_id(name)
19
- resolver.smart_proxy_id('option_name' => name) if name
20
- end
21
-
22
- end
23
-
24
2
  class Domain < HammerCLIForeman::Command
25
-
26
3
  resource :domains
27
4
 
28
5
  class ListCommand < HammerCLIForeman::ListCommand
@@ -52,24 +29,24 @@ module HammerCLIForeman
52
29
 
53
30
 
54
31
  class CreateCommand < HammerCLIForeman::CreateCommand
55
- include DomainUpdateCreateCommons
56
-
57
32
  success_message _("Domain [%{name}] created.")
58
33
  failure_message _("Could not create the domain")
59
34
 
60
35
  option "--description", "DESC", _("Full name describing the domain"), :attribute_name => :option_fullname
61
- build_options :without => [:domain_parameters_attributes, :fullname, :dns_id]
36
+ build_options :without => [:domain_parameters_attributes, :fullname]
37
+
38
+ extend_with(HammerCLIForeman::CommandExtensions::Domain.new)
62
39
  end
63
40
 
64
41
 
65
42
  class UpdateCommand < HammerCLIForeman::UpdateCommand
66
- include DomainUpdateCreateCommons
67
-
68
43
  success_message _("Domain [%{name}] updated.")
69
44
  failure_message _("Could not update the domain")
70
45
 
71
46
  option "--description", "DESC", _("Full name describing the domain"), :attribute_name => :option_fullname
72
47
  build_options :without => [:domain_parameters_attributes, :fullname]
48
+
49
+ extend_with(HammerCLIForeman::CommandExtensions::Domain.new)
73
50
  end
74
51
 
75
52
 
@@ -97,10 +97,10 @@ module HammerCLIForeman
97
97
 
98
98
  def request_params
99
99
  params = super
100
- if !override?
100
+ unless override?
101
101
  # Clear taxonomies in case the filter is switching override from true to false
102
- params['filter']['location_ids'] = []
103
- params['filter']['organization_ids'] = []
102
+ params['filter']['location_ids'] = [] if !@filter || !@filter['locations'].empty?
103
+ params['filter']['organization_ids'] = [] if !@filter || !@filter['organizations'].empty?
104
104
  end
105
105
  params
106
106
  end
@@ -1,7 +1,5 @@
1
1
  require 'hammer_cli_foreman/fact'
2
2
  require 'hammer_cli_foreman/config_report'
3
- require 'hammer_cli_foreman/puppet_class'
4
- require 'hammer_cli_foreman/smart_class_parameter'
5
3
  require 'hammer_cli_foreman/interface'
6
4
  require 'hammer_cli_foreman/hosts/common_update_options'
7
5
  require 'hammer_cli_foreman/compute_resource/register_compute_resources'
@@ -31,8 +29,6 @@ module HammerCLIForeman
31
29
  end
32
30
 
33
31
  build_options :without => [:include]
34
-
35
- extend_with(HammerCLIForeman::CommandExtensions::PuppetEnvironment.new)
36
32
  end
37
33
 
38
34
 
@@ -58,10 +54,8 @@ module HammerCLIForeman
58
54
  field nil, _("Host Group"), Fields::SingleReference, :key => :hostgroup, :display_field => 'title'
59
55
  field nil, _("Compute Resource"), Fields::SingleReference, :key => :compute_resource
60
56
  field nil, _("Compute Profile"), Fields::SingleReference, :key => :compute_profile, :hide_blank => true
61
- field nil, _("Puppet Environment"), Fields::SingleReference, :key => :environment
62
- field nil, _("Puppet CA Proxy"), Fields::SingleReference, :key => :puppet_ca_proxy
63
- field nil, _("Puppet Master Proxy"), Fields::SingleReference, :key => :puppet_proxy
64
57
  field :certname, _("Cert name")
58
+ field :token, _("Token")
65
59
  field :managed, _("Managed"), Fields::Boolean
66
60
 
67
61
  field :installed_at, _("Installed at"), Fields::Date
@@ -191,23 +185,6 @@ module HammerCLIForeman
191
185
  build_options
192
186
  end
193
187
 
194
-
195
- class PuppetClassesCommand < HammerCLIForeman::ListCommand
196
- command_name "puppet-classes"
197
- resource :puppetclasses
198
-
199
- output HammerCLIForeman::PuppetClass::ListCommand.output_definition
200
-
201
- def send_request
202
- HammerCLIForeman::PuppetClass::ListCommand.unhash_classes(super)
203
- end
204
-
205
- build_options do |o|
206
- o.without(:hostgroup_id, :environment_id)
207
- o.expand.only(:hosts)
208
- end
209
- end
210
-
211
188
  class ConfigReportsCommand < HammerCLIForeman::ListCommand
212
189
  command_name 'config-reports'
213
190
  resource :config_reports, :index
@@ -293,7 +270,6 @@ module HammerCLIForeman
293
270
  end
294
271
  end
295
272
 
296
- extend_with(HammerCLIForeman::CommandExtensions::PuppetEnvironment.new)
297
273
  extend_with(HammerCLIForeman::CommandExtensions::Hosts::Help::Interfaces.new)
298
274
  extend_with(HammerCLIForeman::CommandExtensions::Hosts::Help::ComputeResources.custom(add_host_specific_attrs: true).new)
299
275
  end
@@ -324,7 +300,6 @@ module HammerCLIForeman
324
300
  sources
325
301
  end
326
302
 
327
- extend_with(HammerCLIForeman::CommandExtensions::PuppetEnvironment.new)
328
303
  extend_with(HammerCLIForeman::CommandExtensions::Hosts::Help::Interfaces.new)
329
304
  extend_with(HammerCLIForeman::CommandExtensions::Hosts::Help::ComputeResources.custom(add_host_specific_attrs: true).new)
330
305
  end
@@ -457,15 +432,6 @@ module HammerCLIForeman
457
432
  build_options without: [:power_action]
458
433
  end
459
434
 
460
- class SCParamsCommand < HammerCLIForeman::SmartClassParametersList
461
- build_options_for :hosts
462
-
463
- def validate_options
464
- super
465
- validator.any(:option_host_name, :option_host_id).required
466
- end
467
- end
468
-
469
435
  class RebuildConfigCommand < HammerCLIForeman::SingleResourceCommand
470
436
  action :rebuild_config
471
437
  command_name "rebuild-config"