hammer_cli_foreman 0.17.0 → 0.17.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/doc/host_create.md +2 -2
- data/doc/release_notes.md +5 -0
- data/lib/hammer_cli_foreman.rb +7 -1
- data/lib/hammer_cli_foreman/associating_commands.rb +9 -7
- data/lib/hammer_cli_foreman/combination.rb +4 -0
- data/lib/hammer_cli_foreman/command_extensions.rb +3 -0
- data/lib/hammer_cli_foreman/command_extensions/option_sources.rb +16 -0
- data/lib/hammer_cli_foreman/command_extensions/puppet_environment.rb +23 -0
- data/lib/hammer_cli_foreman/command_extensions/puppet_environments.rb +23 -0
- data/lib/hammer_cli_foreman/commands.rb +27 -16
- data/lib/hammer_cli_foreman/host.rb +3 -0
- data/lib/hammer_cli_foreman/hostgroup.rb +4 -0
- data/lib/hammer_cli_foreman/id_resolver.rb +52 -3
- data/lib/hammer_cli_foreman/location.rb +1 -1
- data/lib/hammer_cli_foreman/option_sources.rb +1 -0
- data/lib/hammer_cli_foreman/option_sources/puppet_environment_params.rb +59 -0
- data/lib/hammer_cli_foreman/organization.rb +5 -1
- data/lib/hammer_cli_foreman/{environment.rb → puppet_environment.rb} +3 -2
- data/lib/hammer_cli_foreman/smart_class_parameter.rb +2 -0
- data/lib/hammer_cli_foreman/smart_proxy.rb +2 -0
- data/lib/hammer_cli_foreman/testing/api_expectations.rb +5 -1
- data/lib/hammer_cli_foreman/version.rb +1 -1
- data/test/functional/hostgroup/create_test.rb +34 -0
- data/test/functional/template_test.rb +42 -10
- data/test/unit/helpers/command.rb +8 -0
- data/test/unit/id_resolver_test.rb +22 -18
- data/test/unit/{environment_test.rb → puppet_environment_test.rb} +10 -8
- metadata +10 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf971111e45df5faaf2deeb304771676bcfa6e8de748e84f094725d309dc2e5b
|
4
|
+
data.tar.gz: 7de28c7b33572b008e5e40eeb417b95f446015a3052c46e888837ae20d5c2af4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5f3df104c1d2555838f0012819795156bbb9a06de830bc18e5ec85537756f9f0520ac3475acc852a1bfcda7846986327280b2f1355f83853bc79f9cf1d58f446
|
7
|
+
data.tar.gz: c273ec8d72e082eba1fd6b81c0312cdc7eb3f0ea0412db12d035b1ede224448ed65d290f6f666f5cc06fe7565dfa2f8724e959965afa526d70098845fd1f2a09
|
data/doc/host_create.md
CHANGED
@@ -39,8 +39,6 @@ Options:
|
|
39
39
|
--domain-id DOMAIN_ID Numerical ID or domain name
|
40
40
|
--enabled ENABLED Include this host within Foreman reporting
|
41
41
|
One of true/false, yes/no, 1/0.
|
42
|
-
--environment ENVIRONMENT_NAME Environment name
|
43
|
-
--environment-id ENVIRONMENT_ID
|
44
42
|
--hostgroup HOSTGROUP_NAME Hostgroup name
|
45
43
|
--hostgroup-id HOSTGROUP_ID
|
46
44
|
--hostgroup-title HOSTGROUP_TITLE Hostgroup title
|
@@ -96,6 +94,8 @@ Options:
|
|
96
94
|
--puppet-ca-proxy-id PUPPET_CA_PROXY_ID Puppet CA proxy ID
|
97
95
|
--puppet-class-ids PUPPET_CLASS_IDS Comma separated list of values. Values containing comma should be quoted or escaped with backslash
|
98
96
|
--puppet-classes PUPPET_CLASS_NAMES Comma separated list of values. Values containing comma should be quoted or escaped with backslash
|
97
|
+
--puppet-environment PUPPET_ENVIRONMENT_NAME Puppet Environment name
|
98
|
+
--puppet-environment-id PUPPET_ENVIRONMENT_ID
|
99
99
|
--puppet-proxy PUPPET_PROXY_NAME
|
100
100
|
--puppet-proxy-id PUPPET_PROXY_ID Puppet proxy ID
|
101
101
|
--pxe-loader PXE_LOADER DHCP filename option (Grub2/PXELinux by default)
|
data/doc/release_notes.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
Release notes
|
2
2
|
=============
|
3
|
+
### 0.17.1 (2019-07-10)
|
4
|
+
* Consistent puppet environment naming in hammer ([#23204](http://projects.theforeman.org/issues/23204))
|
5
|
+
* Create hostgroup with puppet classes ([#24717](http://projects.theforeman.org/issues/24717))
|
6
|
+
* Fix help on commands with no resource ([#26865](http://projects.theforeman.org/issues/26865))
|
7
|
+
|
3
8
|
### 0.17.0 (2019-04-24)
|
4
9
|
* Add public key option in create compute resource CLI ([#25491](http://projects.theforeman.org/issues/25491))
|
5
10
|
* Background template rendering ([PR #414](https://github.com/theforeman/hammer-cli-foreman/pull/414)) ([#26355](http://projects.theforeman.org/issues/26355))
|
data/lib/hammer_cli_foreman.rb
CHANGED
@@ -22,6 +22,7 @@ module HammerCLIForeman
|
|
22
22
|
require 'hammer_cli_foreman/logger'
|
23
23
|
|
24
24
|
begin
|
25
|
+
require 'hammer_cli_foreman/command_extensions'
|
25
26
|
require 'hammer_cli_foreman/commands'
|
26
27
|
require 'hammer_cli_foreman/associating_commands'
|
27
28
|
require 'hammer_cli_foreman/references'
|
@@ -58,7 +59,12 @@ module HammerCLIForeman
|
|
58
59
|
)
|
59
60
|
|
60
61
|
HammerCLI::MainCommand.lazy_subcommand('environment', _("Manipulate environments"),
|
61
|
-
'HammerCLIForeman::
|
62
|
+
'HammerCLIForeman::PuppetEnvironment', 'hammer_cli_foreman/puppet_environment',
|
63
|
+
:warning => _('%{env} command is deprecated and will be removed in one of the future versions. Please use %{puppet_env} command instead.') % {:env => 'environment', :puppet_env => 'puppet-environment'}
|
64
|
+
)
|
65
|
+
|
66
|
+
HammerCLI::MainCommand.lazy_subcommand('puppet-environment', _("Manipulate Puppet environments"),
|
67
|
+
'HammerCLIForeman::PuppetEnvironment', 'hammer_cli_foreman/puppet_environment'
|
62
68
|
)
|
63
69
|
|
64
70
|
HammerCLI::MainCommand.lazy_subcommand('fact', _("Search facts"),
|
@@ -53,23 +53,27 @@ module HammerCLIForeman
|
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
|
-
module
|
56
|
+
module PuppetEnvironment
|
57
57
|
extend CommandExtension
|
58
58
|
|
59
|
-
class
|
59
|
+
class AddPuppetEnvironmentCommand < HammerCLIForeman::AddAssociatedCommand
|
60
60
|
associated_resource :environments
|
61
|
-
desc _(
|
61
|
+
desc _('Associate a Puppet environment')
|
62
62
|
|
63
63
|
success_message _("The environment has been associated.")
|
64
64
|
failure_message _("Could not associate the environment")
|
65
|
+
|
66
|
+
extend_with(HammerCLIForeman::CommandExtensions::PuppetEnvironment.new)
|
65
67
|
end
|
66
68
|
|
67
|
-
class
|
69
|
+
class RemovePuppetEnvironmentCommand < HammerCLIForeman::RemoveAssociatedCommand
|
68
70
|
associated_resource :environments
|
69
|
-
desc _(
|
71
|
+
desc _('Disassociate a Puppet environment')
|
70
72
|
|
71
73
|
success_message _("The environment has been disassociated.")
|
72
74
|
failure_message _("Could not disassociate the environment")
|
75
|
+
|
76
|
+
extend_with(HammerCLIForeman::CommandExtensions::PuppetEnvironment.new)
|
73
77
|
end
|
74
78
|
end
|
75
79
|
|
@@ -372,5 +376,3 @@ module HammerCLIForeman
|
|
372
376
|
|
373
377
|
end
|
374
378
|
end
|
375
|
-
|
376
|
-
|
@@ -58,6 +58,8 @@ module HammerCLIForeman
|
|
58
58
|
o.expand(:all).except(:config_templates,)
|
59
59
|
o.without(:config_template_id)
|
60
60
|
end
|
61
|
+
|
62
|
+
extend_with(HammerCLIForeman::CommandExtensions::PuppetEnvironment.new)
|
61
63
|
end
|
62
64
|
|
63
65
|
class CreateCombination < HammerCLIForeman::CreateCommand
|
@@ -70,6 +72,8 @@ module HammerCLIForeman
|
|
70
72
|
o.expand(:all).except(:config_templates,)
|
71
73
|
o.without(:config_template_id)
|
72
74
|
end
|
75
|
+
|
76
|
+
extend_with(HammerCLIForeman::CommandExtensions::PuppetEnvironment.new)
|
73
77
|
end
|
74
78
|
|
75
79
|
class DeleteCombination < HammerCLIForeman::DeleteCommand
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module HammerCLIForeman
|
2
|
+
module CommandExtensions
|
3
|
+
class OptionSources < HammerCLI::CommandExtensions
|
4
|
+
inheritable true
|
5
|
+
|
6
|
+
option_sources do |sources, command|
|
7
|
+
id_resolution = HammerCLI::Options::ProcessorList.new(name: 'IdResolution')
|
8
|
+
id_resolution << HammerCLIForeman::OptionSources::IdParams.new(command)
|
9
|
+
id_resolution << HammerCLIForeman::OptionSources::IdsParams.new(command)
|
10
|
+
id_resolution << HammerCLIForeman::OptionSources::SelfParam.new(command)
|
11
|
+
|
12
|
+
sources << id_resolution
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module HammerCLIForeman
|
2
|
+
module CommandExtensions
|
3
|
+
class PuppetEnvironment < HammerCLI::CommandExtensions
|
4
|
+
# Remove when support of --environment options is ended.
|
5
|
+
option '--environment', 'ENVIRONMENT_NAME', _('Environment name'),
|
6
|
+
attribute_name: :option_environment_name,
|
7
|
+
deprecated: { '--environment' => _('Use --puppet-environment instead') }
|
8
|
+
option '--environment-id', 'ENVIRONMENT_ID', _(''),
|
9
|
+
format: HammerCLI::Options::Normalizers::Number.new,
|
10
|
+
attribute_name: :option_environment_id,
|
11
|
+
deprecated: { '--environment-id' => _('Use --puppet-environment-id instead') }
|
12
|
+
|
13
|
+
option_sources do |sources, command|
|
14
|
+
sources.find_by_name('IdResolution').insert_relative(
|
15
|
+
:after,
|
16
|
+
'IdParams',
|
17
|
+
HammerCLIForeman::OptionSources::PuppetEnvironmentParams.new(command)
|
18
|
+
)
|
19
|
+
sources
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module HammerCLIForeman
|
2
|
+
module CommandExtensions
|
3
|
+
class PuppetEnvironments < HammerCLI::CommandExtensions
|
4
|
+
# Remove when support of --environments options is ended.
|
5
|
+
option '--environments', 'ENVIRONMENT_NAMES', _(''),
|
6
|
+
attribute_name: :option_environment_names,
|
7
|
+
deprecated: { '--environments' => _('Use --puppet-environments instead') }
|
8
|
+
option '--environment-ids', 'ENVIRONMENT_IDS', _('Environment IDs'),
|
9
|
+
format: HammerCLI::Options::Normalizers::List.new,
|
10
|
+
attribute_name: :option_environment_ids,
|
11
|
+
deprecated: { '--environment-ids' => _('Use --puppet-environment-ids instead') }
|
12
|
+
|
13
|
+
option_sources do |sources, command|
|
14
|
+
sources.find_by_name('IdResolution').insert_relative(
|
15
|
+
:after,
|
16
|
+
'IdsParams',
|
17
|
+
HammerCLIForeman::OptionSources::PuppetEnvironmentParams.new(command)
|
18
|
+
)
|
19
|
+
sources
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -8,7 +8,14 @@ module HammerCLIForeman
|
|
8
8
|
:ptable => :partition_table,
|
9
9
|
:ptables => :partition_tables,
|
10
10
|
:puppetclass => :puppet_class,
|
11
|
-
:puppetclasses => :puppet_classes
|
11
|
+
:puppetclasses => :puppet_classes,
|
12
|
+
:environment => :puppet_environment,
|
13
|
+
:environments => :puppet_environments
|
14
|
+
}
|
15
|
+
|
16
|
+
RESOURCE_ALIAS_NAME_MAPPING = {
|
17
|
+
environment: :puppet_environment,
|
18
|
+
environments: :puppet_environments
|
12
19
|
}
|
13
20
|
|
14
21
|
def self.foreman_api
|
@@ -107,6 +114,17 @@ module HammerCLIForeman
|
|
107
114
|
HammerCLIForeman::RESOURCE_NAME_MAPPING
|
108
115
|
end
|
109
116
|
|
117
|
+
def self.resource_alias_name_mapping
|
118
|
+
HammerCLIForeman::RESOURCE_ALIAS_NAME_MAPPING
|
119
|
+
end
|
120
|
+
|
121
|
+
def self.alias_name_for_resource(resource, singular: true)
|
122
|
+
return nil if resource.nil?
|
123
|
+
return resource_alias_name_mapping[resource.name.to_sym] unless singular
|
124
|
+
|
125
|
+
resource_alias_name_mapping[resource.singular_name.to_sym]
|
126
|
+
end
|
127
|
+
|
110
128
|
def self.build_options(builder_params={})
|
111
129
|
builder_params[:resource_mapping] ||= resource_name_mapping
|
112
130
|
builder_params = HammerCLIForeman::BuildParams.new(builder_params)
|
@@ -121,6 +139,7 @@ module HammerCLIForeman
|
|
121
139
|
end
|
122
140
|
|
123
141
|
def get_resource_id(resource, options={})
|
142
|
+
resource_alias = self.class.alias_name_for_resource(resource)
|
124
143
|
all_opts = options[:all_options] || all_options
|
125
144
|
if options[:scoped]
|
126
145
|
opts = resolver.scoped_options(resource.singular_name, all_opts, :single)
|
@@ -128,7 +147,7 @@ module HammerCLIForeman
|
|
128
147
|
opts = all_opts
|
129
148
|
end
|
130
149
|
begin
|
131
|
-
resolver.send("#{resource.singular_name}_id", opts)
|
150
|
+
resolver.send("#{resource_alias || resource.singular_name}_id", opts)
|
132
151
|
rescue HammerCLIForeman::MissingSearchOptions => e
|
133
152
|
if (options[:required] == true || resource_search_requested(resource, opts))
|
134
153
|
logger.info "Error occured while searching for #{resource.singular_name}"
|
@@ -138,10 +157,11 @@ module HammerCLIForeman
|
|
138
157
|
end
|
139
158
|
|
140
159
|
def get_resource_ids(resource, options={})
|
160
|
+
resource_alias = self.class.alias_name_for_resource(resource)
|
141
161
|
all_opts = options[:all_options] || all_options
|
142
162
|
opts = resolver.scoped_options(resource.singular_name, all_opts, :multi)
|
143
163
|
begin
|
144
|
-
resolver.send("#{resource.singular_name}_ids", opts)
|
164
|
+
resolver.send("#{resource_alias || resource.singular_name}_ids", opts)
|
145
165
|
rescue HammerCLIForeman::MissingSearchOptions => e
|
146
166
|
if (options[:required] == true || resource_search_requested(resource, opts, true))
|
147
167
|
logger.info "Error occured while searching for #{resource.name}"
|
@@ -188,16 +208,7 @@ module HammerCLIForeman
|
|
188
208
|
params_pruned
|
189
209
|
end
|
190
210
|
|
191
|
-
|
192
|
-
sources = super
|
193
|
-
|
194
|
-
id_resolution = HammerCLI::Options::ProcessorList.new(name: 'IdResolution')
|
195
|
-
id_resolution << HammerCLIForeman::OptionSources::IdParams.new(self)
|
196
|
-
id_resolution << HammerCLIForeman::OptionSources::IdsParams.new(self)
|
197
|
-
id_resolution << HammerCLIForeman::OptionSources::SelfParam.new(self)
|
198
|
-
|
199
|
-
sources << id_resolution
|
200
|
-
end
|
211
|
+
extend_with(HammerCLIForeman::CommandExtensions::OptionSources.new)
|
201
212
|
|
202
213
|
private
|
203
214
|
|
@@ -254,9 +265,9 @@ module HammerCLIForeman
|
|
254
265
|
end
|
255
266
|
|
256
267
|
def help
|
257
|
-
|
258
|
-
return super if meta.nil?
|
268
|
+
return super unless resource
|
259
269
|
|
270
|
+
meta = resource.action(action).apidoc[:metadata]
|
260
271
|
if meta && meta[:search] && respond_to?(:option_search)
|
261
272
|
self.class.extend_help do |h|
|
262
273
|
h.section(_('Search fields'), id: :search_fields_section) do |h|
|
@@ -303,7 +314,7 @@ module HammerCLIForeman
|
|
303
314
|
]
|
304
315
|
end
|
305
316
|
end
|
306
|
-
|
317
|
+
|
307
318
|
def search_field_help_value(field)
|
308
319
|
if field[:values] && field[:values].is_a?(Array)
|
309
320
|
_('Values') + ': ' + field[:values].join(', ')
|
@@ -300,6 +300,7 @@ module HammerCLIForeman
|
|
300
300
|
end
|
301
301
|
end
|
302
302
|
|
303
|
+
extend_with(HammerCLIForeman::CommandExtensions::PuppetEnvironment.new)
|
303
304
|
end
|
304
305
|
|
305
306
|
class UpdateCommand < HammerCLIForeman::UpdateCommand
|
@@ -308,6 +309,8 @@ module HammerCLIForeman
|
|
308
309
|
|
309
310
|
include HammerCLIForeman::Hosts::CommonUpdateOptions
|
310
311
|
include HammerCLIForeman::Hosts::CommonUpdateHelp
|
312
|
+
|
313
|
+
extend_with(HammerCLIForeman::CommandExtensions::PuppetEnvironment.new)
|
311
314
|
end
|
312
315
|
|
313
316
|
|
@@ -115,6 +115,8 @@ module HammerCLIForeman
|
|
115
115
|
failure_message _("Could not create the hostgroup")
|
116
116
|
|
117
117
|
build_options
|
118
|
+
|
119
|
+
extend_with(HammerCLIForeman::CommandExtensions::PuppetEnvironment.new)
|
118
120
|
end
|
119
121
|
|
120
122
|
|
@@ -125,6 +127,8 @@ module HammerCLIForeman
|
|
125
127
|
failure_message _("Could not update the hostgroup")
|
126
128
|
|
127
129
|
build_options
|
130
|
+
|
131
|
+
extend_with(HammerCLIForeman::CommandExtensions::PuppetEnvironment.new)
|
128
132
|
end
|
129
133
|
|
130
134
|
|
@@ -38,7 +38,8 @@ module HammerCLIForeman
|
|
38
38
|
:compute_resource => [ s_name(_("Compute resource name")) ],
|
39
39
|
:compute_profile => [ s_name(_("Compute profile name")) ],
|
40
40
|
:domain => [ s_name(_("Domain name")) ],
|
41
|
-
:environment =>
|
41
|
+
:environment => [s_name(_('Puppet environment name'))],
|
42
|
+
:puppet_environment => [s_name(_('Puppet environment name'))],
|
42
43
|
:fact_value => [],
|
43
44
|
:filter => [],
|
44
45
|
:host => [ s_name(_("Host name")) ],
|
@@ -77,6 +78,7 @@ module HammerCLIForeman
|
|
77
78
|
end
|
78
79
|
|
79
80
|
class IdResolver
|
81
|
+
ALL_PER_PAGE = 1000
|
80
82
|
|
81
83
|
attr_reader :api
|
82
84
|
|
@@ -121,6 +123,22 @@ module HammerCLIForeman
|
|
121
123
|
options[HammerCLI.option_accessor_name("ids")] || find_puppetclasses(options).collect { |c| c['id'] }
|
122
124
|
end
|
123
125
|
|
126
|
+
def environment_id(options)
|
127
|
+
puppet_environment_id(options)
|
128
|
+
end
|
129
|
+
|
130
|
+
def puppet_environment_id(options)
|
131
|
+
get_id(:environments, options)
|
132
|
+
end
|
133
|
+
|
134
|
+
def environment_ids(options)
|
135
|
+
puppet_environment_ids(options)
|
136
|
+
end
|
137
|
+
|
138
|
+
def puppet_environment_ids(options)
|
139
|
+
get_ids(:environments, options)
|
140
|
+
end
|
141
|
+
|
124
142
|
def searchables(resource)
|
125
143
|
resource = @api.resource(resource) if resource.is_a? Symbol
|
126
144
|
@searchables.for(resource)
|
@@ -218,12 +236,28 @@ module HammerCLIForeman
|
|
218
236
|
search_options[param.name] ||= send(param.name, scoped_options(*scoped_options_params))
|
219
237
|
end
|
220
238
|
search_options = route_options(options, action).merge(search_options)
|
221
|
-
|
222
|
-
results = resource
|
239
|
+
expected_count = expected_record_count(options, resource, :multi)
|
240
|
+
results = retrieve_all(resource, action_name, search_options, expected_count)
|
223
241
|
results = HammerCLIForeman.collection_to_common_format(results)
|
224
242
|
results
|
225
243
|
end
|
226
244
|
|
245
|
+
def retrieve_all(resource, action, search_options, expected_count = 1)
|
246
|
+
return resource.call(action, search_options) unless action == :index
|
247
|
+
|
248
|
+
search_options[:per_page] = ALL_PER_PAGE
|
249
|
+
search_options[:page] = 1
|
250
|
+
data = resource.call(action, search_options)
|
251
|
+
last_page = ([expected_count, 1].max.to_f / ALL_PER_PAGE).ceil
|
252
|
+
all = data
|
253
|
+
while search_options[:page] != last_page
|
254
|
+
search_options[:page] += 1
|
255
|
+
data = resource.call(action, search_options)
|
256
|
+
all = deep_merge(all, data)
|
257
|
+
end
|
258
|
+
all
|
259
|
+
end
|
260
|
+
|
227
261
|
def route_options(options, action)
|
228
262
|
return {} if action.routes.any? { |r| r.params_in_path.empty? }
|
229
263
|
|
@@ -343,6 +377,21 @@ module HammerCLIForeman
|
|
343
377
|
{}
|
344
378
|
end
|
345
379
|
|
380
|
+
private
|
381
|
+
|
382
|
+
def deep_merge(dest, src)
|
383
|
+
dest = dest.clone
|
384
|
+
dest.merge!(src) do |_key, old_val, new_val|
|
385
|
+
if old_val.is_a?(Hash) && new_val.is_a?(Hash)
|
386
|
+
deep_merge(old_val, new_val)
|
387
|
+
elsif old_val.is_a?(Array) && new_val.is_a?(Array)
|
388
|
+
old_val += new_val
|
389
|
+
else
|
390
|
+
new_val
|
391
|
+
end
|
392
|
+
end
|
393
|
+
end
|
394
|
+
|
346
395
|
end
|
347
396
|
|
348
397
|
end
|
@@ -106,7 +106,7 @@ module HammerCLIForeman
|
|
106
106
|
end
|
107
107
|
|
108
108
|
HammerCLIForeman::AssociatingCommands::Hostgroup.extend_command(self)
|
109
|
-
HammerCLIForeman::AssociatingCommands::
|
109
|
+
HammerCLIForeman::AssociatingCommands::PuppetEnvironment.extend_command(self)
|
110
110
|
HammerCLIForeman::AssociatingCommands::Domain.extend_command(self)
|
111
111
|
HammerCLIForeman::AssociatingCommands::Medium.extend_command(self)
|
112
112
|
HammerCLIForeman::AssociatingCommands::Subnet.extend_command(self)
|
@@ -2,3 +2,4 @@ require 'hammer_cli_foreman/option_sources/id_params'
|
|
2
2
|
require 'hammer_cli_foreman/option_sources/ids_params'
|
3
3
|
require 'hammer_cli_foreman/option_sources/self_param'
|
4
4
|
require 'hammer_cli_foreman/option_sources/user_params'
|
5
|
+
require 'hammer_cli_foreman/option_sources/puppet_environment_params'
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module HammerCLIForeman
|
2
|
+
module OptionSources
|
3
|
+
class PuppetEnvironmentParams < HammerCLI::Options::Sources::Base
|
4
|
+
def initialize(command)
|
5
|
+
@command = command
|
6
|
+
end
|
7
|
+
|
8
|
+
def get_options(_defined_options, result)
|
9
|
+
if result['option_environment_id'].nil? &&
|
10
|
+
(@command.respond_to?(:option_environment_id) ||
|
11
|
+
@command.respond_to?(:option_environment_name))
|
12
|
+
put_puppet_environment_id(result)
|
13
|
+
end
|
14
|
+
if result['option_environment_ids'].nil? &&
|
15
|
+
(@command.respond_to?(:option_environment_ids) ||
|
16
|
+
@command.respond_to?(:option_environment_names))
|
17
|
+
put_puppet_environment_ids(result)
|
18
|
+
end
|
19
|
+
result
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def put_puppet_environment_id(result)
|
25
|
+
if result['option_environment_name'].nil?
|
26
|
+
if @command.option_environment_id
|
27
|
+
result['option_environment_id'] = @command.option_environment_id
|
28
|
+
elsif @command.option_environment_name
|
29
|
+
result['option_environment_name'] = @command.option_environment_name
|
30
|
+
result['option_environment_id'] = @command.resolver.puppet_environment_id(
|
31
|
+
@command.resolver.scoped_options('environment', result, :single)
|
32
|
+
)
|
33
|
+
end
|
34
|
+
else
|
35
|
+
result['option_environment_id'] = @command.resolver.puppet_environment_id(
|
36
|
+
@command.resolver.scoped_options('environment', result, :single)
|
37
|
+
)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def put_puppet_environment_ids(result)
|
42
|
+
if result['option_environment_names'].nil?
|
43
|
+
if @command.option_environment_ids
|
44
|
+
result['option_environment_ids'] = @command.option_environment_ids
|
45
|
+
elsif @command.option_environment_names
|
46
|
+
result['option_environment_names'] = @command.option_environment_names
|
47
|
+
result['option_environment_ids'] = @command.resolver.puppet_environment_ids(
|
48
|
+
@command.resolver.scoped_options('environment', result, :multi)
|
49
|
+
)
|
50
|
+
end
|
51
|
+
else
|
52
|
+
result['option_environment_ids'] = @command.resolver.puppet_environment_ids(
|
53
|
+
@command.resolver.scoped_options('environment', result, :multi)
|
54
|
+
)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -57,6 +57,8 @@ module HammerCLIForeman
|
|
57
57
|
failure_message _("Could not create the organization")
|
58
58
|
|
59
59
|
build_options
|
60
|
+
|
61
|
+
extend_with(HammerCLIForeman::CommandExtensions::PuppetEnvironments.new)
|
60
62
|
end
|
61
63
|
|
62
64
|
|
@@ -69,6 +71,8 @@ module HammerCLIForeman
|
|
69
71
|
failure_message _("Could not update the organization")
|
70
72
|
|
71
73
|
build_options
|
74
|
+
|
75
|
+
extend_with(HammerCLIForeman::CommandExtensions::PuppetEnvironments.new)
|
72
76
|
end
|
73
77
|
|
74
78
|
|
@@ -108,7 +112,7 @@ module HammerCLIForeman
|
|
108
112
|
|
109
113
|
|
110
114
|
HammerCLIForeman::AssociatingCommands::Hostgroup.extend_command(self)
|
111
|
-
HammerCLIForeman::AssociatingCommands::
|
115
|
+
HammerCLIForeman::AssociatingCommands::PuppetEnvironment.extend_command(self)
|
112
116
|
HammerCLIForeman::AssociatingCommands::Domain.extend_command(self)
|
113
117
|
HammerCLIForeman::AssociatingCommands::Medium.extend_command(self)
|
114
118
|
HammerCLIForeman::AssociatingCommands::Subnet.extend_command(self)
|
@@ -1,10 +1,9 @@
|
|
1
1
|
require 'hammer_cli'
|
2
2
|
require 'hammer_cli_foreman/smart_class_parameter'
|
3
3
|
|
4
|
-
|
5
4
|
module HammerCLIForeman
|
6
5
|
|
7
|
-
class
|
6
|
+
class PuppetEnvironment < HammerCLIForeman::Command
|
8
7
|
|
9
8
|
resource :environments
|
10
9
|
|
@@ -55,6 +54,8 @@ module HammerCLIForeman
|
|
55
54
|
|
56
55
|
class SCParamsCommand < HammerCLIForeman::SmartClassParametersList
|
57
56
|
build_options_for :environments
|
57
|
+
|
58
|
+
extend_with(HammerCLIForeman::CommandExtensions::PuppetEnvironment.new)
|
58
59
|
end
|
59
60
|
|
60
61
|
|
@@ -173,7 +173,11 @@ module HammerCLIForeman
|
|
173
173
|
end
|
174
174
|
|
175
175
|
def index_response(items, options={})
|
176
|
-
cnt = items.
|
176
|
+
cnt = if items.is_a?(Hash)
|
177
|
+
items.keys.count
|
178
|
+
else
|
179
|
+
items.length
|
180
|
+
end
|
177
181
|
{
|
178
182
|
"total" => options.fetch(:total, cnt),
|
179
183
|
"subtotal" => options.fetch(:subtotal, cnt),
|
@@ -246,6 +246,40 @@ module HammerCLIForeman
|
|
246
246
|
run_cmd(%w(hostgroup create --name hg1 --puppet-classes pc1,pc2))
|
247
247
|
end
|
248
248
|
|
249
|
+
it 'allows puppet class names that exceeds entries_per_page' do
|
250
|
+
search_objects = []
|
251
|
+
response_objects = []
|
252
|
+
ids = []
|
253
|
+
names = []
|
254
|
+
1100.times.with_object('pc').each do |id, name|
|
255
|
+
next_name = "\"#{name}#{id}\""
|
256
|
+
search_objects << "name = #{next_name}"
|
257
|
+
response_objects << { 'id' => id, 'name' => next_name }
|
258
|
+
ids << id
|
259
|
+
names << next_name
|
260
|
+
end
|
261
|
+
|
262
|
+
api_expects(:puppetclasses, :index) do |p|
|
263
|
+
p[:search] == search_objects.join(' or ') &&
|
264
|
+
p[:page].to_i == 1 &&
|
265
|
+
p[:per_page].to_i == HammerCLIForeman::IdResolver::ALL_PER_PAGE
|
266
|
+
end.returns(
|
267
|
+
index_response('puppetclasses' => response_objects[0...1000]))
|
268
|
+
|
269
|
+
api_expects(:puppetclasses, :index) do |p|
|
270
|
+
p[:search] == search_objects.join(' or ') &&
|
271
|
+
p[:page].to_i == 2 &&
|
272
|
+
p[:per_page].to_i == HammerCLIForeman::IdResolver::ALL_PER_PAGE
|
273
|
+
end.returns(index_response('puppetclasses' => response_objects[1000...1100]))
|
274
|
+
|
275
|
+
api_expects(:hostgroups, :create) do |p|
|
276
|
+
p['hostgroup']['name'] == 'hg1' &&
|
277
|
+
p['hostgroup']['puppetclass_ids'] == ids
|
278
|
+
end
|
279
|
+
|
280
|
+
run_cmd(%w[hostgroup create --name hg1 --puppet-classes] << names.join(',').tr('"', ''))
|
281
|
+
end
|
282
|
+
|
249
283
|
it 'allows puppet proxy id' do
|
250
284
|
api_expects(:hostgroups, :create).with_params({
|
251
285
|
:hostgroup => {
|
@@ -129,14 +129,45 @@ describe 'template' do
|
|
129
129
|
@cmd = %w(template combination)
|
130
130
|
end
|
131
131
|
|
132
|
-
it 'should create new combination' do
|
132
|
+
it 'should create new combination with warning' do
|
133
133
|
params = ['create','--provisioning-template-id=10', '--hostgroup-id=1', '--environment-id=1']
|
134
134
|
expected_result = success_result("Template combination created.\n")
|
135
|
+
expected_result.expected_err = "Warning: Option --environment-id is deprecated. Use --puppet-environment-id instead\n"
|
136
|
+
api_expects(:template_combinations, :create, 'Create template combination') do |params|
|
137
|
+
params['provisioning_template_id'] == 10 &&
|
138
|
+
params['hostgroup_id'] == 1 &&
|
139
|
+
params['environment_id'] == 1 &&
|
140
|
+
params['template_combination'] == {'environment_id' => 1, 'hostgroup_id' => 1}
|
141
|
+
end
|
142
|
+
|
143
|
+
result = run_cmd(@cmd + params)
|
144
|
+
assert_cmd(expected_result, result)
|
145
|
+
end
|
146
|
+
|
147
|
+
it 'should create new combination' do
|
148
|
+
params = ['create','--provisioning-template-id=10', '--hostgroup-id=1', '--puppet-environment-id=1']
|
149
|
+
expected_result = success_result("Template combination created.\n")
|
135
150
|
api_expects(:template_combinations, :create, 'Create template combination') do |params|
|
136
|
-
params[
|
137
|
-
params[
|
138
|
-
|
139
|
-
|
151
|
+
params['provisioning_template_id'] == 10 &&
|
152
|
+
params['hostgroup_id'] == 1 &&
|
153
|
+
params['environment_id'] == 1 &&
|
154
|
+
params['template_combination'] == {'environment_id' => 1, 'hostgroup_id' => 1}
|
155
|
+
end
|
156
|
+
|
157
|
+
result = run_cmd(@cmd + params)
|
158
|
+
assert_cmd(expected_result, result)
|
159
|
+
end
|
160
|
+
|
161
|
+
it 'should update combination with warning' do
|
162
|
+
params = ['update', '--id=3', '--provisioning-template-id=10', '--hostgroup-id=1', '--environment-id=1']
|
163
|
+
expected_result = success_result("Template combination updated.\n")
|
164
|
+
expected_result.expected_err = "Warning: Option --environment-id is deprecated. Use --puppet-environment-id instead\n"
|
165
|
+
api_expects(:template_combinations, :update, 'Update template combination') do |params|
|
166
|
+
params['id'] == '3' &&
|
167
|
+
params['provisioning_template_id'] == 10 &&
|
168
|
+
params['hostgroup_id'] == 1 &&
|
169
|
+
params['environment_id'] == 1 &&
|
170
|
+
params['template_combination'] == { 'environment_id' => 1, 'hostgroup_id' => 1 }
|
140
171
|
end
|
141
172
|
|
142
173
|
result = run_cmd(@cmd + params)
|
@@ -144,13 +175,14 @@ describe 'template' do
|
|
144
175
|
end
|
145
176
|
|
146
177
|
it 'should update combination' do
|
147
|
-
params = ['update','--id=3','--provisioning-template-id=10', '--hostgroup-id=1', '--environment-id=1']
|
178
|
+
params = ['update', '--id=3', '--provisioning-template-id=10', '--hostgroup-id=1', '--puppet-environment-id=1']
|
148
179
|
expected_result = success_result("Template combination updated.\n")
|
149
180
|
api_expects(:template_combinations, :update, 'Update template combination') do |params|
|
150
|
-
params[
|
151
|
-
params[
|
152
|
-
params[
|
153
|
-
params[
|
181
|
+
params['id'] == '3' &&
|
182
|
+
params['provisioning_template_id'] == 10 &&
|
183
|
+
params['hostgroup_id'] == 1 &&
|
184
|
+
params['environment_id'] == 1 &&
|
185
|
+
params['template_combination'] == { 'environment_id' => 1, 'hostgroup_id' => 1 }
|
154
186
|
end
|
155
187
|
|
156
188
|
result = run_cmd(@cmd + params)
|
@@ -17,6 +17,14 @@ class IdResolverTestProxy
|
|
17
17
|
@original_resolver.searchables(resource)
|
18
18
|
end
|
19
19
|
|
20
|
+
def puppet_environment_id(options)
|
21
|
+
environment_id(options)
|
22
|
+
end
|
23
|
+
|
24
|
+
def puppet_environment_ids(options)
|
25
|
+
environment_ids(options)
|
26
|
+
end
|
27
|
+
|
20
28
|
protected
|
21
29
|
|
22
30
|
def define_id_finders
|
@@ -122,14 +122,14 @@ describe HammerCLIForeman::IdResolver do
|
|
122
122
|
let(:resolver_run) { proc { resolver.user_id({"option_name" => "John Doe"}) } }
|
123
123
|
|
124
124
|
it "raises exception when no resource is found" do
|
125
|
-
ResourceMocks.mock_action_call(:users, :index, [])
|
125
|
+
ResourceMocks.mock_action_call(:users, :index, index_response([]))
|
126
126
|
|
127
127
|
err = resolver_run.must_raise HammerCLIForeman::ResolverError
|
128
128
|
err.message.must_equal "user not found."
|
129
129
|
end
|
130
130
|
|
131
131
|
it "raises exception when multiple resources are found" do
|
132
|
-
ResourceMocks.mock_action_call(:users, :index, [john, jane])
|
132
|
+
ResourceMocks.mock_action_call(:users, :index, index_response([john, jane]))
|
133
133
|
|
134
134
|
err = resolver_run.must_raise HammerCLIForeman::ResolverError
|
135
135
|
err.message.must_equal "Found more than one user."
|
@@ -156,7 +156,7 @@ describe HammerCLIForeman::IdResolver do
|
|
156
156
|
end
|
157
157
|
|
158
158
|
it "returns id of the resource" do
|
159
|
-
ResourceMocks.mock_action_call(:users, :index, [john])
|
159
|
+
ResourceMocks.mock_action_call(:users, :index, index_response([john]))
|
160
160
|
|
161
161
|
resolver_run.call.must_equal john_id
|
162
162
|
end
|
@@ -167,16 +167,16 @@ describe HammerCLIForeman::IdResolver do
|
|
167
167
|
let(:resolver_run) { proc { resolver.post_id({"option_name" => "Post 11", "option_user_name" => "John Doe"}) } }
|
168
168
|
|
169
169
|
it "raises exception when no resource is found" do
|
170
|
-
ResourceMocks.mock_action_call(:posts, :index, [])
|
171
|
-
ResourceMocks.mock_action_call(:users, :index, [])
|
170
|
+
ResourceMocks.mock_action_call(:posts, :index, index_response([]))
|
171
|
+
ResourceMocks.mock_action_call(:users, :index, index_response([]))
|
172
172
|
|
173
173
|
err = resolver_run.must_raise HammerCLIForeman::ResolverError
|
174
174
|
err.message.must_equal "user not found."
|
175
175
|
end
|
176
176
|
|
177
177
|
it "raises exception when multiple resources are found" do
|
178
|
-
ResourceMocks.mock_action_call(:posts, :index, [])
|
179
|
-
ResourceMocks.mock_action_call(:users, :index, [john, jane])
|
178
|
+
ResourceMocks.mock_action_call(:posts, :index, index_response([]))
|
179
|
+
ResourceMocks.mock_action_call(:users, :index, index_response([john, jane]))
|
180
180
|
|
181
181
|
err = resolver_run.must_raise HammerCLIForeman::ResolverError
|
182
182
|
err.message.must_equal "Found more than one user."
|
@@ -199,12 +199,16 @@ describe HammerCLIForeman::IdResolver do
|
|
199
199
|
end
|
200
200
|
|
201
201
|
it "returns id of the resource" do
|
202
|
-
ResourceMocks.mock_action_call(:posts, :index,
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
202
|
+
ResourceMocks.mock_action_call(:posts, :index, index_response(
|
203
|
+
[
|
204
|
+
{"id" => 11, "name" => "Post 11"}
|
205
|
+
]
|
206
|
+
))
|
207
|
+
ResourceMocks.mock_action_call(:users, :index, index_response(
|
208
|
+
[
|
209
|
+
{"id" => 22, "name" => "User 22"}
|
210
|
+
]
|
211
|
+
))
|
208
212
|
resolver_run.call.must_equal 11
|
209
213
|
end
|
210
214
|
end
|
@@ -248,13 +252,13 @@ describe HammerCLIForeman::IdResolver do
|
|
248
252
|
( resource == :users &&
|
249
253
|
action == :index &&
|
250
254
|
params[:search] == "name = \"John Doe\" or name = \"Jane Doe\"")
|
251
|
-
end.returns([john, jane])
|
255
|
+
end.returns(index_response([john, jane]))
|
252
256
|
|
253
257
|
assert_equal [john_id, jane_id], resolver.user_ids({"option_names" => ["John Doe", "Jane Doe"]})
|
254
258
|
end
|
255
259
|
|
256
260
|
it "raises exception when wrong number of resources is found even with conflicting options" do
|
257
|
-
ResourceMocks.mock_action_call(:users, :index, [john])
|
261
|
+
ResourceMocks.mock_action_call(:users, :index, index_response([john]))
|
258
262
|
|
259
263
|
assert_raises HammerCLIForeman::ResolverError do
|
260
264
|
resolver.user_ids({"option_names" => ["John Doe", "Jane Doe"], "option_name" => "group1"})
|
@@ -262,7 +266,7 @@ describe HammerCLIForeman::IdResolver do
|
|
262
266
|
end
|
263
267
|
|
264
268
|
it "raises exception when wrong number of resources is found" do
|
265
|
-
ResourceMocks.mock_action_call(:users, :index, [john])
|
269
|
+
ResourceMocks.mock_action_call(:users, :index, index_response([john]))
|
266
270
|
|
267
271
|
assert_raises HammerCLIForeman::ResolverError do
|
268
272
|
resolver.user_ids({"option_names" => ["John Doe", "Jane Doe"]})
|
@@ -270,7 +274,7 @@ describe HammerCLIForeman::IdResolver do
|
|
270
274
|
end
|
271
275
|
|
272
276
|
it "raises exception when no search options were set" do
|
273
|
-
ResourceMocks.mock_action_call(:users, :index, [john])
|
277
|
+
ResourceMocks.mock_action_call(:users, :index, index_response([john]))
|
274
278
|
|
275
279
|
assert_raises HammerCLIForeman::MissingSearchOptions do
|
276
280
|
resolver.user_ids({})
|
@@ -278,7 +282,7 @@ describe HammerCLIForeman::IdResolver do
|
|
278
282
|
end
|
279
283
|
|
280
284
|
it "returns empty array for empty input" do
|
281
|
-
ResourceMocks.mock_action_call(:users, :index, [john, jane])
|
285
|
+
ResourceMocks.mock_action_call(:users, :index, index_response([john, jane]))
|
282
286
|
|
283
287
|
assert_equal [], resolver.user_ids({"option_names" => []})
|
284
288
|
end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
2
|
require File.join(File.dirname(__FILE__), 'apipie_resource_mock')
|
3
3
|
|
4
|
-
require 'hammer_cli_foreman/
|
4
|
+
require 'hammer_cli_foreman/puppet_environment'
|
5
5
|
|
6
|
-
describe HammerCLIForeman::
|
6
|
+
describe HammerCLIForeman::PuppetEnvironment do
|
7
7
|
|
8
8
|
include CommandTestHelper
|
9
9
|
|
@@ -12,7 +12,7 @@ describe HammerCLIForeman::Environment do
|
|
12
12
|
ResourceMocks.mock_action_call(:environments, :index, [])
|
13
13
|
end
|
14
14
|
|
15
|
-
let(:cmd) { HammerCLIForeman::
|
15
|
+
let(:cmd) { HammerCLIForeman::PuppetEnvironment::ListCommand.new("", ctx) }
|
16
16
|
|
17
17
|
context "parameters" do
|
18
18
|
it_should_accept "no arguments"
|
@@ -32,7 +32,7 @@ describe HammerCLIForeman::Environment do
|
|
32
32
|
|
33
33
|
context "InfoCommand" do
|
34
34
|
|
35
|
-
let(:cmd) { HammerCLIForeman::
|
35
|
+
let(:cmd) { HammerCLIForeman::PuppetEnvironment::InfoCommand.new("", ctx) }
|
36
36
|
|
37
37
|
context "parameters" do
|
38
38
|
it_should_accept "id", ["--id=1"]
|
@@ -56,7 +56,7 @@ describe HammerCLIForeman::Environment do
|
|
56
56
|
|
57
57
|
context "CreateCommand" do
|
58
58
|
|
59
|
-
let(:cmd) { HammerCLIForeman::
|
59
|
+
let(:cmd) { HammerCLIForeman::PuppetEnvironment::CreateCommand.new("", ctx) }
|
60
60
|
|
61
61
|
context "parameters" do
|
62
62
|
it_should_accept "name", ["--name=env"]
|
@@ -69,7 +69,7 @@ describe HammerCLIForeman::Environment do
|
|
69
69
|
|
70
70
|
context "DeleteCommand" do
|
71
71
|
|
72
|
-
let(:cmd) { HammerCLIForeman::
|
72
|
+
let(:cmd) { HammerCLIForeman::PuppetEnvironment::DeleteCommand.new("", ctx) }
|
73
73
|
|
74
74
|
context "parameters" do
|
75
75
|
it_should_accept "name", ["--name=env"]
|
@@ -82,7 +82,7 @@ describe HammerCLIForeman::Environment do
|
|
82
82
|
|
83
83
|
context "UpdateCommand" do
|
84
84
|
|
85
|
-
let(:cmd) { HammerCLIForeman::
|
85
|
+
let(:cmd) { HammerCLIForeman::PuppetEnvironment::UpdateCommand.new("", ctx) }
|
86
86
|
|
87
87
|
context "parameters" do
|
88
88
|
it_should_accept "name", ["--name=env", "--new-name=env2"]
|
@@ -99,11 +99,13 @@ describe HammerCLIForeman::Environment do
|
|
99
99
|
ResourceMocks.smart_class_parameters_index
|
100
100
|
end
|
101
101
|
|
102
|
-
let(:cmd) { HammerCLIForeman::
|
102
|
+
let(:cmd) { HammerCLIForeman::PuppetEnvironment::SCParamsCommand.new("", ctx) }
|
103
103
|
|
104
104
|
context "parameters" do
|
105
105
|
it_should_accept "environment", ["--environment=env"]
|
106
106
|
it_should_accept "environment-id", ["--environment-id=1"]
|
107
|
+
it_should_accept "puppet-environment", ["--puppet-environment=env"]
|
108
|
+
it_should_accept "puppet-environment-id", ["--puppet-environment-id=1"]
|
107
109
|
# it_should_fail_with "name or id missing", [] # TODO: temporarily disabled, parameters are checked in the id resolver
|
108
110
|
end
|
109
111
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hammer_cli_foreman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.17.
|
4
|
+
version: 0.17.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomáš Strachota
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2019-
|
12
|
+
date: 2019-07-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: hammer_cli
|
@@ -100,6 +100,10 @@ files:
|
|
100
100
|
- lib/hammer_cli_foreman/auth_source.rb
|
101
101
|
- lib/hammer_cli_foreman/auth_source_ldap.rb
|
102
102
|
- lib/hammer_cli_foreman/combination.rb
|
103
|
+
- lib/hammer_cli_foreman/command_extensions.rb
|
104
|
+
- lib/hammer_cli_foreman/command_extensions/option_sources.rb
|
105
|
+
- lib/hammer_cli_foreman/command_extensions/puppet_environment.rb
|
106
|
+
- lib/hammer_cli_foreman/command_extensions/puppet_environments.rb
|
103
107
|
- lib/hammer_cli_foreman/commands.rb
|
104
108
|
- lib/hammer_cli_foreman/common_parameter.rb
|
105
109
|
- lib/hammer_cli_foreman/compute_attribute.rb
|
@@ -120,7 +124,6 @@ files:
|
|
120
124
|
- lib/hammer_cli_foreman/defaults.rb
|
121
125
|
- lib/hammer_cli_foreman/dependency_resolver.rb
|
122
126
|
- lib/hammer_cli_foreman/domain.rb
|
123
|
-
- lib/hammer_cli_foreman/environment.rb
|
124
127
|
- lib/hammer_cli_foreman/exception_handler.rb
|
125
128
|
- lib/hammer_cli_foreman/exceptions.rb
|
126
129
|
- lib/hammer_cli_foreman/external_usergroup.rb
|
@@ -143,6 +146,7 @@ files:
|
|
143
146
|
- lib/hammer_cli_foreman/option_sources.rb
|
144
147
|
- lib/hammer_cli_foreman/option_sources/id_params.rb
|
145
148
|
- lib/hammer_cli_foreman/option_sources/ids_params.rb
|
149
|
+
- lib/hammer_cli_foreman/option_sources/puppet_environment_params.rb
|
146
150
|
- lib/hammer_cli_foreman/option_sources/self_param.rb
|
147
151
|
- lib/hammer_cli_foreman/option_sources/user_params.rb
|
148
152
|
- lib/hammer_cli_foreman/organization.rb
|
@@ -154,6 +158,7 @@ files:
|
|
154
158
|
- lib/hammer_cli_foreman/partition_table.rb
|
155
159
|
- lib/hammer_cli_foreman/personal_access_token.rb
|
156
160
|
- lib/hammer_cli_foreman/puppet_class.rb
|
161
|
+
- lib/hammer_cli_foreman/puppet_environment.rb
|
157
162
|
- lib/hammer_cli_foreman/realm.rb
|
158
163
|
- lib/hammer_cli_foreman/references.rb
|
159
164
|
- lib/hammer_cli_foreman/report_template.rb
|
@@ -479,7 +484,6 @@ files:
|
|
479
484
|
- test/unit/defaults_test.rb
|
480
485
|
- test/unit/dependency_resolver_test.rb
|
481
486
|
- test/unit/domain_test.rb
|
482
|
-
- test/unit/environment_test.rb
|
483
487
|
- test/unit/exception_handler_test.rb
|
484
488
|
- test/unit/external_usergroup_test.rb
|
485
489
|
- test/unit/fact_test.rb
|
@@ -504,6 +508,7 @@ files:
|
|
504
508
|
- test/unit/param_filters_test.rb
|
505
509
|
- test/unit/partition_table_test.rb
|
506
510
|
- test/unit/puppet_class_test.rb
|
511
|
+
- test/unit/puppet_environment_test.rb
|
507
512
|
- test/unit/realm_test.rb
|
508
513
|
- test/unit/role_test.rb
|
509
514
|
- test/unit/settings_test.rb
|
@@ -784,7 +789,6 @@ test_files:
|
|
784
789
|
- test/reports/TEST-HammerCLIForeman-Architecture-InfoCommand-parameters.xml
|
785
790
|
- test/unit/operating_system_test.rb
|
786
791
|
- test/unit/location_test.rb
|
787
|
-
- test/unit/environment_test.rb
|
788
792
|
- test/unit/common_parameter_test.rb
|
789
793
|
- test/unit/settings_test.rb
|
790
794
|
- test/unit/image_test.rb
|
@@ -812,6 +816,7 @@ test_files:
|
|
812
816
|
- test/unit/config_report_test.rb
|
813
817
|
- test/unit/user_test.rb
|
814
818
|
- test/unit/filter_test.rb
|
819
|
+
- test/unit/puppet_environment_test.rb
|
815
820
|
- test/unit/output/formatters_test.rb
|
816
821
|
- test/unit/host_test.rb
|
817
822
|
- test/unit/subnet_test.rb
|