foreman_probing 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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