foreman_custom_tab 0.1.1 → 0.2.0

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
  SHA1:
3
- metadata.gz: 1ccbccc92505f23d7321d8abe5aabaa51aa8de8b
4
- data.tar.gz: 4570d2c5e548fdf8afeeb5c4eb3c4edaa2d07968
3
+ metadata.gz: 45ffcb2d4091bf3844ae1e1681d3857d3e47853a
4
+ data.tar.gz: 81883825ea4cdd6b5dea970e73fb2f62694a8abc
5
5
  SHA512:
6
- metadata.gz: 2ad9b056e8ba6eabb6d112f279de450f0b4274fac85f9009ef0cb25c845725794c92328284eea8040bc70ad87af1cfe6f026b44cd34da639b858ba520ff78ac3
7
- data.tar.gz: b4db88c4325ff99d035c197e7758dd36adaa59db1c2d57b203d891ab81716161f53594bedea2815670432ebfc126dfe2806438eeb7f6a4140b4d57b8b4cacb52
6
+ metadata.gz: ae87d56ebb27965d13b7f0b1265985e98997f8450c1823317053779de2eb9d935eac9ac7b885cd0561a33e641fe1201f62cdee8d3d3fce8e7f074880d06f012d
7
+ data.tar.gz: 701e58f41f59625499ca75941b1eedc9c74b06a1fdf0df472f8ea872ae4e82a967e710bb304024d6263f15b654bf9b2a3c4a1c4aa1c8fa9c793f460efd504871
data/README.md CHANGED
@@ -14,7 +14,7 @@ bundle update foreman_custom_tab
14
14
 
15
15
  ## Configuration
16
16
 
17
- If there is no configuration file then the tab should not appear on the detailed hosts screen, but if
17
+ If there is no configuration file then the tab should not appear on the detailed hosts screen, but if
18
18
  there is one and it is empty then it will appear without any fields. To setup the configuration file create
19
19
  a new file named 'foreman_custom_tab.yaml' at the location /etc/foreman/plugins/
20
20
 
@@ -23,16 +23,19 @@ The keys are the display title and the values are the methods that are actually
23
23
  Example configuration:
24
24
 
25
25
  ```
26
+ ---
26
27
  :custom_tab:
27
- :fields:
28
- 'Host Name': name
29
- 'MAC Address': mac
30
- 'IP Address': ip
31
- 'Architecture': arch
32
- 'Certificate Name': certname
33
- 'OS Title': operatingsystem.title
34
- 'OS Type': operatingsystem.type
35
28
  :title: foo
29
+ :fields:
30
+ Host Name: name
31
+ MAC Address: mac
32
+ IP Address: ip
33
+ Architecture: arch
34
+ Certificate Name: certname
35
+ OS Title: operatingsystem.title
36
+ OS Type: operatingsystem.type
37
+ Puppet Version: facts[puppetversion]
38
+ Ruby Version: facts.fetch(rubyversion)
36
39
  ```
37
40
 
38
41
  ## Verify the Custom Tab is loaded
@@ -49,7 +52,7 @@ Note: foreman running locally (i.e not installed via rpm/debian package) does no
49
52
 
50
53
  ## Notes
51
54
 
52
- This project is still incomplete and in development.
55
+ This project is still incomplete and in development.
53
56
 
54
57
  Copyright (c) 2017 Joe Lyons Stannard III
55
58
 
@@ -65,4 +68,3 @@ GNU General Public License for more details.
65
68
 
66
69
  You should have received a copy of the GNU General Public License
67
70
  along with this program. If not, see <http://www.gnu.org/licenses/>.
68
-
@@ -6,10 +6,15 @@ module ForemanCustomTab
6
6
  fields = []
7
7
  config_fields = SETTINGS[:custom_tab][:fields] || []
8
8
  config_fields.each do |key, value|
9
- host_attr_val = nil
10
9
  # chain the method calls for attibutes like operatingsystem.title
11
- value.split('.').each_with_index do |method, index|
12
- host_attr_val = index.eql?(0) ? host.try(method) : host_attr_val.try(method)
10
+ host_attr_val = value.split('.').inject(host) do |memo, method|
11
+ if m = method.match(/(.*)\((.*)\)/)
12
+ memo.try(*[m[1], *m[2].split(/,\s?/)])
13
+ elsif m = method.match(/(.*)\[(.*)\]/)
14
+ memo.try(m[1]).try('[]', m[2])
15
+ else
16
+ memo.try(method)
17
+ end
13
18
  end
14
19
  fields += [[_(key.to_s), host_attr_val]] if host_attr_val.present?
15
20
  end
@@ -1,3 +1,3 @@
1
1
  module ForemanCustomTab
2
- VERSION = '0.1.1'.freeze
2
+ VERSION = '0.2.0'.freeze
3
3
  end
@@ -6,7 +6,8 @@ SETTINGS[:custom_tab] = { fields: { 'Host Name' => 'name',
6
6
  'Architecture' => 'arch',
7
7
  'Certificate Name' => 'certname',
8
8
  'OS Title' => 'operatingsystem.title',
9
- 'OS Type' => 'operatingsystem.type' },
9
+ 'OS Type' => 'operatingsystem.type',
10
+ 'Puppet Version' => 'facts[puppetversion]' },
10
11
  title: 'foo' }
11
12
 
12
13
  # This calls the main test_helper in Foreman-core
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_custom_tab
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joe Stannard
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-19 00:00:00.000000000 Z
11
+ date: 2018-01-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: deface