foreman_m2 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +619 -0
- data/README.md +48 -0
- data/Rakefile +47 -0
- data/app/controllers/foreman_m2/hosts_controller.rb +19 -0
- data/app/helpers/concerns/foreman_m2/hosts_helper_extensions.rb +12 -0
- data/app/helpers/concerns/foreman_m2/images_helper_extensions.rb +24 -0
- data/app/lib/proxy_api/m2.rb +35 -0
- data/app/models/concerns/foreman_m2/compute_resource_extensions.rb +23 -0
- data/app/models/concerns/foreman_m2/host_extensions.rb +110 -0
- data/app/models/concerns/foreman_m2/host_orchestration_extensions.rb +52 -0
- data/app/models/concerns/foreman_m2/nic_extensions.rb +17 -0
- data/app/models/concerns/foreman_m2/nic_orchestration_extensions.rb +75 -0
- data/app/models/foreman_m2/m2.rb +20 -0
- data/app/overrides/give_ids.rb +14 -0
- data/app/overrides/hybrid_js.rb +4 -0
- data/app/overrides/update_media_selection.rb +6 -0
- data/app/views/compute_resources/edit/_m2.html.erb +0 -0
- data/app/views/compute_resources/form/_m2.html.erb +1 -0
- data/app/views/compute_resources/show/_m2.html.erb +0 -0
- data/app/views/compute_resources_vms/form/m2/_base.html.erb +16 -0
- data/app/views/dashboard/_foreman_m2_widget.erb +2 -0
- data/app/views/foreman_m2/hosts/hosts/new_action.html.erb +1 -0
- data/app/views/foreman_m2/hosts/new_action.html.erb +15 -0
- data/app/views/foreman_m2/layouts/layouts/new_layout.html.erb +0 -0
- data/app/views/foreman_m2/layouts/new_layout.html.erb +0 -0
- data/app/views/hosts/provisioning_method/hybrid/_form.html.erb +6 -0
- data/app/views/images/form/_m2.html.erb +6 -0
- data/app/views/overrides/host_creation/_add_bm_div.html.erb +12 -0
- data/app/views/overrides/host_creation/_add_hybrid_js.html.erb +85 -0
- data/app/views/overrides/host_creation/_add_ptable_div.html.erb +4 -0
- data/app/views/overrides/image_selection/_host_media_type_select.html.erb +28 -0
- data/app/views/unattended/provisioning_templates/PXELinux/m2_default_pxelinux.erb +18 -0
- data/app/views/unattended/provisioning_templates/iPXE/m2_default_ipxe.erb +22 -0
- data/config/routes.rb +3 -0
- data/db/seeds.d/071-m2_prov_templates.rb +59 -0
- data/db/seeds.d/111-m2_sp_features.rb +6 -0
- data/lib/foreman_m2/engine.rb +80 -0
- data/lib/foreman_m2/version.rb +3 -0
- data/lib/foreman_m2.rb +5 -0
- data/lib/tasks/foreman_m2_tasks.rake +47 -0
- data/locale/Makefile +60 -0
- data/locale/en/foreman_m2.po +19 -0
- data/locale/foreman_m2.pot +19 -0
- data/locale/gemspec.rb +2 -0
- data/test/factories/foreman_m2_factories.rb +2 -0
- data/test/test_plugin_helper.rb +7 -0
- data/test/unit/foreman_m2_test.rb +11 -0
- metadata +136 -0
@@ -0,0 +1,28 @@
|
|
1
|
+
<% media_selection = using_hostgroups_page? ? use_install_media(@hostgroup) : use_install_media(@host, :selected_host_group => @hostgroup)
|
2
|
+
install_media_radio = media_selection ? 'checked="checked"':''
|
3
|
+
synced_content_radio = media_selection ? '' : 'checked="checked"'
|
4
|
+
install_media_disabled = os_media.empty? ? 'disabled = true' : ''
|
5
|
+
kickstart_options = using_hostgroups_page? ? kickstart_repository_options(@hostgroup) : kickstart_repository_options(@host, :selected_host_group => @hostgroup)
|
6
|
+
synced_content_disabled = kickstart_options.empty? ? 'disabled = true' : ''
|
7
|
+
%>
|
8
|
+
|
9
|
+
<div class="clear-fix" id="media_selection_section">
|
10
|
+
<div class="form-group ">
|
11
|
+
<label class="col-md-2 control-label" for="use_install_media">Media Selection</label>
|
12
|
+
<div class="col-md-4">
|
13
|
+
<label class="radio-inline">
|
14
|
+
<input data-media-selector="true" id="host_use_synced_content" name="media_selector" value="synced_content" type="radio" <%= synced_content_radio %> <%= synced_content_disabled %>/> <%= _('Synced Content') %>
|
15
|
+
</label>
|
16
|
+
<label class="radio-inline">
|
17
|
+
<input data-media-selector="true" id="host_use_install_media" name="media_selector" value="install_media" type="radio" <%= install_media_radio %> <%= install_media_disabled %>/> <%= _('All Media') %>
|
18
|
+
</label>
|
19
|
+
<label class="radio-inline">
|
20
|
+
<input data-media-selector="true" id="host_use_m2_media" name="media_selector" value="m2_media" type="radio" <%= synced_content_radio %> <%= synced_content_disabled %>/> <%= _('M2 Media') %>
|
21
|
+
</label>
|
22
|
+
<span class="help-block">
|
23
|
+
<%= _("Select the installation media that will be used to provision this host. Choose 'Synced Content' for Synced Kickstart Repositories or 'All Media' for other media.") %>
|
24
|
+
</span>
|
25
|
+
</div>
|
26
|
+
<span class="help-block help-inline"></span>
|
27
|
+
</div>
|
28
|
+
</div>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<%#
|
2
|
+
kind: PXELinux
|
3
|
+
name: M2 default PXELinux
|
4
|
+
model: ProvisioningTemplate
|
5
|
+
%>
|
6
|
+
<%#
|
7
|
+
Chainboots iPXE/gPXE from PXELinux. Make sure the OS has iPXE template
|
8
|
+
associated and file ipxe.lkrn was copied in the TFTP directory (e.g. from
|
9
|
+
/usr/share/ipxe/ipxe.lkrn or iPXE project web site).
|
10
|
+
|
11
|
+
For more info visit:
|
12
|
+
http://projects.theforeman.org/projects/foreman/wiki/Fetch_boot_files_via_http_instead_of_TFTP
|
13
|
+
%>
|
14
|
+
DEFAULT linux
|
15
|
+
LABEL linux
|
16
|
+
KERNEL ipxe.lkrn
|
17
|
+
APPEND sleep 23 && dhcp && chain <%= foreman_url('iPXE') %>
|
18
|
+
IPAPPEND 2
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#!gpxe
|
2
|
+
<%#
|
3
|
+
kind: iPXE
|
4
|
+
name: M2 default iPXE
|
5
|
+
model: ProvisioningTemplate
|
6
|
+
oses:
|
7
|
+
-All
|
8
|
+
%>
|
9
|
+
<% subnet = @host.subnet -%>
|
10
|
+
<% if subnet.respond_to?(:dhcp_boot_mode?) && subnet.dhcp_boot_mode? -%>
|
11
|
+
<% static = '' -%>
|
12
|
+
<% else -%>
|
13
|
+
<% static_arg = 'static=yes' -%>
|
14
|
+
<% static = (@host.token.nil? ? '?' : '&') + static_arg -%>
|
15
|
+
<% end -%>
|
16
|
+
|
17
|
+
# Assuming we're using the M2 PXELinux BIOS template...
|
18
|
+
|
19
|
+
#sleep 23
|
20
|
+
set keep-san 1
|
21
|
+
sanboot --keep <%= @host.iscsi_target %> || shell
|
22
|
+
boot
|
data/config/routes.rb
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
# Provisioning templates
|
2
|
+
pxelinux_kind = TemplateKind.unscoped.where(:name => 'PXELinux').first_or_create
|
3
|
+
ipxe_kind = TemplateKind.unscoped.where(:name => 'iPXE').first_or_create
|
4
|
+
organizations = Organization.unscoped.all
|
5
|
+
locations = Location.unscoped.all
|
6
|
+
created = []
|
7
|
+
|
8
|
+
ProvisioningTemplate.without_auditing do
|
9
|
+
contents_pxelinux = File.read(File.join(ForemanM2::Engine.root, 'app',
|
10
|
+
'views', 'unattended',
|
11
|
+
'provisioning_templates', 'PXELinux',
|
12
|
+
'm2_default_pxelinux.erb'))
|
13
|
+
created << 'M2 default PXELinux' unless
|
14
|
+
ProvisioningTemplate.find_by(name: 'M2 default PXELinux')
|
15
|
+
temp_pxelinux = ProvisioningTemplate.unscoped
|
16
|
+
.where(:name => 'M2 default PXELinux')
|
17
|
+
.first_or_create do |template|
|
18
|
+
template.attributes = {
|
19
|
+
:template_kind_id => pxelinux_kind.id,
|
20
|
+
:snippet => false,
|
21
|
+
:template => contents_pxelinux
|
22
|
+
}
|
23
|
+
end
|
24
|
+
temp_pxelinux.attributes = {
|
25
|
+
:template => contents_pxelinux,
|
26
|
+
:default => true,
|
27
|
+
:vendor => 'Foreman M2'
|
28
|
+
}
|
29
|
+
temp_pxelinux.locked = true
|
30
|
+
temp_pxelinux.save!(:validate => false) if temp_pxelinux.changes.present?
|
31
|
+
|
32
|
+
contents_ipxe = File.read(File.join(ForemanM2::Engine.root, 'app',
|
33
|
+
'views', 'unattended',
|
34
|
+
'provisioning_templates', 'iPXE',
|
35
|
+
'm2_default_ipxe.erb'))
|
36
|
+
created << 'M2 default iPXE' unless
|
37
|
+
ProvisioningTemplate.find_by(name: 'M2 default iPXE')
|
38
|
+
temp_ipxe = ProvisioningTemplate.unscoped.where(:name => 'M2 default iPXE')
|
39
|
+
.first_or_create do |template|
|
40
|
+
template.attributes = {
|
41
|
+
:template_kind_id => ipxe_kind.id,
|
42
|
+
:snippet => false,
|
43
|
+
:template => contents_ipxe
|
44
|
+
}
|
45
|
+
end
|
46
|
+
temp_ipxe.attributes = {
|
47
|
+
:template => contents_ipxe,
|
48
|
+
:default => true,
|
49
|
+
:vendor => 'Foreman M2'
|
50
|
+
}
|
51
|
+
temp_ipxe.locked = true
|
52
|
+
temp_ipxe.save!(:validate => false) if temp_ipxe.changes.present?
|
53
|
+
|
54
|
+
ProvisioningTemplate.unscoped.where(:name => created,
|
55
|
+
:default => true).each do |template|
|
56
|
+
template.organizations = organizations if SETTINGS[:organizations_enabled]
|
57
|
+
template.locations = locations if SETTINGS[:locations_enabled]
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
module ForemanM2
|
2
|
+
# class BareMetalM2 < ComputeResource
|
3
|
+
# end
|
4
|
+
|
5
|
+
class Engine < ::Rails::Engine
|
6
|
+
engine_name 'foreman_m2'
|
7
|
+
|
8
|
+
config.autoload_paths += Dir["#{config.root}/app/controllers/concerns"]
|
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/models/foreman_m2"]
|
12
|
+
config.autoload_paths += Dir["#{config.root}/app/overrides"]
|
13
|
+
|
14
|
+
# Add any db migrations
|
15
|
+
initializer 'foreman_m2.load_app_instance_data' do |app|
|
16
|
+
ForemanM2::Engine.paths['db/migrate'].existent.each do |path|
|
17
|
+
app.config.paths['db/migrate'] << path
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
initializer 'foreman_m2.register_plugin',
|
22
|
+
:before => :finisher_hook do |_app|
|
23
|
+
Foreman::Plugin.register :foreman_m2 do
|
24
|
+
requires_foreman '>= 1.16'
|
25
|
+
|
26
|
+
compute_resource M2
|
27
|
+
parameter_filter ComputeResource, :url, :user, :password
|
28
|
+
|
29
|
+
# Add permissions
|
30
|
+
security_block :foreman_m2 do
|
31
|
+
permission :view_foreman_m2, :'foreman_m2/hosts' => [:new_action]
|
32
|
+
end
|
33
|
+
|
34
|
+
# Add a new role called 'Discovery' if it doesn't exist
|
35
|
+
role 'ForemanM2', [:view_foreman_m2]
|
36
|
+
|
37
|
+
# add menu entry
|
38
|
+
menu :top_menu, :template,
|
39
|
+
url_hash: { controller: :'foreman_m2/hosts', action: :new_action },
|
40
|
+
caption: 'ForemanM2',
|
41
|
+
parent: :hosts_menu,
|
42
|
+
after: :hosts
|
43
|
+
|
44
|
+
# add dashboard widget
|
45
|
+
widget 'foreman_m2_widget', name: N_('Foreman plugin template widget'),
|
46
|
+
sizex: 4, sizey: 1
|
47
|
+
|
48
|
+
provision_method 'hybrid', 'Network & Image Based'
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
# Include concerns in this config.to_prepare block
|
53
|
+
config.to_prepare do
|
54
|
+
begin
|
55
|
+
ComputeResource.send(:prepend, ForemanM2::ComputeResourceExtensions)
|
56
|
+
Host::Managed.send(:prepend, ForemanM2::HostExtensions)
|
57
|
+
Nic::Managed.send(:prepend, ForemanM2::NicOrchestrationExtensions)
|
58
|
+
Nic::Managed.send(:prepend, ForemanM2::NicExtensions)
|
59
|
+
Host::Managed.send(:prepend, ForemanM2::HostOrchestrationExtensions)
|
60
|
+
HostsHelper.send(:include, ForemanM2::HostsHelperExtensions)
|
61
|
+
ImagesHelper.send(:prepend, ForemanM2::ImagesHelperExtensions)
|
62
|
+
rescue StandardError => e
|
63
|
+
Rails.logger.warn "ForemanM2: skipping engine hook (#{e})"
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
rake_tasks do
|
68
|
+
Rake::Task['db:seed'].enhance do
|
69
|
+
ForemanM2::Engine.load_seed
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
initializer 'foreman_m2.register_gettext',
|
74
|
+
after: :load_config_initializers do |_app|
|
75
|
+
locale_dir = File.join(File.expand_path('../..', __dir__), 'locale')
|
76
|
+
locale_domain = 'foreman_m2'
|
77
|
+
Foreman::Gettext::Support.add_text_domain locale_domain, locale_dir
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
data/lib/foreman_m2.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'rake/testtask'
|
2
|
+
|
3
|
+
# Tasks
|
4
|
+
namespace :foreman_m2 do
|
5
|
+
namespace :example do
|
6
|
+
desc 'Example Task'
|
7
|
+
task task: :environment do
|
8
|
+
# Task goes here
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
# Tests
|
14
|
+
namespace :test do
|
15
|
+
desc 'Test ForemanM2'
|
16
|
+
Rake::TestTask.new(:foreman_m2) do |t|
|
17
|
+
test_dir = File.join(File.dirname(__FILE__), '../..', 'test')
|
18
|
+
t.libs << ['test', test_dir]
|
19
|
+
t.pattern = "#{test_dir}/**/*_test.rb"
|
20
|
+
t.verbose = true
|
21
|
+
t.warning = false
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
namespace :foreman_m2 do
|
26
|
+
task :rubocop do
|
27
|
+
begin
|
28
|
+
require 'rubocop/rake_task'
|
29
|
+
RuboCop::RakeTask.new(:rubocop_foreman_m2) do |task|
|
30
|
+
task.patterns = ["#{ForemanM2::Engine.root}/app/**/*.rb",
|
31
|
+
"#{ForemanM2::Engine.root}/lib/**/*.rb",
|
32
|
+
"#{ForemanM2::Engine.root}/test/**/*.rb"]
|
33
|
+
end
|
34
|
+
rescue StandardError
|
35
|
+
puts 'Rubocop not loaded.'
|
36
|
+
end
|
37
|
+
|
38
|
+
Rake::Task['rubocop_foreman_m2'].invoke
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
Rake::Task[:test].enhance ['test:foreman_m2']
|
43
|
+
|
44
|
+
load 'tasks/jenkins.rake'
|
45
|
+
if Rake::Task.task_defined?(:'jenkins:unit')
|
46
|
+
Rake::Task['jenkins:unit'].enhance ['test:foreman_m2', 'foreman_m2:rubocop']
|
47
|
+
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_m2
|
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_m2
|
2
|
+
#
|
3
|
+
# This file is distributed under the same license as foreman_m2.
|
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_m2
|
2
|
+
#
|
3
|
+
# This file is distributed under the same license as foreman_m2.
|
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
metadata
ADDED
@@ -0,0 +1,136 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: foreman_m2
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Ian Ballou
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-09-18 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rdoc
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
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: rubocop
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: deface
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description: M2 bare metal provisioning plugin for Foreman
|
56
|
+
email:
|
57
|
+
- iballou@redhat.com
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- LICENSE
|
63
|
+
- README.md
|
64
|
+
- Rakefile
|
65
|
+
- app/controllers/foreman_m2/hosts_controller.rb
|
66
|
+
- app/helpers/concerns/foreman_m2/hosts_helper_extensions.rb
|
67
|
+
- app/helpers/concerns/foreman_m2/images_helper_extensions.rb
|
68
|
+
- app/lib/proxy_api/m2.rb
|
69
|
+
- app/models/concerns/foreman_m2/compute_resource_extensions.rb
|
70
|
+
- app/models/concerns/foreman_m2/host_extensions.rb
|
71
|
+
- app/models/concerns/foreman_m2/host_orchestration_extensions.rb
|
72
|
+
- app/models/concerns/foreman_m2/nic_extensions.rb
|
73
|
+
- app/models/concerns/foreman_m2/nic_orchestration_extensions.rb
|
74
|
+
- app/models/foreman_m2/m2.rb
|
75
|
+
- app/overrides/give_ids.rb
|
76
|
+
- app/overrides/hybrid_js.rb
|
77
|
+
- app/overrides/update_media_selection.rb
|
78
|
+
- app/views/compute_resources/edit/_m2.html.erb
|
79
|
+
- app/views/compute_resources/form/_m2.html.erb
|
80
|
+
- app/views/compute_resources/show/_m2.html.erb
|
81
|
+
- app/views/compute_resources_vms/form/m2/_base.html.erb
|
82
|
+
- app/views/dashboard/_foreman_m2_widget.erb
|
83
|
+
- app/views/foreman_m2/hosts/hosts/new_action.html.erb
|
84
|
+
- app/views/foreman_m2/hosts/new_action.html.erb
|
85
|
+
- app/views/foreman_m2/layouts/layouts/new_layout.html.erb
|
86
|
+
- app/views/foreman_m2/layouts/new_layout.html.erb
|
87
|
+
- app/views/hosts/provisioning_method/hybrid/_form.html.erb
|
88
|
+
- app/views/images/form/_m2.html.erb
|
89
|
+
- app/views/overrides/host_creation/_add_bm_div.html.erb
|
90
|
+
- app/views/overrides/host_creation/_add_hybrid_js.html.erb
|
91
|
+
- app/views/overrides/host_creation/_add_ptable_div.html.erb
|
92
|
+
- app/views/overrides/image_selection/_host_media_type_select.html.erb
|
93
|
+
- app/views/unattended/provisioning_templates/PXELinux/m2_default_pxelinux.erb
|
94
|
+
- app/views/unattended/provisioning_templates/iPXE/m2_default_ipxe.erb
|
95
|
+
- config/routes.rb
|
96
|
+
- db/seeds.d/071-m2_prov_templates.rb
|
97
|
+
- db/seeds.d/111-m2_sp_features.rb
|
98
|
+
- lib/foreman_m2.rb
|
99
|
+
- lib/foreman_m2/engine.rb
|
100
|
+
- lib/foreman_m2/version.rb
|
101
|
+
- lib/tasks/foreman_m2_tasks.rake
|
102
|
+
- locale/Makefile
|
103
|
+
- locale/en/foreman_m2.po
|
104
|
+
- locale/foreman_m2.pot
|
105
|
+
- locale/gemspec.rb
|
106
|
+
- test/factories/foreman_m2_factories.rb
|
107
|
+
- test/test_plugin_helper.rb
|
108
|
+
- test/unit/foreman_m2_test.rb
|
109
|
+
homepage: https://github.com/ianballou/foreman_m2
|
110
|
+
licenses:
|
111
|
+
- GPL-3.0
|
112
|
+
metadata: {}
|
113
|
+
post_install_message:
|
114
|
+
rdoc_options: []
|
115
|
+
require_paths:
|
116
|
+
- lib
|
117
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
118
|
+
requirements:
|
119
|
+
- - ">="
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: '0'
|
122
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
123
|
+
requirements:
|
124
|
+
- - ">="
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '0'
|
127
|
+
requirements: []
|
128
|
+
rubyforge_project:
|
129
|
+
rubygems_version: 2.6.14
|
130
|
+
signing_key:
|
131
|
+
specification_version: 4
|
132
|
+
summary: M2 bare metal provisioning plugin for Foreman
|
133
|
+
test_files:
|
134
|
+
- test/test_plugin_helper.rb
|
135
|
+
- test/unit/foreman_m2_test.rb
|
136
|
+
- test/factories/foreman_m2_factories.rb
|