hammer_cli_foreman_puppet 0.0.3 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f92851cfcdf0a8b5ec003d8cbbc5ef6b4d36affce07208844df5608a5f5459b1
4
- data.tar.gz: 565bfa4263e76e6826ed8a30d42e6cdbb611bff5261cd87b07c432273811adfa
3
+ metadata.gz: 70ea47a81549cde7da9bbdce56937da3c20d4936cc7ebc526cf0d671890e2e80
4
+ data.tar.gz: 042c018b0757d76f33b5284247a4f84edfceb1d102f48aabd0497399ddc2abb8
5
5
  SHA512:
6
- metadata.gz: e69a1c28719c4076502b00baddcd54f618c70b3ca8984ff6586134a0cb7d7ef8fac2e0cd4de3ccc1453338bf6c9b4e2e60a7c3256273ce798291a050856ea014
7
- data.tar.gz: c5fa4ef46e9139c3369617a4766bdb71bddb77b94a9279de999e39275337e5766872c8158ce2235027143b881f76d1b9b8d896f89bf388f4e2430b18d0d82b68
6
+ metadata.gz: 1f4fd40cca5fba2861777cea022d2aed231594e654f73091f0f9861b5f0c15cfa31258dacbf5334988430eb37fed18bc837e10ad52b3ba070016d144d5cbd3cc
7
+ data.tar.gz: 833af50bdc2165b5b9f93e9dbc056a57379cec64c21251c0ffb707497699df4c76ec9b125fe80b596e2ca91dad4630b4c89654198149d7801ca05ce379a5b3b3
data/README.md CHANGED
@@ -1,20 +1,32 @@
1
- [WIP] hammer_cli_foreman_puppet
2
- =========================================
1
+ # Hammer CLI Foreman Puppet
3
2
 
