foreman_probing 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 (72) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +619 -0
  3. data/README.md +102 -0
  4. data/Rakefile +47 -0
  5. data/app/controllers/foreman_probing/api/v2/scans_controller.rb +66 -0
  6. data/app/controllers/foreman_probing/hosts_controller.rb +14 -0
  7. data/app/controllers/foreman_probing/scans_controller.rb +47 -0
  8. data/app/helpers/concerns/foreman_probing/hosts_helper_extensions.rb +9 -0
  9. data/app/helpers/concerns/foreman_probing/subnet_helper_extensions.rb +7 -0
  10. data/app/helpers/foreman_probing/scans_helper.rb +42 -0
  11. data/app/lib/actions/create_subnets.rb +27 -0
  12. data/app/lib/actions/import_host_facts.rb +85 -0
  13. data/app/lib/actions/perform_scan.rb +26 -0
  14. data/app/lib/actions/process_host.rb +18 -0
  15. data/app/lib/actions/process_scan.rb +21 -0
  16. data/app/lib/actions/scan_host.rb +35 -0
  17. data/app/lib/actions/update_probing_facet.rb +44 -0
  18. data/app/models/concerns/foreman_probing/foreman_tasks_task_extensions.rb +9 -0
  19. data/app/models/concerns/foreman_probing/host_extensions.rb +10 -0
  20. data/app/models/concerns/foreman_probing/subnet_extensions.rb +21 -0
  21. data/app/models/foreman_probing/fact_name.rb +11 -0
  22. data/app/models/foreman_probing/port.rb +21 -0
  23. data/app/models/foreman_probing/probing_facet.rb +27 -0
  24. data/app/models/foreman_probing/scan.rb +42 -0
  25. data/app/models/foreman_probing/scan_composer.rb +75 -0
  26. data/app/models/foreman_probing/scan_host.rb +8 -0
  27. data/app/models/foreman_probing/service.rb +14 -0
  28. data/app/models/foreman_probing/targeting/direct.rb +50 -0
  29. data/app/models/foreman_probing/targeting/search.rb +23 -0
  30. data/app/models/foreman_probing/targeting/subnet.rb +17 -0
  31. data/app/models/foreman_probing/targeting/subnet_discovery.rb +12 -0
  32. data/app/models/foreman_probing/targeting.rb +12 -0
  33. data/app/overrides/dashboard/index/sample_override.html.erb.deface +4 -0
  34. data/app/overrides/open_ports_tab.rb +14 -0
  35. data/app/services/foreman_probing/fact_parser.rb +47 -0
  36. data/app/services/foreman_probing/structured_fact_importer.rb +20 -0
  37. data/app/views/dashboard/_foreman_probing_widget.html.erb +2 -0
  38. data/app/views/foreman_probing/api/v2/scans/base.json.rabl +3 -0
  39. data/app/views/foreman_probing/api/v2/scans/index.json.rabl +3 -0
  40. data/app/views/foreman_probing/api/v2/scans/show.json.rabl +3 -0
  41. data/app/views/foreman_probing/hosts/_open_ports.html.erb +19 -0
  42. data/app/views/foreman_probing/hosts/hosts/new_action.html.erb +1 -0
  43. data/app/views/foreman_probing/hosts/new_action.html.erb +1 -0
  44. data/app/views/foreman_probing/layouts/layouts/new_layout.html.erb +0 -0
  45. data/app/views/foreman_probing/layouts/new_layout.html.erb +0 -0
  46. data/app/views/foreman_probing/probing_facets/_open_ports_tab_content.html.erb +6 -0
  47. data/app/views/foreman_probing/probing_facets/_open_ports_tab_title.html.erb +4 -0
  48. data/app/views/foreman_probing/scans/index.html.erb +31 -0
  49. data/app/views/foreman_probing/scans/new.html.erb +51 -0
  50. data/app/views/foreman_probing/scans/show.html.erb +41 -0
  51. data/app/views/foreman_probing/scans/show.js.erb +0 -0
  52. data/app/views/templates/ssh/add_public_keys.erb +22 -0
  53. data/app/views/templates/ssh/register_content_host.erb +34 -0
  54. data/app/views/templates/ssh/register_puppet.erb +19 -0
  55. data/config/routes.rb +28 -0
  56. data/db/migrate/20170401154201_create_foreman_probing_facets.rb +9 -0
  57. data/db/migrate/20170401154714_create_foreman_probing_ports.rb +13 -0
  58. data/db/migrate/20170401154726_create_foreman_probing_services.rb +10 -0
  59. data/db/migrate/20170620180935_create_foreman_probing_scans.rb +15 -0
  60. data/db/migrate/20170701190511_create_foreman_probing_targetings.rb +9 -0
  61. data/db/seeds.d/70-job_templates.rb +7 -0
  62. data/lib/foreman_probing/engine.rb +124 -0
  63. data/lib/foreman_probing/version.rb +3 -0
  64. data/lib/foreman_probing.rb +5 -0
  65. data/locale/Makefile +60 -0
  66. data/locale/en/foreman_probing.po +19 -0
  67. data/locale/foreman_probing.pot +19 -0
  68. data/locale/gemspec.rb +2 -0
  69. data/test/factories/foreman_probing_factories.rb +5 -0
  70. data/test/test_plugin_helper.rb +6 -0
  71. data/test/unit/foreman_probing_test.rb +11 -0
  72. metadata +159 -0
