foreman_export_hosts 0.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.
Files changed (43) hide show
  1. data/LICENSE +619 -0
  2. data/README.md +39 -0
  3. data/Rakefile +47 -0
  4. data/app/assets/javascripts/application.js +2 -0
  5. data/app/assets/javascripts/jquery.battatech.excelexport.js +180 -0
  6. data/app/controllers/foreman_hosts/hosts_controller.rb +17 -0
  7. data/app/controllers/foreman_hosts/syhostmodeldetails_controller.rb +83 -0
  8. data/app/controllers/foreman_hosts/syhostmodels_controller.rb +84 -0
  9. data/app/helpers/concerns/foreman_hosts/hosts_helper_extensions.rb +20 -0
  10. data/app/models/concerns/foreman_hosts/hosts_extensions.rb +19 -0
  11. data/app/models/foreman_hosts/syhostmodel.rb +8 -0
  12. data/app/models/foreman_hosts/syhostmodeldetail.rb +5 -0
  13. data/app/overrides/dashboard/index/sample_override.html.erb.deface +4 -0
  14. data/app/views/dashboard/_foreman_hosts_widget.html.erb +2 -0
  15. data/app/views/foreman_hosts/hosts/export.xlsx.axlsx +130 -0
  16. data/app/views/foreman_hosts/hosts/hosts/new_action.html.erb +1 -0
  17. data/app/views/foreman_hosts/hosts/report_index.html.erb +257 -0
  18. data/app/views/foreman_hosts/layouts/layouts/new_layout.html.erb +0 -0
  19. data/app/views/foreman_hosts/layouts/new_layout.html.erb +0 -0
  20. data/app/views/foreman_hosts/syhostmodels/_form.html.erb +30 -0
  21. data/app/views/foreman_hosts/syhostmodels/_list.html.erb +41 -0
  22. data/app/views/foreman_hosts/syhostmodels/_report.html.erb +258 -0
  23. data/app/views/foreman_hosts/syhostmodels/_sub.html.erb +37 -0
  24. data/app/views/foreman_hosts/syhostmodels/edit.html.erb +1 -0
  25. data/app/views/foreman_hosts/syhostmodels/index.html.erb +5 -0
  26. data/app/views/foreman_hosts/syhostmodels/new.html.erb +1 -0
  27. data/app/views/foreman_hosts/syhostmodels/show.html.erb +72 -0
  28. data/bin/foreman-hosts +5 -0
  29. data/config/routes.rb +8 -0
  30. data/db/migrate/20151015022411_create_syhostmodels.rb +10 -0
  31. data/db/migrate/20151015050239_create_syhostmodeldetails.rb +13 -0
  32. data/lib/foreman_hosts/engine.rb +92 -0
  33. data/lib/foreman_hosts/version.rb +3 -0
  34. data/lib/foreman_hosts.rb +4 -0
  35. data/lib/tasks/foreman_hosts_tasks.rake +49 -0
  36. data/locale/Makefile +62 -0
  37. data/locale/en/foreman_hosts.po +19 -0
  38. data/locale/foreman_hosts.pot +19 -0
  39. data/locale/gemspec.rb +2 -0
  40. data/test/factories/foreman_hosts_factories.rb +5 -0
  41. data/test/test_plugin_helper.rb +6 -0
  42. data/test/unit/foreman_hosts_test.rb +11 -0
  43. metadata +154 -0
