foreman_enc_hostgrouponly 1.0.0 → 1.0.1

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.
data/README.md CHANGED
@@ -1,19 +1,28 @@
1
1
  # ForemanEncHostgrouponly
2
2
 
3
- *Introdction here*
3
+ This rails engine/plugin to Foreman leverages the existing ENC functionality meanwhile only return data that being overriden in hostgroup. This would allow user sepereate ENC/classes and data management so data could be managed in an auditable manner.
4
+
4
5
 
5
6
  ## Installation
6
7
 
7
8
  See [How_to_Install_a_Plugin](http://projects.theforeman.org/projects/foreman/wiki/How_to_Install_a_Plugin)
8
9
  for how to install Foreman plugins
9
10
 
10
- ## Usage
11
+ The gem name is "foreman_enc_hostgrouponly".
12
+
13
+ ## Compatibility
11
14
 
12
- *Usage here*
15
+ | Foreman Version | Plugin Version |
16
+ | --------------- | --------------:|
17
+ | >= 1.5 | 1.0.0 |
18
+
19
+ ## Usage
20
+ There is a new setting under `Settings -> General`
13
21
 
14
- ## TODO
22
+ | Setting | Description |
23
+ | ------- | ----------- |
24
+ | `enc_hostgrouponly` | Setting this to `true` will let ENC return host group parameters only Default: `false` |
15
25
 
16
- *Todo list here*
17
26
 
18
27
  ## Contributing
19
28
 
@@ -21,7 +30,7 @@ Fork and send a Pull Request. Thanks!
21
30
 
22
31
  ## Copyright
23
32
 
24
- Copyright (c) *year* *your name*
33
+ Copyright (c) *2014* *Huai Jiang*
25
34
 
26
35
  This program is free software: you can redistribute it and/or modify
27
36
  it under the terms of the GNU General Public License as published by
@@ -1,13 +1,8 @@
1
- require 'deface'
2
1
  require 'foreman_enc_hostgrouponly_patch'
3
2
 
4
3
  module ForemanEncHostgrouponly
5
4
  class Engine < ::Rails::Engine
6
5
 
7
- #config.autoload_paths += Dir["#{config.root}/app/controllers/concerns"]
8
- #config.autoload_paths += Dir["#{config.root}/app/helpers/concerns"]
9
- #config.autoload_paths += Dir["#{config.root}/app/models/concerns"]
10
- #config.autoload_paths += Dir["#{config.root}/app/overrides"]
11
6
 
12
7
  # Load this before the Foreman config initizializers, so that the Setting.descendants
13
8
  # list includes the plugin STI setting class
@@ -25,8 +20,6 @@ module ForemanEncHostgrouponly
25
20
  #Include concerns in this config.to_prepare block
26
21
  config.to_prepare do
27
22
  begin
28
- # Host::Managed.send(:include, ForemanEncHostgrouponly::HostExtensions)
29
- # HostsHelper.send(:include, ForemanEncHostgrouponly::HostsHelperExtensions)
30
23
  Classification::ClassParam.send(:include, ForemanEncHostgrouponlyPatch)
31
24
  rescue => e
32
25
  puts e.backtrace
@@ -1,3 +1,3 @@
1
1
  module ForemanEncHostgrouponly
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
@@ -16,32 +16,29 @@ module ForemanEncHostgrouponlyPatch
16
16
  Rails.logger.debug "ForemanEncHostgrouponlyPatch: return host group parameters only"
17
17
  h = {}
18
18
  begin
19
- hostgroup_matches.each do |hostgroup_match|
20
- LookupValue.where(:match => hostgroup_match).where(:lookup_key_id => class_parameters.map(&:id)).each do |value|
21
- key = class_parameters.detect{|k| k.id == value.lookup_key_id }
22
- Rails.logger.debug "ForemanEncHostgrouponlyPatch: detect host group parameters (#{key.to_s})"
23
- klass_id = key.environment_classes.first.puppetclass_id
24
- h[klass_id] ||= []
25
- h[klass_id] << key
26
- end
27
- end
28
- h
29
- rescue => e
30
- Rails.logger.error "ForemanEncHostgrouponlyPatch: return host group parameters only (#{e.to_s})"
31
- end
32
- end
33
-
34
- def hostgroup_match
35
- hostgroup_matches = []
19
+ hostgroup_matches = []
36
20
  possible_value_orders.each do |rule|
37
21
  match = Array.wrap(rule).map do |element|
38
- "#{element}#{LookupKey::EQ_DELM}#{attr_to_value(element)}"
22
+ "#{element}#{LookupKey::EQ_DELM}#{attr_to_value(element)}"
39
23
  end if Array.wrap(rule).include?("hostgroup")
40
24
  if match
41
- hostgroup_matches << match.join(LookupKey::KEY_DELM)
25
+ hostgroup_matches << match.join(LookupKey::KEY_DELM)
42
26
  end
43
27
  end
44
- hostgroup_matches
28
+
29
+ hostgroup_matches.each do |hostgroup_match|
30
+ LookupValue.where(:match => hostgroup_match).where(:lookup_key_id => class_parameters.map(&:id)).each do |value|
31
+ key = class_parameters.detect{|k| k.id == value.lookup_key_id }
32
+ Rails.logger.debug "ForemanEncHostgrouponlyPatch: detect host group parameters (#{key.to_s})"
33
+ klass_id = key.environment_classes.first.puppetclass_id
34
+ h[klass_id] ||= []
35
+ h[klass_id] << key
36
+ end
37
+ end
38
+ h
39
+ rescue => e
40
+ Rails.logger.error "ForemanEncHostgrouponly: skipping engine hook (#{e.to_s})"
41
+ end
45
42
  end
46
43
 
47
44
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_enc_hostgrouponly
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,24 +9,8 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-09-23 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: deface
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
12
+ date: 2014-09-24 00:00:00.000000000 Z
13
+ dependencies: []
30
14
  description: get hostgroup param only
31
15
  email:
32
16
  - huajiang@ebay.com