4
- This [Hammer CLI](https://github.com/theforeman/hammer-cli) plugin contains
5
- set of commands for puppet.
6
- Configuration
7
- -------------
3
+ This Hammer CLI plugin contains a set of commands for [foreman_puppet](https://github.com/theforeman/foreman_puppet), a plugin that adds Puppet functionality to Foreman.
8
4
 
9
- Configuration is expected to be placed in one of hammer's configuration directories for plugins:
10
- - `/etc/hammer/cli.modules.d/`
11
- - `~/.hammer/cli.modules.d/`
12
- - `./.config/cli.modules.d/` (config dir in CWD)
5
+ ## Compatibility
13
6
 
14
- If you install `hammer_cli_foreman_puppet` from source you'll have to copy the config file manually
15
- from `config/foreman_puppet.yml`.
7
+ This is the list of which version of Foreman Puppet and Foreman are needed for which version of this plugin.
16
8
 
17
- License
18
- -------
9
+ |foreman |foreman_puppet|hammer-cli-puppet | Notes |
10
+ |---------------|--------------|----------------- |--------------------------- |
11
+ | >= 3.0 | ~> 1.0 | >= 0.0.3 | Required |
12
+ | <= 2.5 | ~> 0.1 | - | Not supported (functionality is in [hammer-cli-foreman](https://github.com/theforeman/hammer-cli-foreman)) |
19
13
 
20
- This project is licensed under the GPLv3+.
14
+ ## Installation
15
+
16
+ $ gem install hammer_cli_foreman_puppet
17
+
18
+ $ mkdir -p ~/.hammer/cli.modules.d/
19
+
20
+ $ cat <<EOQ > ~/.hammer/cli.modules.d/foreman_puppet.yml
21
+ :foreman_puppet:
22
+ :enable_module: true
23
+ EOQ
24
+
25
+ ## Problems
26
+
27
+ Please feel free to open a [new Github issue](https://github.com/theforeman/hammer-cli-foreman-puppet/issues/new) if you encounter any bugs/issues using this plugin.
28
+
29
+ ## More info
30
+
31
+ See our [Hammer CLI installation and configuration instuctions](
32
+ https://github.com/theforeman/hammer-cli/blob/master/doc/installation.md#installation).
@@ -1,13 +1,36 @@
1
1
 
2
2
  require 'hammer_cli_foreman/combination'
3
+ require 'hammer_cli_foreman_puppet/command_extensions/combination'
3
4
 
4
5
  module HammerCLIForemanPuppet
6
+ class Combination < HammerCLIForemanPuppet::Command
7
+ class ListCommand < HammerCLIForemanPuppet::ListCommand
8
+ output do
9
+ field nil, _("Puppet Environment"), Fields::SingleReference, :key => :environment
10
+ end
11
+ end
12
+
13
+ class InfoCommand < HammerCLIForemanPuppet::InfoCommand
14
+ include EnvironmentNameMapping
15
+ output ListCommand.output_definition do
16
+ field :environment_id, _('Puppet Environment ID')
17
+ field :environment_name, _('Puppet Environment name')
18
+ end
19
+ end
20
+ end
21
+
22
+ HammerCLIForeman::Combination::ListCombination.extend_with(
23
+ HammerCLIForemanPuppet::CommandExtensions::ListCombination.new
24
+ )
5
25
  HammerCLIForeman::Combination::InfoCombination.extend_with(
26
+ HammerCLIForemanPuppet::CommandExtensions::InfoCombination.new,
6
27
  HammerCLIForemanPuppet::CommandExtensions::PuppetEnvironment.new
7
28
  )
29
+ HammerCLIForeman::Combination::UpdateCombination.include(HammerCLIForemanPuppet::EnvironmentNameMapping)
8
30
  HammerCLIForeman::Combination::UpdateCombination.extend_with(
9
31
  HammerCLIForemanPuppet::CommandExtensions::PuppetEnvironment.new
10
32
  )
33
+ HammerCLIForeman::Combination::CreateCombination.include(HammerCLIForemanPuppet::EnvironmentNameMapping)
11
34
  HammerCLIForeman::Combination::CreateCombination.extend_with(
12
35
  HammerCLIForemanPuppet::CommandExtensions::PuppetEnvironment.new
13
36
  )
@@ -0,0 +1,15 @@
1
+ module HammerCLIForemanPuppet
2
+ module CommandExtensions
3
+ class ListCombination < HammerCLI::CommandExtensions
4
+ output do |definition|
5
+ definition.insert(:after, :hostgroup, HammerCLIForemanPuppet::Combination::ListCommand.output_definition.fields)
6
+ end
7
+ end
8
+
9
+ class InfoCombination < HammerCLI::CommandExtensions
10
+ output do |definition|
11
+ definition.insert(:after, :hostgroup_name, HammerCLIForemanPuppet::Combination::InfoCommand.output_definition.fields)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -17,8 +17,22 @@ module HammerCLIForemanPuppet
17
17
  child '--puppet-classes', 'PUPPET_CLASS_NAMES', '',
18
18
  attribute_name: :option_puppetclass_names
19
19
  end
20
- option '--puppet-ca-proxy', 'PUPPET_CA_PROXY_NAME', _('Name of Puppet CA proxy')
21
- option '--puppet-proxy', 'PUPPET_PROXY_NAME', _('Name of Puppet proxy')
20
+ option_family(
21
+ format: HammerCLI::Options::Normalizers::List.new,
22
+ aliased_resource: 'config_group',
23
+ description: 'Names/Ids of associated config groups'
24
+ ) do
25
+ parent '--config-group-ids', 'CONFIG_GROUP_IDS', _('IDs of associated config groups'),
26
+ attribute_name: :option_config_group_ids
27
+ child '--config-groups', 'CONFIG_GROUP_NAMES', '',
28
+ attribute_name: :option_config_group_names
29
+ end
30
+ option_family associate: 'puppet_proxy' do
31
+ child '--puppet-proxy', 'PUPPET_PROXY_NAME', _('Name of Puppet proxy')
32
+ end
33
+ option_family associate: 'puppet_ca_proxy' do
34
+ child '--puppet-ca-proxy', 'PUPPET_CA_PROXY_NAME', _('Name of Puppet CA proxy')
35
+ end
22
36
 
23
37
  request_params do |params, command_object|
24
38
  if command_object.option_puppet_proxy
@@ -36,6 +50,17 @@ module HammerCLIForemanPuppet
36
50
  def self.proxy_id(resolver, name)
37
51
  resolver.smart_proxy_id('option_name' => name)
38
52
  end
53
+
54
+ def self.delete_deprecated_options(command_class)
55
+ %w[--puppetclass-ids --environment-id --config-group-ids].each do |switch|
56
+ family = command_class.option_families.find do |f|
57
+ f.head.switches.include?(switch)
58
+ end
59
+ command_class.declared_options.delete_if do |o|
60
+ family.all.include?(o)
61
+ end
62
+ end
63
+ end
39
64
  end
40
65
  end
41
66
  end
@@ -23,6 +23,16 @@ module HammerCLIForemanPuppet
23
23
  child '--puppet-classes', 'PUPPET_CLASS_NAMES', '',
24
24
  attribute_name: :option_puppetclass_names
25
25
  end
26
+ option_family(
27
+ format: HammerCLI::Options::Normalizers::List.new,
28
+ aliased_resource: 'config_group',
29
+ description: 'Names/Ids of associated config groups'
30
+ ) do
31
+ parent '--config-group-ids', 'CONFIG_GROUP_IDS', _('IDs of associated config groups'),
32
+ attribute_name: :option_config_group_ids
33
+ child '--config-groups', 'CONFIG_GROUP_NAMES', '',
34
+ attribute_name: :option_config_group_names
35
+ end
26
36
  option '--puppet-ca-proxy', 'PUPPET_CA_PROXY_NAME', _('Name of Puppet CA proxy')
27
37
  option '--puppet-proxy', 'PUPPET_PROXY_NAME', _('Name of Puppet proxy')
28
38
 
@@ -42,6 +52,17 @@ module HammerCLIForemanPuppet
42
52
  def self.proxy_id(resolver, name)
43
53
  resolver.smart_proxy_id('option_name' => name)
44
54
  end
55
+
56
+ def self.delete_deprecated_options(command_class)
57
+ %w[--puppetclass-ids --environment-id --config-group-ids].each do |switch|
58
+ family = command_class.option_families.find do |f|
59
+ f.head.switches.include?(switch)
60
+ end
61
+ command_class.declared_options.delete_if do |o|
62
+ family.all.include?(o)
63
+ end
64
+ end
65
+ end
45
66
  end
46
67
  end
47
68
  end
@@ -55,11 +55,16 @@ module HammerCLIForemanPuppet
55
55
  HammerCLIForemanPuppet::CommandExtensions::PuppetEnvironment.new
56
56
  )
57
57
  HammerCLIForeman::Host::CreateCommand.include(HammerCLIForemanPuppet::EnvironmentNameMapping)
58
+ # Delete deprecated options explicitly until they are deleted from API
59
+ HammerCLIForemanPuppet::CommandExtensions::HostPuppetProxy.delete_deprecated_options(HammerCLIForeman::Host::CreateCommand)
58
60
  HammerCLIForeman::Host::CreateCommand.extend_with(
59
61
  HammerCLIForemanPuppet::CommandExtensions::PuppetEnvironment.new,
60
62
  HammerCLIForemanPuppet::CommandExtensions::HostPuppetProxy.new
61
63
  )
64
+
62
65
  HammerCLIForeman::Host::UpdateCommand.include(HammerCLIForemanPuppet::EnvironmentNameMapping)
66
+ # Delete deprecated options explicitly until they are deleted from API
67
+ HammerCLIForemanPuppet::CommandExtensions::HostPuppetProxy.delete_deprecated_options(HammerCLIForeman::Host::UpdateCommand)
63
68
  HammerCLIForeman::Host::UpdateCommand.extend_with(
64
69
  HammerCLIForemanPuppet::CommandExtensions::PuppetEnvironment.new,
65
70
  HammerCLIForemanPuppet::CommandExtensions::HostPuppetProxy.new
@@ -1,5 +1,4 @@
1
1
  require 'hammer_cli_foreman/hostgroup'
2
- require 'hammer_cli_foreman_puppet/references'
3
2
  require 'hammer_cli_foreman_puppet/command_extensions/hostgroup.rb'
4
3
 
5
4
  module HammerCLIForemanPuppet
@@ -42,7 +41,7 @@ module HammerCLIForemanPuppet
42
41
  field nil, _("Puppet Environment"), Fields::SingleReference, :key => :environment
43
42
  field nil, _("Puppet CA Proxy"), Fields::SingleReference, :key => :puppet_ca_proxy
44
43
  field nil, _("Puppet Master Proxy"), Fields::SingleReference, :key => :puppet_proxy
45
- HammerCLIForemanPuppet::References.puppetclasses(self)
44
+ HammerCLIForemanPuppet::PuppetReferences.puppetclasses(self)
46
45
  end
47
46
  end
48
47
  end
@@ -56,11 +55,16 @@ module HammerCLIForemanPuppet
56
55
  HammerCLIForemanPuppet::Hostgroup::PuppetSCParamsCommand
57
56
 
58
57
  HammerCLIForeman::Hostgroup::CreateCommand.include(HammerCLIForemanPuppet::EnvironmentNameMapping)
58
+ # Delete deprecated options explicitly until they are deleted from API
59
+ HammerCLIForemanPuppet::CommandExtensions::HostPuppetProxy.delete_deprecated_options(HammerCLIForeman::Hostgroup::CreateCommand)
59
60
  HammerCLIForeman::Hostgroup::CreateCommand.extend_with(
60
61
  HammerCLIForemanPuppet::CommandExtensions::PuppetEnvironment.new,
61
62
  HammerCLIForemanPuppet::CommandExtensions::HostgroupPuppetProxy.new
62
63
  )
64
+
63
65
  HammerCLIForeman::Hostgroup::UpdateCommand.include(HammerCLIForemanPuppet::EnvironmentNameMapping)
66
+ # Delete deprecated options explicitly until they are deleted from API
67
+ HammerCLIForemanPuppet::CommandExtensions::HostPuppetProxy.delete_deprecated_options(HammerCLIForeman::Hostgroup::UpdateCommand)
64
68
  HammerCLIForeman::Hostgroup::UpdateCommand.extend_with(
65
69
  HammerCLIForemanPuppet::CommandExtensions::PuppetEnvironment.new,
66
70
  HammerCLIForemanPuppet::CommandExtensions::HostgroupPuppetProxy.new
@@ -1,19 +1,11 @@
1
1
  require 'hammer_cli_foreman/location'
2
- require 'hammer_cli_foreman_puppet/references'
3
2
  require 'hammer_cli_foreman_puppet/command_extensions/location'
4
3
 
5
4
  module HammerCLIForemanPuppet
6
- module LocationAddAssociatedCommand
7
- def self.included(base)
8
- HammerCLIForemanPuppet::AssociatingCommands::PuppetEnvironment.extend_command(base)
9
- base.create_subcommand
10
- end
11
- end
12
-
13
5
  class Location < HammerCLIForemanPuppet::Command
14
6
  class InfoCommand < HammerCLIForemanPuppet::InfoCommand
15
7
  output do
16
- HammerCLIForemanPuppet::References.environments(self)
8
+ HammerCLIForemanPuppet::PuppetReferences.environments(self)
17
9
  end
18
10
  end
19
11
  end
@@ -27,9 +19,4 @@ module HammerCLIForemanPuppet
27
19
  HammerCLIForeman::Location::InfoCommand.extend_with(
28
20
  HammerCLIForemanPuppet::CommandExtensions::LocationInfo.new
29
21
  )
30
-
31
- HammerCLIForeman::Location.class_eval do
32
- extend HammerCLIForemanPuppet::AssociatingCommands::ExtendCommands
33
- include HammerCLIForemanPuppet::LocationAddAssociatedCommand
34
- end
35
22
  end
@@ -1,19 +1,11 @@
1
1
  require 'hammer_cli_foreman/organization'
2
- require 'hammer_cli_foreman_puppet/references'
3
2
  require 'hammer_cli_foreman_puppet/command_extensions/organization'
4
3
 
5
4
  module HammerCLIForemanPuppet
6
- module OrganizationAddAssociatedCommand
7
- def self.included(base)
8
- HammerCLIForemanPuppet::AssociatingCommands::PuppetEnvironment.extend_command(base)
9
- base.create_subcommand
10
- end
11
- end
12
-
13
5
  class Organization < HammerCLIForemanPuppet::Command
14
6
  class InfoCommand < HammerCLIForemanPuppet::InfoCommand
15
7
  output do
16
- HammerCLIForemanPuppet::References.environments(self)
8
+ HammerCLIForemanPuppet::PuppetReferences.environments(self)
17
9
  end
18
10
  end
19
11
  end
@@ -27,9 +19,4 @@ module HammerCLIForemanPuppet
27
19
  HammerCLIForeman::Organization::InfoCommand.extend_with(
28
20
  HammerCLIForemanPuppet::CommandExtensions::OrganizationInfo.new
29
21
  )
30
-
31
- HammerCLIForeman::Organization.class_eval do
32
- extend HammerCLIForemanPuppet::AssociatingCommands::ExtendCommands
33
- include HammerCLIForemanPuppet::OrganizationAddAssociatedCommand
34
- end
35
22
  end
@@ -1,5 +1,5 @@
1
1
  module HammerCLIForemanPuppet
2
2
  def self.version
3
- @version ||= Gem::Version.new '0.0.3'
3
+ @version ||= Gem::Version.new '0.0.6'
4
4
  end
5
5
  end
@@ -1,5 +1,6 @@
1
1
  module HammerCLIForemanPuppet
2
2
  require 'hammer_cli'
3
+ require 'hammer_cli/logger'
3
4
  require 'hammer_cli_foreman'
4
5
 
5
6
  require 'hammer_cli_foreman_puppet/version'
@@ -8,7 +9,6 @@ module HammerCLIForemanPuppet
8
9
  require 'hammer_cli_foreman_puppet/commands'
9
10
  require 'hammer_cli_foreman_puppet/command_extensions'
10
11
  require 'hammer_cli_foreman_puppet/option_sources'
11
- require 'hammer_cli_foreman_puppet/associating_commands'
12
12
  require 'hammer_cli_foreman_puppet/id_resolver'
13
13
 
14
14
  # Puppet commands