@@ -0,0 +1,72 @@
1
+
2
+ <div class="container">
3
+ <div class="row">
4
+ <h1 class="clearfix">
5
+ <%= link_to '返回', foreman_hosts_syhostmodels_path, class: "btn btn-primary pull-right mr1" %>
6
+ <%= link_to '编辑', edit_foreman_hosts_syhostmodel_path(@syhostmodel), class: "btn btn-warning pull-right mr1" %>
7
+ </h1>
8
+ </div>
9
+
10
+ <div class="row col-md-12">
11
+ <table class="table table-striped table-bordered">
12
+ <thead></thead>
13
+ <tbody>
14
+ <tr>
15
+ <td><strong>name</strong></td>
16
+ </tr>
17
+ <tr>
18
+ <td><%= @syhostmodel.name %></td>
19
+ </tr>
20
+
21
+ <tr>
22
+ <td><strong>remark</strong></td>
23
+ </tr>
24
+ <tr>
25
+ <td><%= @syhostmodel.remark %></td>
26
+ </tr>
27
+ </tbody>
28
+ </table>
29
+ </div>
30
+
31
+ <div class="row col-md-12">
32
+ <ul class="nav nav-tabs mb1">
33
+ <li class="active"><a href="#models" data-toggle="tab">Detail</a></li>
34
+ <li><a href="#previews" data-toggle="tab">Preview</a></li>
35
+ </ul>
36
+
37
+ <div class="tab-content">
38
+ <div class="tab-pane active" id="models">
39
+ <div id="models">
40
+
41
+ <div class="panel-body">
42
+ <table class="table table-striped table-bordered models">
43
+ <thead>
44
+ <th>no</th>
45
+ <th>status</th>
46
+ <th>fact_name</th>
47
+ </thead>
48
+ <tbody>
49
+ <% @syhostmodel.syhostmodeldetails.order("no Asc").each do |syhostmodeldetail|%>
50
+ <tr class="success">
51
+ <td><%= syhostmodeldetail.no %></td>
52
+ <td><%= syhostmodeldetail.status %></td>
53
+ <td><%#= syhostmodeldetail.fact_name.name rescue nil %></td>
54
+ </tr>
55
+ <% end %>
56
+ </tbody>
57
+ </table>
58
+ </div>
59
+
60
+
61
+ </div>
62
+ </div>
63
+ <div class="tab-pane" id="previews">
64
+ <div id="previews">
65
+ <div class="panel-body">
66
+ <%#= render partial: "foreman_hosts/syhostmodels/report", locals: { details: @syhostmodel.syhostmodeldetails} %>
67
+ </div>
68
+ </div>
69
+ </div>
70
+ </div>
71
+ </div>
72
+ </div>
data/bin/foreman-hosts ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ foreman_root = "/usr/share/foreman"
4
+ require File.expand_path('./config/application', foreman_root)
5
+ ForemanHosts::Dynflow::Daemon.new.run_background(ARGV.last, :foreman_root => foreman_root)
data/config/routes.rb ADDED
@@ -0,0 +1,8 @@
1
+ Rails.application.routes.draw do
2
+
3
+ namespace :foreman_hosts do
4
+ match 'report_index', to: 'hosts#report_index'
5
+ resources :syhostmodels
6
+ resources :syhostmodeldetails
7
+ end
8
+ end
@@ -0,0 +1,10 @@
1
+ class CreateSyhostmodels < ActiveRecord::Migration
2
+ drop tables syhostmodels if table_exists? :syhostmodels
3
+ def change
4
+ create_table :syhostmodels do |t|
5
+ t.string :name
6
+ t.text :remark
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,13 @@
1
+ class CreateSyhostmodeldetails < ActiveRecord::Migration
2
+ drop tables syhostmodeldetails if table_exists? :syhostmodeldetails
3
+ def change
4
+ create_table :syhostmodeldetails do |t|
5
+ t.integer :syhostmodel_id
6
+ t.string :syhostmodel_type
7
+ t.string :no
8
+ t.integer :fact_name_id
9
+ t.boolean :status
10
+ t.timestamps
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,92 @@
1
+ require 'deface'
2
+
3
+ module ForemanHosts
4
+ class Engine < ::Rails::Engine
5
+ engine_name 'foreman_hosts'
6
+
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
+
12
+ # Add any db migrations
13
+ initializer 'foreman_hosts.load_app_instance_data' do |app|
14
+ app.config.paths['db/migrate'] += ForemanHosts::Engine.paths['db/migrate'].existent
15
+ end
16
+
17
+ initializer 'foreman_hosts.register_plugin', after: :finisher_hook do |_app|
18
+ Foreman::Plugin.register :foreman_hosts do
19
+ requires_foreman '>= 1.4'
20
+
21
+ # Add permissions
22
+ security_block :foreman_hosts do
23
+ permission :view_foreman_hosts, :'foreman_hosts/hosts' => [:report_index]
24
+
25
+ permission :view_foreman_syhostmodels, :'foreman_hosts/syhostmodels' => [:index, :show, :auto_complete_search]
26
+ permission :new_foreman_syhostmodels, :'foreman_hosts/syhostmodels' => [:new, :create]
27
+ permission :edit_foreman_syhostmodels, :'foreman_hosts/syhostmodels' => [:edit, :update]
28
+ permission :delete_foreman_syhostmodels, :'foreman_hosts/syhostmodels' => [:destroy]
29
+ end
30
+
31
+ # Add a new role called 'Discovery' if it doesn't exist
32
+ role 'ForemanHosts', [:view_foreman_hosts, :view_foreman_syhostmodels, :new_foreman_syhostmodels, :edit_foreman_syhostmodels, :delete_foreman_syhostmodels]
33
+
34
+ # add menu entry
35
+
36
+ sub_menu :top_menu, :export_menu, :caption=> N_('Export'), :after=> :infrastructure_menu do
37
+ menu :top_menu, :level1, :caption=>N_('ExportTemplates'), :url_hash => { :controller => 'foreman_hosts/syhostmodels', :action => :index }
38
+ menu :top_menu, :level2, :caption=>N_('ExportHosts'), :url_hash => { :controller => 'foreman_hosts/hosts', :action => :report_index }
39
+ end
40
+ # menu :top_menu, :template,
41
+ # url_hash: { controller: :'foreman_hosts/hosts', action: :new_action },
42
+ # caption: 'ForemanHosts',
43
+ # parent: :hosts_menu,
44
+ # after: :hosts
45
+
46
+ # add dashboard widget
47
+ widget 'foreman_hosts_widget', name: N_('Foreman plugin template widget'), sizex: 4, sizey: 1
48
+ end
49
+ end
50
+
51
+ # Precompile any JS or CSS files under app/assets/
52
+ # If requiring files from each other, list them explicitly here to avoid precompiling the same
53
+ # content twice.
54
+ assets_to_precompile =
55
+ Dir.chdir(root) do
56
+ Dir['app/assets/javascripts/**/*', 'app/assets/stylesheets/**/*'].map do |f|
57
+ f.split(File::SEPARATOR, 4).last
58
+ end
59
+ end
60
+ initializer 'foreman_hosts.assets.precompile' do |app|
61
+ app.config.assets.precompile += assets_to_precompile
62
+ end
63
+ initializer 'foreman_hosts.configure_assets', group: :assets do
64
+ SETTINGS[:foreman_hosts] = { assets: { precompile: assets_to_precompile } }
65
+ end
66
+
67
+ # Include concerns in this config.to_prepare block
68
+ config.to_prepare do
69
+ begin
70
+ Host::Managed.send(:include, ForemanHosts::HostExtensions)
71
+ HostsHelper.send(:include, ForemanHosts::HostsHelperExtensions)
72
+ rescue => e
73
+ Rails.logger.warn "ForemanHosts: skipping engine hook (#{e})"
74
+ end
75
+ end
76
+
77
+ rake_tasks do
78
+ Rake::Task['db:seed'].enhance do
79
+ ForemanHosts::Engine.load_seed
80
+ end
81
+ end
82
+
83
+ initializer 'foreman_hosts.register_gettext', after: :load_config_initializers do |_app|
84
+ locale_dir = File.join(File.expand_path('../../..', __FILE__), 'locale')
85
+ locale_domain = 'foreman_hosts'
86
+ Foreman::Gettext::Support.add_text_domain locale_domain, locale_dir
87
+ end
88
+ initializer "foreman_chef.load_app_instance_data" do |app|
89
+ #app.config.paths['db/migrate'] += PluginTemplate::Engine.paths['db/migrate'].existent
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,3 @@
1
+ module ForemanHosts
2
+ VERSION = '0.0.1'
3
+ end
@@ -0,0 +1,4 @@
1
+ require 'foreman_hosts/engine'
2
+
3
+ module ForemanHosts
4
+ end
@@ -0,0 +1,49 @@
1
+ # Tasks
2
+ namespace :foreman_hosts do
3
+ namespace :example do
4
+ desc 'Example Task'
5
+ task task: :environment do
6
+ # Task goes here
7
+ end
8
+ end
9
+ end
10
+
11
+ # Tests
12
+ namespace :test do
13
+ desc 'Test ForemanHosts'
14
+ Rake::TestTask.new(:foreman_hosts) do |t|
15
+ test_dir = File.join(File.dirname(__FILE__), '../..', 'test')
16
+ t.libs << ['test', test_dir]
17
+ t.pattern = "#{test_dir}/**/*_test.rb"
18
+ t.verbose = true
19
+ end
20
+ end
21
+
22
+ namespace :foreman_hosts do
23
+ task :rubocop do
24
+ begin
25
+ require 'rubocop/rake_task'
26
+ RuboCop::RakeTask.new(:rubocop_foreman_hosts) do |task|
27
+ task.patterns = ["#{ForemanHosts::Engine.root}/app/**/*.rb",
28
+ "#{ForemanHosts::Engine.root}/lib/**/*.rb",
29
+ "#{ForemanHosts::Engine.root}/test/**/*.rb"]
30
+ end
31
+ rescue
32
+ puts 'Rubocop not loaded.'
33
+ end
34
+
35
+ Rake::Task['rubocop_foreman_hosts'].invoke
36
+ end
37
+ end
38
+
39
+ Rake::Task[:test].enhance do
40
+ Rake::Task['test:foreman_hosts'].invoke
41
+ end
42
+
43
+ load 'tasks/jenkins.rake'
44
+ if Rake::Task.task_defined?(:'jenkins:unit')
45
+ Rake::Task['jenkins:unit'].enhance do
46
+ Rake::Task['test:foreman_hosts'].invoke
47
+ Rake::Task['foreman_hosts:rubocop'].invoke
48
+ end
49
+ end
data/locale/Makefile ADDED
@@ -0,0 +1,62 @@
1
+ #
2
+ # Makefile for PO merging and MO generation. More info in the README.
3
+ #
4
+ # make all-mo (default) - generate MO files
5
+ # make check - check translations using translate-tool
6
+ # make tx-update - download and merge translations from Transifex
7
+ # make clean - clean everything
8
+ #
9
+ DOMAIN = foreman_hosts
10
+ VERSION = $(shell ruby -e 'require "rubygems";spec = Gem::Specification::load(Dir.glob("../*.gemspec")[0]);puts spec.version')
11
+ POTFILE = $(DOMAIN).pot
12
+ MOFILE = $(DOMAIN).mo
13
+ POFILES = $(shell find . -name '*.po')
14
+ MOFILES = $(patsubst %.po,%.mo,$(POFILES))
15
+ POXFILES = $(patsubst %.po,%.pox,$(POFILES))
16
+
17
+ %.mo: %.po
18
+ mkdir -p $(shell dirname $@)/LC_MESSAGES
19
+ msgfmt -o $(shell dirname $@)/LC_MESSAGES/$(MOFILE) $<
20
+
21
+ # Generate MO files from PO files
22
+ all-mo: $(MOFILES)
23
+
24
+ # Check for malformed strings
25
+ %.pox: %.po
26
+ msgfmt -c $<
27
+ pofilter --nofuzzy -t variables -t blank -t urls -t emails -t long -t newlines \
28
+ -t endwhitespace -t endpunc -t puncspacing -t options -t printf -t validchars --gnome $< > $@
29
+ cat $@
30
+ ! grep -q msgid $@
31
+
32
+ check: $(POXFILES)
33
+ msgfmt -c ${POTFILE}
34
+
35
+ # Merge PO files
36
+ update-po:
37
+ for f in $(shell find ./ -name "*.po") ; do \
38
+ msgmerge -N --backup=none -U $$f ${POTFILE} ; \
39
+ done
40
+
41
+ # Unify duplicate translations
42
+ uniq-po:
43
+ for f in $(shell find ./ -name "*.po") ; do \
44
+ msguniq $$f -o $$f ; \
45
+ done
46
+
47
+ tx-pull:
48
+ tx pull -f
49
+ for f in $(POFILES) ; do \
50
+ sed -i 's/^\("Project-Id-Version: \).*$$/\1$(DOMAIN) $(VERSION)\\n"/' $$f; \
51
+ done
52
+ -git commit -a -m "i18n - pulling from tx"
53
+
54
+ reset-po:
55
+ # merging po files is unnecessary when using transifex.com
56
+ git checkout -- ../locale/*/*po
57
+
58
+ tx-update: tx-pull reset-po $(MOFILES)
59
+ # amend mo files
60
+ git add ../locale/*/LC_MESSAGES
61
+ git commit -a --amend -m "i18n - pulling from tx"
62
+ -echo Changes commited!
@@ -0,0 +1,19 @@
1
+ # foreman_hosts
2
+ #
3
+ # This file is distributed under the same license as foreman_hosts.
4
+ #
5
+ #, fuzzy
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: version 0.0.1\n"
9
+ "Report-Msgid-Bugs-To: \n"
10
+ "POT-Creation-Date: 2014-08-20 08:46+0100\n"
11
+ "PO-Revision-Date: 2014-08-20 08:54+0100\n"
12
+ "Last-Translator: Foreman Team <foreman-dev@googlegroups.com>\n"
13
+ "Language-Team: Foreman Team <foreman-dev@googlegroups.com>\n"
14
+ "Language: \n"
15
+ "MIME-Version: 1.0\n"
16
+ "Content-Type: text/plain; charset=UTF-8\n"
17
+ "Content-Transfer-Encoding: 8bit\n"
18
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
+
@@ -0,0 +1,19 @@
1
+ # foreman_hosts
2
+ #
3
+ # This file is distributed under the same license as foreman_hosts.
4
+ #
5
+ #, fuzzy
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: version 0.0.1\n"
9
+ "Report-Msgid-Bugs-To: \n"
10
+ "POT-Creation-Date: 2014-08-20 08:46+0100\n"
11
+ "PO-Revision-Date: 2014-08-20 08:46+0100\n"
12
+ "Last-Translator: Foreman Team <foreman-dev@googlegroups.com>\n"
13
+ "Language-Team: Foreman Team <foreman-dev@googlegroups.com>\n"
14
+ "Language: \n"
15
+ "MIME-Version: 1.0\n"
16
+ "Content-Type: text/plain; charset=UTF-8\n"
17
+ "Content-Transfer-Encoding: 8bit\n"
18
+ "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
19
+
data/locale/gemspec.rb ADDED
@@ -0,0 +1,2 @@
1
+ # Matches foreman_hosts.gemspec
2
+ _('TODO: Description of ForemanHosts.')
@@ -0,0 +1,5 @@
1
+ FactoryGirl.define do
2
+ factory :host do
3
+ name 'foreman_hosts'
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ # This calls the main test_helper in Foreman-core
2
+ require 'test_helper'
3
+
4
+ # Add plugin to FactoryGirl's paths
5
+ FactoryGirl.definition_file_paths << File.join(File.dirname(__FILE__), 'factories')
6
+ FactoryGirl.reload
@@ -0,0 +1,11 @@
1
+ require 'test_plugin_helper'
2
+
3
+ class ForemanHostsTest < ActiveSupport::TestCase
4
+ setup do
5
+ User.current = User.find_by_login 'admin'
6
+ end
7
+
8
+ test 'the truth' do
9
+ assert true
10
+ end
11
+ end
metadata ADDED
@@ -0,0 +1,154 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: foreman_export_hosts
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - jianbo
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2015-10-16 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'
30
+ - !ruby/object:Gem::Dependency
31
+ name: nested_form
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rubocop
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rdoc
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ description: Description of ForemanHosts.
79
+ email:
80
+ - jianbo.ji@shinyinfo.com.cn
81
+ executables: []
82
+ extensions: []
83
+ extra_rdoc_files: []
84
+ files:
85
+ - app/views/dashboard/_foreman_hosts_widget.html.erb
86
+ - app/views/foreman_hosts/layouts/layouts/new_layout.html.erb
87
+ - app/views/foreman_hosts/layouts/new_layout.html.erb
88
+ - app/views/foreman_hosts/syhostmodels/edit.html.erb
89
+ - app/views/foreman_hosts/syhostmodels/new.html.erb
90
+ - app/views/foreman_hosts/syhostmodels/_report.html.erb
91
+ - app/views/foreman_hosts/syhostmodels/show.html.erb
92
+ - app/views/foreman_hosts/syhostmodels/index.html.erb
93
+ - app/views/foreman_hosts/syhostmodels/_list.html.erb
94
+ - app/views/foreman_hosts/syhostmodels/_form.html.erb
95
+ - app/views/foreman_hosts/syhostmodels/_sub.html.erb
96
+ - app/views/foreman_hosts/hosts/export.xlsx.axlsx
97
+ - app/views/foreman_hosts/hosts/report_index.html.erb
98
+ - app/views/foreman_hosts/hosts/hosts/new_action.html.erb
99
+ - app/assets/javascripts/jquery.battatech.excelexport.js
100
+ - app/assets/javascripts/application.js
101
+ - app/overrides/dashboard/index/sample_override.html.erb.deface
102
+ - app/controllers/foreman_hosts/syhostmodeldetails_controller.rb
103
+ - app/controllers/foreman_hosts/syhostmodels_controller.rb
104
+ - app/controllers/foreman_hosts/hosts_controller.rb
105
+ - app/helpers/concerns/foreman_hosts/hosts_helper_extensions.rb
106
+ - app/models/concerns/foreman_hosts/hosts_extensions.rb
107
+ - app/models/foreman_hosts/syhostmodeldetail.rb
108
+ - app/models/foreman_hosts/syhostmodel.rb
109
+ - bin/foreman-hosts
110
+ - config/routes.rb
111
+ - db/migrate/20151015022411_create_syhostmodels.rb
112
+ - db/migrate/20151015050239_create_syhostmodeldetails.rb
113
+ - lib/tasks/foreman_hosts_tasks.rake
114
+ - lib/foreman_hosts.rb
115
+ - lib/foreman_hosts/version.rb
116
+ - lib/foreman_hosts/engine.rb
117
+ - locale/gemspec.rb
118
+ - locale/en/foreman_hosts.po
119
+ - locale/Makefile
120
+ - locale/foreman_hosts.pot
121
+ - LICENSE
122
+ - Rakefile
123
+ - README.md
124
+ - test/test_plugin_helper.rb
125
+ - test/unit/foreman_hosts_test.rb
126
+ - test/factories/foreman_hosts_factories.rb
127
+ homepage: https://github.com/stdtnt/foreman_hosts
128
+ licenses: []
129
+ post_install_message:
130
+ rdoc_options: []
131
+ require_paths:
132
+ - lib
133
+ required_ruby_version: !ruby/object:Gem::Requirement
134
+ none: false
135
+ requirements:
136
+ - - ! '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ required_rubygems_version: !ruby/object:Gem::Requirement
140
+ none: false
141
+ requirements:
142
+ - - ! '>='
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ requirements: []
146
+ rubyforge_project:
147
+ rubygems_version: 1.8.23.2
148
+ signing_key:
149
+ specification_version: 3
150
+ summary: Summary of ForemanHosts.
151
+ test_files:
152
+ - test/test_plugin_helper.rb
153
+ - test/unit/foreman_hosts_test.rb
154
+ - test/factories/foreman_hosts_factories.rb