@@ -0,0 +1,19 @@
1
+ <%#
2
+ kind: job_template
3
+ name: Register Puppet - SSH Default
4
+ job_category: Commands
5
+ description_format: "Register Puppet"
6
+ provider_type: SSH
7
+ %>
8
+ yum install -y https://yum.puppetlabs.com/puppet5/puppet5-release-el-7.noarch.rpm
9
+ cat <<END > /etc/puppetlabs/puppet/puppet.conf
10
+ [agent]
11
+ server = <%= foreman_url %>
12
+ ca_server = <%= foreman_url %>
13
+ certname = <%= @host.certname %>
14
+ END
15
+
16
+ /opt/puppetlabs/puppet/bin/puppet agent --test
17
+
18
+ systemctl enable puppet
19
+ systemctl start puppet
data/config/routes.rb ADDED
@@ -0,0 +1,28 @@
1
+ Rails.application.routes.draw do
2
+ # get 'new_action', to: 'foreman_probing/hosts#new_action'
3
+ namespace :foreman_probing do
4
+ resources :scans, :only => [:create, :new, :show, :index] do
5
+ member do
6
+ get :rerun
7
+ end
8
+ end
9
+
10
+ constraints(:id => /[^\/]+/) do
11
+ resources :hosts do
12
+ member do
13
+ get 'open_ports'
14
+ end
15
+ end
16
+ end
17
+
18
+ namespace :api do
19
+ scope "(:apiv)", :module => :v2, :defaults => {:apiv => 'v2'}, :apiv => /v2/, :constraints => ApiConstraints.new(:version => 2, :default => true) do
20
+ resources :scans, :only => [:create, :index, :show] do
21
+ member do
22
+ get :rerun
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,9 @@
1
+ class CreateForemanProbingFacets < ActiveRecord::Migration
2
+ def change
3
+ create_table :foreman_probing_probing_facets do |t|
4
+ t.integer :host_id
5
+ t.string :status
6
+ t.timestamps
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ class CreateForemanProbingPorts < ActiveRecord::Migration
2
+ def change
3
+ create_table :foreman_probing_ports do |t|
4
+ t.integer :number
5
+ t.string :protocol
6
+ t.string :state
7
+ t.timestamps :null => false
8
+ t.integer :probing_facet_id, :index => true
9
+ end
10
+
11
+ add_index :foreman_probing_ports, [:number, :protocol]
12
+ end
13
+ end
@@ -0,0 +1,10 @@
1
+ class CreateForemanProbingServices < ActiveRecord::Migration
2
+ def change
3
+ create_table :foreman_probing_services do |t|
4
+ t.integer :port_id, :index => true
5
+ t.string :name
6
+ t.string :method
7
+ t.integer :confidence
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,15 @@
1
+ class CreateForemanProbingScans < ActiveRecord::Migration
2
+ def change
3
+ create_table :foreman_probing_scans do |t|
4
+ t.belongs_to :smart_proxy, :index => true
5
+ t.string :scan_type
6
+ t.string :raw_ports
7
+ t.string :task_id
8
+ end
9
+
10
+ create_table :foreman_probing_scan_hosts do |t|
11
+ t.integer :scan_id, :index => true
12
+ t.integer :host_id, :index => true
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,9 @@
1
+ class CreateForemanProbingTargetings < ActiveRecord::Migration
2
+ def change
3
+ create_table :foreman_probing_targetings do |t|
4
+ t.string :type, index: true, null: false
5
+ t.string :raw_targets, index: true
6
+ t.belongs_to :scan, index: true
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,7 @@
1
+ User.as_anonymous_admin do
2
+ JobTemplate.without_auditing do
3
+ Dir[File.join("#{ForemanProbing::Engine.root}/app/views/templates/**/*.erb")].each do |template|
4
+ JobTemplate.import_raw!(File.read(template), :default => true, :locked => true, :update => false)
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,124 @@
1
+ require 'deface'
2
+
3
+ module ForemanProbing
4
+ class Engine < ::Rails::Engine
5
+ engine_name 'foreman_probing'
6
+
7
+ config.autoload_paths += Dir["#{config.root}/app/controllers/concerns"]
8
+ config.autoload_paths += Dir["#{config.root}/app/helpers"]
9
+ config.autoload_paths += Dir["#{config.root}/app/helpers/concerns"]
10
+ config.autoload_paths += Dir["#{config.root}/app/models/concerns"]
11
+ config.autoload_paths += Dir["#{config.root}/app/overrides"]
12
+ config.autoload_paths += Dir["#{config.root}/app/services"]
13
+ config.autoload_paths += Dir["#{config.root}/app/lib/"]
14
+ config.autoload_paths += Dir["#{config.root}/app/lib/actions"]
15
+
16
+ initializer 'foreman_probing.apipie' do
17
+ Apipie.configuration.api_controllers_matcher << "#{ForemanProbing::Engine.root}/app/controllers/foreman_probing/api/v2/*.rb"
18
+ Apipie.configuration.checksum_path += ['/foreman_probing/api/v2/']
19
+ end
20
+
21
+ # Add any db migrations
22
+ initializer 'foreman_probing.load_app_instance_data' do |app|
23
+ ForemanProbing::Engine.paths['db/migrate'].existent.each do |path|
24
+ app.config.paths['db/migrate'] << path
25
+ end
26
+ end
27
+
28
+ initializer 'foreman_probing.register_plugin', :before => :finisher_hook do |_app|
29
+ Foreman::Plugin.register :foreman_probing do
30
+ requires_foreman '>= 1.4'
31
+
32
+ # Add permissions
33
+ security_block :foreman_probing do
34
+ permission :view_foreman_probing_open_ports, :hosts => [:open_ports], :resource_type => 'Host'
35
+ end
36
+
37
+ # Add a new role called 'Discovery' if it doesn't exist
38
+ # role 'ForemanProbing', [:view_foreman_probing]
39
+
40
+ menu :top_menu, :template,
41
+ url_hash: { controller: :'foreman_probing/scans', action: :index },
42
+ caption: _('Network scans'),
43
+ parent: :monitor_menu,
44
+ after: :audits
45
+
46
+
47
+ # add dashboard widget
48
+ # widget 'foreman_probing_widget', name: N_('Foreman plugin template widget'), sizex: 4, sizey: 1
49
+ end
50
+ end
51
+
52
+ # Precompile any JS or CSS files under app/assets/
53
+ # If requiring files from each other, list them explicitly here to avoid precompiling the same
54
+ # content twice.
55
+ assets_to_precompile =
56
+ Dir.chdir(root) do
57
+ Dir['app/assets/javascripts/**/*', 'app/assets/stylesheets/**/*'].map do |f|
58
+ f.split(File::SEPARATOR, 4).last
59
+ end
60
+ end
61
+ initializer 'foreman_probing.assets.precompile' do |app|
62
+ app.config.assets.precompile += assets_to_precompile
63
+ end
64
+ initializer 'foreman_probing.configure_assets', group: :assets do
65
+ SETTINGS[:foreman_probing] = { assets: { precompile: assets_to_precompile } }
66
+ end
67
+
68
+ # Include concerns in this config.to_prepare block
69
+ config.to_prepare do
70
+ begin
71
+ Host::Managed.send(:prepend, ForemanProbing::HostExtensions)
72
+ ForemanTasks::Task.send(:prepend, ForemanProbing::ForemanTasksTaskExtensions)
73
+ HostsHelper.send(:prepend, ForemanProbing::HostsHelperExtensions)
74
+
75
+ ::FactImporter.register_fact_importer(
76
+ :foreman_probing,
77
+ ForemanProbing::StructuredFactImporter
78
+ )
79
+ ::FactParser.register_fact_parser(:foreman_probing, ForemanProbing::FactParser)
80
+ rescue => e
81
+ Rails.logger.warn "ForemanProbing: skipping engine hook (#{e})"
82
+ end
83
+ end
84
+
85
+ config.to_prepare do
86
+ Facets.register(ForemanProbing::ProbingFacet) do
87
+ # extend_model PuppetHostExtensions
88
+ # add_helper PuppetFacetHelper
89
+ # add_tabs :puppet_tabs
90
+ # api_view :list => 'api/v2/puppet_facets/base', :single => 'api/v2/puppet_facets/single_host_view'
91
+ # template_compatibility_properties :environment_id, :puppet_proxy_id, :puppet_ca_proxy_id
92
+ end
93
+ end
94
+
95
+ rake_tasks do
96
+ Rake::Task['db:seed'].enhance do
97
+ ForemanProbing::Engine.load_seed
98
+ end
99
+ end
100
+
101
+ initializer 'foreman_probing.register_gettext', after: :load_config_initializers do |_app|
102
+ locale_dir = File.join(File.expand_path('../../..', __FILE__), 'locale')
103
+ locale_domain = 'foreman_probing'
104
+ Foreman::Gettext::Support.add_text_domain locale_domain, locale_dir
105
+ end
106
+
107
+ initializer 'foreman_probing.require_dynflow', :before => 'foreman_tasks.initialize_dynflow' do |app|
108
+ ForemanTasks.dynflow.require!
109
+ ForemanTasks.dynflow.config.eager_load_paths << File.join(ForemanProbing::Engine.root, 'app/lib/actions')
110
+ end
111
+
112
+ initializer 'foreman_probing.register_paths' do |_app|
113
+ ForemanTasks.dynflow.config.eager_load_paths.concat(%W[#{ForemanProbing::Engine.root}/app/lib/actions}])
114
+ end
115
+ end
116
+
117
+ def self.table_name_prefix
118
+ 'foreman_probing_'
119
+ end
120
+
121
+ def use_relative_model_naming
122
+ true
123
+ end
124
+ end
@@ -0,0 +1,3 @@
1
+ module ForemanProbing
2
+ VERSION = '0.0.1'.freeze
3
+ end
@@ -0,0 +1,5 @@
1
+ require 'foreman-tasks'
2
+ require 'foreman_probing/engine'
3
+
4
+ module ForemanProbing
5
+ end
data/locale/Makefile ADDED
@@ -0,0 +1,60 @@
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_probing
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 '$(DOMAIN).po')
14
+ MOFILES = $(patsubst %.po,%.mo,$(POFILES))
15
+ POXFILES = $(patsubst %.po,%.pox,$(POFILES))
16
+ EDITFILES = $(patsubst %.po,%.edit.po,$(POFILES))
17
+
18
+ %.mo: %.po
19
+ mkdir -p $(shell dirname $@)/LC_MESSAGES
20
+ msgfmt -o $(shell dirname $@)/LC_MESSAGES/$(MOFILE) $<
21
+
22
+ # Generate MO files from PO files
23
+ all-mo: $(MOFILES)
24
+
25
+ # Check for malformed strings
26
+ %.pox: %.po
27
+ msgfmt -c $<
28
+ pofilter --nofuzzy -t variables -t blank -t urls -t emails -t long -t newlines \
29
+ -t endwhitespace -t endpunc -t puncspacing -t options -t printf -t validchars --gnome $< > $@
30
+ cat $@
31
+ ! grep -q msgid $@
32
+
33
+ %.edit.po:
34
+ touch $@
35
+
36
+ check: $(POXFILES)
37
+
38
+ # Unify duplicate translations
39
+ uniq-po:
40
+ for f in $(shell find ./ -name "*.po") ; do \
41
+ msguniq $$f -o $$f ; \
42
+ done
43
+
44
+ tx-pull: $(EDITFILES)
45
+ tx pull -f
46
+ for f in $(EDITFILES) ; do \
47
+ sed -i 's/^\("Project-Id-Version: \).*$$/\1$(DOMAIN) $(VERSION)\\n"/' $$f; \
48
+ done
49
+
50
+ tx-update: tx-pull
51
+ @echo
52
+ @echo Run rake plugin:gettext[$(DOMAIN)] from the Foreman installation, then make -C locale mo-files to finish
53
+ @echo
54
+
55
+ mo-files: $(MOFILES)
56
+ git add $(POFILES) $(POTFILE) ../locale/*/LC_MESSAGES
57
+ git commit -m "i18n - pulling from tx"
58
+ @echo
59
+ @echo Changes commited!
60
+ @echo
@@ -0,0 +1,19 @@
1
+ # foreman_probing
2
+ #
3
+ # This file is distributed under the same license as foreman_probing.
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_probing
2
+ #
3
+ # This file is distributed under the same license as foreman_probing.
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_probing.gemspec
2
+ _('TODO: Description of ForemanProbing.')
@@ -0,0 +1,5 @@
1
+ FactoryGirl.define do
2
+ factory :host do
3
+ name 'foreman_probing'
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 ForemanProbingTest < 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,159 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: foreman_probing
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Adam Ruzicka
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-01-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: deface
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: foreman-tasks
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.9'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.9'
41
+ - !ruby/object:Gem::Dependency
42
+ name: dynflow
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.8'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.8'
55
+ description: Foreman plugin for detecting network devices
56
+ email:
57
+ - aruzicka@redhat.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - LICENSE
63
+ - README.md
64
+ - Rakefile
65
+ - app/controllers/foreman_probing/api/v2/scans_controller.rb
66
+ - app/controllers/foreman_probing/hosts_controller.rb
67
+ - app/controllers/foreman_probing/scans_controller.rb
68
+ - app/helpers/concerns/foreman_probing/hosts_helper_extensions.rb
69
+ - app/helpers/concerns/foreman_probing/subnet_helper_extensions.rb
70
+ - app/helpers/foreman_probing/scans_helper.rb
71
+ - app/lib/actions/create_subnets.rb
72
+ - app/lib/actions/import_host_facts.rb
73
+ - app/lib/actions/perform_scan.rb
74
+ - app/lib/actions/process_host.rb
75
+ - app/lib/actions/process_scan.rb
76
+ - app/lib/actions/scan_host.rb
77
+ - app/lib/actions/update_probing_facet.rb
78
+ - app/models/concerns/foreman_probing/foreman_tasks_task_extensions.rb
79
+ - app/models/concerns/foreman_probing/host_extensions.rb
80
+ - app/models/concerns/foreman_probing/subnet_extensions.rb
81
+ - app/models/foreman_probing/fact_name.rb
82
+ - app/models/foreman_probing/port.rb
83
+ - app/models/foreman_probing/probing_facet.rb
84
+ - app/models/foreman_probing/scan.rb
85
+ - app/models/foreman_probing/scan_composer.rb
86
+ - app/models/foreman_probing/scan_host.rb
87
+ - app/models/foreman_probing/service.rb
88
+ - app/models/foreman_probing/targeting.rb
89
+ - app/models/foreman_probing/targeting/direct.rb
90
+ - app/models/foreman_probing/targeting/search.rb
91
+ - app/models/foreman_probing/targeting/subnet.rb
92
+ - app/models/foreman_probing/targeting/subnet_discovery.rb
93
+ - app/overrides/dashboard/index/sample_override.html.erb.deface
94
+ - app/overrides/open_ports_tab.rb
95
+ - app/services/foreman_probing/fact_parser.rb
96
+ - app/services/foreman_probing/structured_fact_importer.rb
97
+ - app/views/dashboard/_foreman_probing_widget.html.erb
98
+ - app/views/foreman_probing/api/v2/scans/base.json.rabl
99
+ - app/views/foreman_probing/api/v2/scans/index.json.rabl
100
+ - app/views/foreman_probing/api/v2/scans/show.json.rabl
101
+ - app/views/foreman_probing/hosts/_open_ports.html.erb
102
+ - app/views/foreman_probing/hosts/hosts/new_action.html.erb
103
+ - app/views/foreman_probing/hosts/new_action.html.erb
104
+ - app/views/foreman_probing/layouts/layouts/new_layout.html.erb
105
+ - app/views/foreman_probing/layouts/new_layout.html.erb
106
+ - app/views/foreman_probing/probing_facets/_open_ports_tab_content.html.erb
107
+ - app/views/foreman_probing/probing_facets/_open_ports_tab_title.html.erb
108
+ - app/views/foreman_probing/scans/index.html.erb
109
+ - app/views/foreman_probing/scans/new.html.erb
110
+ - app/views/foreman_probing/scans/show.html.erb
111
+ - app/views/foreman_probing/scans/show.js.erb
112
+ - app/views/templates/ssh/add_public_keys.erb
113
+ - app/views/templates/ssh/register_content_host.erb
114
+ - app/views/templates/ssh/register_puppet.erb
115
+ - config/routes.rb
116
+ - db/migrate/20170401154201_create_foreman_probing_facets.rb
117
+ - db/migrate/20170401154714_create_foreman_probing_ports.rb
118
+ - db/migrate/20170401154726_create_foreman_probing_services.rb
119
+ - db/migrate/20170620180935_create_foreman_probing_scans.rb
120
+ - db/migrate/20170701190511_create_foreman_probing_targetings.rb
121
+ - db/seeds.d/70-job_templates.rb
122
+ - lib/foreman_probing.rb
123
+ - lib/foreman_probing/engine.rb
124
+ - lib/foreman_probing/version.rb
125
+ - locale/Makefile
126
+ - locale/en/foreman_probing.po
127
+ - locale/foreman_probing.pot
128
+ - locale/gemspec.rb
129
+ - test/factories/foreman_probing_factories.rb
130
+ - test/test_plugin_helper.rb
131
+ - test/unit/foreman_probing_test.rb
132
+ homepage: https://github.com/adamruzicka/foreman_probing
133
+ licenses:
134
+ - GPL-3.0
135
+ metadata: {}
136
+ post_install_message:
137
+ rdoc_options: []
138
+ require_paths:
139
+ - lib
140
+ required_ruby_version: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ required_rubygems_version: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - ">="
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
150
+ requirements: []
151
+ rubyforge_project:
152
+ rubygems_version: 2.6.13
153
+ signing_key:
154
+ specification_version: 4
155
+ summary: Foreman plugin for detecting network devices
156
+ test_files:
157
+ - test/factories/foreman_probing_factories.rb
158
+ - test/test_plugin_helper.rb
159
+ - test/unit/foreman_probing_test.rb