foreman_theme_satellite 13.1.0
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 +482 -0
- data/Rakefile +47 -0
- data/app/assets/images/foreman_theme_satellite/favicon.ico +0 -0
- data/app/assets/images/foreman_theme_satellite/header_logo.svg +836 -0
- data/app/assets/images/foreman_theme_satellite/login_bg.svg +384 -0
- data/app/assets/images/foreman_theme_satellite/login_logo.svg +840 -0
- data/app/assets/javascripts/foreman_theme_satellite/locale/en/foreman_theme_satellite.js +124 -0
- data/app/assets/javascripts/foreman_theme_satellite/theme_dashboard.js +17 -0
- data/app/assets/javascripts/foreman_theme_satellite/theme_ng_page_title.js +15 -0
- data/app/assets/stylesheets/foreman_theme_satellite/application_colors.css +12 -0
- data/app/assets/stylesheets/foreman_theme_satellite/bastion.scss +5 -0
- data/app/assets/stylesheets/foreman_theme_satellite/external_logout.scss +13 -0
- data/app/assets/stylesheets/foreman_theme_satellite/foreman_theme_satellite.css +1 -0
- data/app/assets/stylesheets/foreman_theme_satellite/login.scss +32 -0
- data/app/assets/stylesheets/foreman_theme_satellite/patternfly_and_overrides.scss +7 -0
- data/app/assets/stylesheets/foreman_theme_satellite/provisioning_templates.scss +3 -0
- data/app/assets/stylesheets/foreman_theme_satellite/theme.scss +14 -0
- data/app/assets/stylesheets/foreman_theme_satellite/topbar.scss +11 -0
- data/app/assets/stylesheets/foreman_theme_satellite/wizard.scss +14 -0
- data/app/controllers/concerns/documentation_controller_branding.rb +33 -0
- data/app/controllers/concerns/provisioning_templates_controller_branding.rb +94 -0
- data/app/helpers/provisioning_templates_helper_branding.rb +12 -0
- data/app/helpers/rhev_helper.rb +10 -0
- data/app/helpers/theme_application_helper.rb +17 -0
- data/app/helpers/theme_css_class_helper.rb +8 -0
- data/app/helpers/theme_discovery_helper.rb +10 -0
- data/app/helpers/theme_external_logout_helper.rb +10 -0
- data/app/helpers/theme_layout_helper.rb +18 -0
- data/app/helpers/theme_login_helper.rb +10 -0
- data/app/models/concerns/branch_info_branding.rb +9 -0
- data/app/models/concerns/deprecation_notification.rb +23 -0
- data/app/models/concerns/distributor_version.rb +7 -0
- data/app/models/concerns/gce.rb +7 -0
- data/app/models/concerns/openstack.rb +8 -0
- data/app/models/concerns/ovirt.rb +8 -0
- data/app/models/concerns/provisioning.rb +21 -0
- data/app/models/concerns/realm_theme.rb +18 -0
- data/app/models/concerns/satellite_packages.rb +8 -0
- data/app/models/concerns/setting_branding.rb +17 -0
- data/app/models/concerns/upstream_only_settings.rb +6 -0
- data/app/overrides/bootdisk_help_page.rb +44 -0
- data/app/overrides/layouts/base/theme_react_root.html.erb.deface +7 -0
- data/app/overrides/layouts/base/theme_resources.html.erb.deface +7 -0
- data/app/overrides/layouts/base/theme_style_resources.html.erb.deface +3 -0
- data/app/overrides/rhev.rb +14 -0
- data/app/overrides/satellite_name_override.rb +83 -0
- data/app/services/concerns/setting_registry_branding.rb +20 -0
- data/app/services/foreman_theme_satellite/renderer_methods.rb +22 -0
- data/app/views/api/v2/home/status_extensions.json.rabl +1 -0
- data/app/views/foreman_theme_satellite/_theme_client_side_branding.js.erb +63 -0
- data/app/views/foreman_theme_satellite/rhev/_form.erb +8 -0
- data/app/views/foreman_theme_satellite/rhev/_show.html.erb +6 -0
- data/db/migrate/20160404130619_remove_satellite_from_notification_name.rb +8 -0
- data/db/migrate/20161220092005_remove_satellite_from_notification_name_spell_correction.rb +24 -0
- data/db/migrate/20180516103339_update_idm_params.rb +19 -0
- data/db/migrate/20180605150932_deprecate_satellite_templates.rb +52 -0
- data/db/migrate/20181108171732_change_blog_url.rb +13 -0
- data/db/migrate/20201118090534_insights_param.rb +9 -0
- data/db/seeds.d/069-provisioning_templates_defaults.rb +24 -0
- data/db/seeds.d/850-global_parameters.rb +15 -0
- data/lib/foreman_theme_satellite/branded_words.rb +58 -0
- data/lib/foreman_theme_satellite/deprecated_templates.rb +9 -0
- data/lib/foreman_theme_satellite/documentation.rb +76 -0
- data/lib/foreman_theme_satellite/engine.rb +155 -0
- data/lib/foreman_theme_satellite/pry_rack.rb +12 -0
- data/lib/foreman_theme_satellite/replacer_repository.rb +57 -0
- data/lib/foreman_theme_satellite/rss_checker_branding.rb +11 -0
- data/lib/foreman_theme_satellite/version.rb +3 -0
- data/lib/foreman_theme_satellite.rb +4 -0
- data/lib/generators/foreman_theme_satellite/color_diff_generator.rb +32 -0
- data/lib/generators/foreman_theme_satellite/lib/color_changer.rb +25 -0
- data/lib/generators/foreman_theme_satellite/lib/css_compare.rb +85 -0
- data/lib/tasks/foreman_theme_satellite_tasks.rake +48 -0
- data/locale/Makefile +65 -0
- data/locale/en/foreman_theme_satellite.edit.po +152 -0
- data/locale/en/foreman_theme_satellite.po +286 -0
- data/locale/en/foreman_theme_satellite.po.time_stamp +0 -0
- data/locale/foreman_theme_satellite.pot +387 -0
- data/locale/gemspec.rb +2 -0
- data/package.json +31 -0
- data/webpack/index.js +5 -0
- metadata +226 -0
@@ -0,0 +1,44 @@
|
|
1
|
+
# File that covers update of bootdisk help page. Bootdisk plugin allows four types of bootdisk. Satellite supports only
|
2
|
+
# two of them.
|
3
|
+
|
4
|
+
# removing Host image from bootdisk help page
|
5
|
+
|
6
|
+
Deface::Override.new(:virtual_path => "foreman_bootdisk/disks/help",
|
7
|
+
:name => "remove header for host image",
|
8
|
+
:replace => "div#welcome h3:nth-of-type(1)",
|
9
|
+
:text => '')
|
10
|
+
|
11
|
+
Deface::Override.new(:virtual_path => "foreman_bootdisk/disks/help",
|
12
|
+
:name => "remove first paragraph of host image",
|
13
|
+
:replace => "div#welcome p:nth-of-type(4)",
|
14
|
+
:text => '')
|
15
|
+
|
16
|
+
Deface::Override.new(:virtual_path => "foreman_bootdisk/disks/help",
|
17
|
+
:name => "remove second paragraph of host image",
|
18
|
+
:replace => "div#welcome p:nth-of-type(4)",
|
19
|
+
:text => '')
|
20
|
+
|
21
|
+
|
22
|
+
# removing Generic image from bootdisk help page
|
23
|
+
|
24
|
+
Deface::Override.new(:virtual_path => "foreman_bootdisk/disks/help",
|
25
|
+
:name => "remove header of generic image",
|
26
|
+
:replace => "div#welcome h3:nth-of-type(2)",
|
27
|
+
:text => '')
|
28
|
+
|
29
|
+
Deface::Override.new(:virtual_path => "foreman_bootdisk/disks/help",
|
30
|
+
:name => "remove first paragraph of generic image",
|
31
|
+
:replace => "div#welcome p:nth-of-type(6)",
|
32
|
+
:text => '')
|
33
|
+
|
34
|
+
Deface::Override.new(:virtual_path => "foreman_bootdisk/disks/help",
|
35
|
+
:name => "remove second paragraph of generic image",
|
36
|
+
:replace => "div#welcome p:nth-of-type(6)",
|
37
|
+
:text => '')
|
38
|
+
|
39
|
+
# removing note about disabled bootdisk types
|
40
|
+
|
41
|
+
Deface::Override.new(:virtual_path => "foreman_bootdisk/disks/help",
|
42
|
+
:name => "remove * note",
|
43
|
+
:replace => "div#welcome p:nth-of-type(8)",
|
44
|
+
:text => '')
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<!-- insert_after 'body script:last' -->
|
2
|
+
<%= javascript_include_tag('foreman_theme_satellite/theme_dashboard') %>
|
3
|
+
<%= javascript_include_tag('foreman_theme_satellite/theme_ng_page_title') %>
|
4
|
+
<%= webpacked_plugins_js_for :'foreman_theme_satellite' %>
|
5
|
+
<%= javascript_tag do %>
|
6
|
+
<%= render("foreman_theme_satellite/theme_client_side_branding.js") %>
|
7
|
+
<% end %>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
Deface::Override.new(virtual_path: 'compute_resources/form/_ovirt',
|
2
|
+
name: 'rhev_new',
|
3
|
+
insert_before: "erb[loud]:contains(':url')",
|
4
|
+
partial: 'foreman_theme_satellite/rhev/form')
|
5
|
+
|
6
|
+
Deface::Override.new(virtual_path: 'compute_resources/show/_ovirt',
|
7
|
+
name: 'rhev_show',
|
8
|
+
insert_after: 'tr:nth-child(4)',
|
9
|
+
partial: 'foreman_theme_satellite/rhev/show')
|
10
|
+
|
11
|
+
Deface::Override.new(virtual_path: 'compute_resources_vms/form/ovirt/_base',
|
12
|
+
name: 'rhev_vm',
|
13
|
+
insert_after: "erb[loud]:contains(':keyboard_layout')",
|
14
|
+
partial: 'foreman_theme_satellite/rhev/form')
|
@@ -0,0 +1,83 @@
|
|
1
|
+
# Add in the localizatione below to make sure they are extracted.
|
2
|
+
N_("Version %{version}")
|
3
|
+
N_("Support")
|
4
|
+
N_("Customer portal")
|
5
|
+
N_("Documentation")
|
6
|
+
N_('Administering Red Hat Satellite')
|
7
|
+
N_('Transitioning from Red Hat Satellite 5 to Red Hat Satellite 6')
|
8
|
+
N_("API Guide")
|
9
|
+
N_("Blog")
|
10
|
+
N_('Red Hat Satellite Blog')
|
11
|
+
N_("IRC")
|
12
|
+
N_("You can find us on %{liberachat} (irc.libera.chat) in #redhat-satellite.")
|
13
|
+
N_("Version %{version} © %{year} Red Hat Inc.")
|
14
|
+
N_("Includes %{system} © 2009-%{year} Paul Kelly and Ohad Levy")
|
15
|
+
N_("If you feel this is an error with Satellite 6 itself, please open a new issue with")
|
16
|
+
N_("Satellite ticketing system")
|
17
|
+
N_("You would probably need to attach the")
|
18
|
+
N_("Full trace")
|
19
|
+
N_("and relevant log entries.")
|
20
|
+
N_("(build: %{version})")
|
21
|
+
|
22
|
+
|
23
|
+
Deface::Override.new(:virtual_path => "home/_topbar",
|
24
|
+
:name => "remove foreman name from topbar",
|
25
|
+
:replace => "erb[loud]:contains('link_to')",
|
26
|
+
:text => "")
|
27
|
+
|
28
|
+
Deface::Override.new(:virtual_path => "home/_topbar",
|
29
|
+
:name => "add link to home",
|
30
|
+
:surround => "erb[loud]:contains('image_tag')",
|
31
|
+
:text => "<%= link_to main_app.root_path do%><%= render_original %><% end %>")
|
32
|
+
|
33
|
+
Deface::Override.new(:virtual_path => "about/index",
|
34
|
+
:name => "change about page content",
|
35
|
+
# div#support
|
36
|
+
:replace => "div.col-md-5 div.stats-well:nth-child(1)",
|
37
|
+
:text => " <div class=\"stats-well\"><h4><%= _(\"Support\") %></h4> <p>Visit the <%= link_to _('Customer Portal'), \"https://access.redhat.com/\",
|
38
|
+
:rel => \"external\" %> to get support, find solutions to common questions, and more.</p><h6><%= _(\"Documentation\") %></h6>
|
39
|
+
<ul>
|
40
|
+
<li><%= link_to _('Complete Product Documentation for Red Hat Satellite'),\"https://access.redhat.com/documentation/en/red_hat_satellite/#{ForemanThemeSatellite::SATELLITE_SHORT_VERSION}\", :rel => \"external\" %></li>
|
41
|
+
<li><%= link_to _('API Resources'), apipie_apipie_path, :title => _('Automate Satellite via a simple and powerful API') %></li>
|
42
|
+
<li><%= link_to _('Templates DSL'), apipie_dsl_apipie_dsl_path, :title => _('Get DSL reference for templates writing') %></li>
|
43
|
+
</ul>
|
44
|
+
<h6><%= _(\"Blog\") %></h6>
|
45
|
+
<ul>
|
46
|
+
<li><%= link_to _('Red Hat Satellite Blog'), \"https://www.redhat.com/en/blog/channel/red-hat-satellite\", :rel => \"external\" %></li>
|
47
|
+
</ul>
|
48
|
+
<h6><%= _(\"IRC\") %></h6>
|
49
|
+
<p><%= (_(\"You can find us on %{liberachat} (irc.libera.chat) in #redhat-satellite.\") % {:liberachat => link_to(\"libera.chat\", \"https://libera.chat\", :rel => \"external\")}).html_safe %></p>
|
50
|
+
</div>")
|
51
|
+
|
52
|
+
Deface::Override.new(:virtual_path => "about/index",
|
53
|
+
:name => "add satellite version for about page",
|
54
|
+
:insert_before => "p#copyright-p",
|
55
|
+
:text => '<p id="sat-copyright-p">Red Hat Satellite <%= (_("(build: %{version})") % {:version => ForemanThemeSatellite::SATELLITE_VERSION}).html_safe %><br/><%= (_("Version %{version} © %{year} Red Hat Inc.") % {:version => ForemanThemeSatellite::SATELLITE_SHORT_VERSION, :year=>DateTime.now.year}).html_safe %></p>')
|
56
|
+
|
57
|
+
Deface::Override.new(:virtual_path => "about/index",
|
58
|
+
:name => "change version text for about page",
|
59
|
+
:replace => "p#copyright-p",
|
60
|
+
:text => '<p id="copyright-p"><%= (_("Includes %{system} © 2009-%{year} Paul Kelly and Ohad Levy") % {:system => "Foreman", :year => DateTime.now.year}).html_safe %></p>')
|
61
|
+
|
62
|
+
Deface::Override.new(:virtual_path => "about/index",
|
63
|
+
:name => "remove links to upstream plugins",
|
64
|
+
:replace => "#plugins table tbody tr td:first-of-type",
|
65
|
+
:text => '<td><%= plugin.name %></td>')
|
66
|
+
|
67
|
+
Deface::Override.new(:virtual_path => "common/500",
|
68
|
+
:name => "change 500 page content",
|
69
|
+
# p#message
|
70
|
+
:replace => "p",
|
71
|
+
:text => "<p id=\"message\">
|
72
|
+
<%= _(\"If you feel this is an error with Satellite itself, please open a new issue with\") %>
|
73
|
+
<%= link_to _(\"Satellite ticketing system\"), \"https://access.redhat.com/support/cases/#/case/new\", :rel => \"external\" %>,
|
74
|
+
<% if Foreman::Logging.config[:type] == \"file\" %>
|
75
|
+
<%= _(\"Please include in your report the full error log that can be acquired by running: \") %>
|
76
|
+
<strong> foreman-rake errors:fetch_log request_id=<%= request_id %></strong>
|
77
|
+
<% else %>
|
78
|
+
<%= _('Search your logs for request-id') %> <%= request_id %>.
|
79
|
+
<%= _('When using external logging, search for request UUID') %> <%= full_request_id %>
|
80
|
+
<% end %>
|
81
|
+
<%= _(\" and it is highly recommended to also attach the sosreport output.\") %>
|
82
|
+
</p>
|
83
|
+
")
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# Responsible for silently overwriting setting's default value.
|
2
|
+
module SettingRegistryBranding
|
3
|
+
def branded_settings
|
4
|
+
domain = SETTINGS[:domain]
|
5
|
+
@branded_settings ||= {
|
6
|
+
'email_reply_address' => "satellite-noreply@#{domain}",
|
7
|
+
'email_subject_prefix' => '[satellite]',
|
8
|
+
|
9
|
+
'rss_url' => 'https://www.redhat.com/en/rss/blog/channel/red-hat-satellite',
|
10
|
+
'foreman_tasks_troubleshooting_url' => 'https://access.redhat.com/solutions/satellite6-tasks#%{label}',
|
11
|
+
'bootdisk_allowed_types' => ['subnet','full_host'],
|
12
|
+
'template_sync_commit_msg' => 'Templates export made by a Satellite user'
|
13
|
+
}.freeze
|
14
|
+
end
|
15
|
+
|
16
|
+
def _add(name, default:, **rest)
|
17
|
+
branded_default = branded_settings.fetch(name.to_s, default)
|
18
|
+
super(name, default: branded_default, **rest) unless UpstreamOnlySettings::SETTINGS.include?(name.to_s)
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ForemanThemeSatellite
|
4
|
+
module RendererMethods
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
extend ApipieDSL::Module
|
7
|
+
|
8
|
+
apipie :class, 'Macros related to Satellite branding' do
|
9
|
+
name 'Foreman Theme Satellite'
|
10
|
+
sections only: %w[all jobs]
|
11
|
+
end
|
12
|
+
|
13
|
+
apipie :method, 'Returns a short version of Satellite' do
|
14
|
+
desc 'Returns a string representing the short version (X.Y) of Satellite'
|
15
|
+
returns String
|
16
|
+
example 'product_short_version # => "6.12"'
|
17
|
+
end
|
18
|
+
def product_short_version
|
19
|
+
ForemanThemeSatellite::SATELLITE_SHORT_VERSION
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
node(:satellite_version) { ForemanThemeSatellite::SATELLITE_VERSION }
|
@@ -0,0 +1,63 @@
|
|
1
|
+
<% require_relative '../../../lib/foreman_theme_satellite/branded_words' %>
|
2
|
+
|
3
|
+
var branded_words = []
|
4
|
+
<% ForemanThemeSatellite::FOREMAN_BRAND.map do |exp, replace| %>
|
5
|
+
branded_words.push([new RegExp("<%= exp.source.gsub('\\', '\\\\\\') %>", "g"), "<%= replace %>"]);
|
6
|
+
<% end %>
|
7
|
+
|
8
|
+
function brand_string(string){
|
9
|
+
result = string;
|
10
|
+
branded_words.some(function(tuple){
|
11
|
+
var regex = tuple[0];
|
12
|
+
var value = tuple[1];
|
13
|
+
|
14
|
+
parts = string.split(regex)
|
15
|
+
if (parts.length > 1) {
|
16
|
+
parts = parts.map(function(part) {
|
17
|
+
return brand_string(part)
|
18
|
+
})
|
19
|
+
result = parts.join(value)
|
20
|
+
}
|
21
|
+
return parts.length > 1;
|
22
|
+
});
|
23
|
+
return result;
|
24
|
+
}
|
25
|
+
|
26
|
+
tfm.i18n.jed.original_dcnp = tfm.i18n.jed.dcnpgettext
|
27
|
+
|
28
|
+
tfm.i18n.jed.dcnpgettext = function( domain, context, singular_key, plural_key, val ) {
|
29
|
+
translated = tfm.i18n.jed.original_dcnp( domain, context, singular_key, plural_key, val );
|
30
|
+
|
31
|
+
return brand_string(translated);
|
32
|
+
}
|
33
|
+
|
34
|
+
if (typeof(angular) !== 'undefined') {
|
35
|
+
angular.module('Bastion.i18n').config([ '$provide', function($provide) {
|
36
|
+
$provide.decorator('translate', [
|
37
|
+
'$delegate',
|
38
|
+
function ($delegate) {
|
39
|
+
var originalTranslate = $delegate;
|
40
|
+
return function(str) {
|
41
|
+
originalStr = originalTranslate(str);
|
42
|
+
return brand_string(originalStr);
|
43
|
+
}
|
44
|
+
}
|
45
|
+
]);
|
46
|
+
}]);
|
47
|
+
}
|
48
|
+
|
49
|
+
if (typeof(angular) !== 'undefined') {
|
50
|
+
angular.module('gettext').config([ '$provide', function($provide) {
|
51
|
+
$provide.decorator('gettextCatalog', [
|
52
|
+
'$delegate',
|
53
|
+
function ($delegate) {
|
54
|
+
var originalTranslate = $delegate.getString;
|
55
|
+
$delegate.getString = function(str) {
|
56
|
+
originalStr = originalTranslate.apply($delegate, [str]);
|
57
|
+
return brand_string(originalStr);
|
58
|
+
}
|
59
|
+
return $delegate;
|
60
|
+
}
|
61
|
+
]);
|
62
|
+
}]);
|
63
|
+
}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
class RemoveSatelliteFromNotificationName < ActiveRecord::Migration[4.2]
|
2
|
+
def up
|
3
|
+
# historical placeholder
|
4
|
+
# only required on setups before https://projects.theforeman.org/issues/14459
|
5
|
+
# we can safely assume that fresh installs have the above change already
|
6
|
+
# and existing install had this migration applied back in 2016
|
7
|
+
end
|
8
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
class RemoveSatelliteFromNotificationNameSpellCorrection < ActiveRecord::Migration[4.2]
|
2
|
+
class FakeMailNotification < ActiveRecord::Base
|
3
|
+
self.table_name = 'mail_notifications'
|
4
|
+
|
5
|
+
has_many :user_mail_notifications, :dependent => :destroy, :class_name => 'FakeUserMailNotification', :foreign_key => 'mail_notification_id'
|
6
|
+
end
|
7
|
+
|
8
|
+
class FakeUserMailNotification < ActiveRecord::Base
|
9
|
+
self.table_name = 'user_mail_notifications'
|
10
|
+
end
|
11
|
+
|
12
|
+
def up
|
13
|
+
sync_errata_notification = FakeMailNotification.where(name: 'sync_errata').first
|
14
|
+
satellite_sync_errata_notification = FakeMailNotification.where(name: 'satellite_sync_errata').first
|
15
|
+
|
16
|
+
if sync_errata_notification && satellite_sync_errata_notification && FakeUserMailNotification.where(:mail_notification_id => sync_errata_notification.id).empty?
|
17
|
+
satellite_sync_errata_notification.user_mail_notifications.each do |user_mail_notification|
|
18
|
+
FakeUserMailNotification.create(:user_id => user_mail_notification.user_id, :mail_notification_id => sync_errata_notification.id)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
satellite_sync_errata_notification.destroy if satellite_sync_errata_notification.present?
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class UpdateIdmParams < ActiveRecord::Migration[5.1]
|
2
|
+
def up
|
3
|
+
Parameter.unscoped.where("name like 'idm_%'").each do |param|
|
4
|
+
param.name.gsub!('idm_', 'freeipa_')
|
5
|
+
param.without_auditing do
|
6
|
+
param.save!(:validate => false)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def down
|
12
|
+
Parameter.unscoped.where("name like 'freeipa_%'").each do |param|
|
13
|
+
param.name.gsub!('freeipa_', 'idm_')
|
14
|
+
param.without_auditing do
|
15
|
+
param.save!(:validate => false)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require_relative '../../lib/foreman_theme_satellite/deprecated_templates'
|
2
|
+
|
3
|
+
class DeprecateSatelliteTemplates < ActiveRecord::Migration[5.1]
|
4
|
+
def up
|
5
|
+
ForemanThemeSatellite::DEPRECATED_TEMPLATES.each do |old_name, new_name|
|
6
|
+
old_template = ProvisioningTemplate.unscoped.find_by(name: old_name)
|
7
|
+
new_template = ProvisioningTemplate.unscoped.find_by(name: new_name)
|
8
|
+
|
9
|
+
next unless old_template
|
10
|
+
old_template.name = 'DEPRECATED ' + old_name
|
11
|
+
|
12
|
+
if new_template
|
13
|
+
copy_os_default_associations(old_template, new_template)
|
14
|
+
copy_template_combinations(old_template, new_template)
|
15
|
+
copy_operatingsystems(old_template, new_template)
|
16
|
+
new_template.without_auditing do
|
17
|
+
new_template.save!
|
18
|
+
end
|
19
|
+
else
|
20
|
+
# prepare for seeding the template
|
21
|
+
remove_old_audits(new_name)
|
22
|
+
end
|
23
|
+
|
24
|
+
old_template.save!
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def remove_old_audits(destination)
|
29
|
+
Audit.where(:auditable_type => 'ProvisioningTemplate', :auditable_name => destination).delete_all
|
30
|
+
end
|
31
|
+
|
32
|
+
def copy_os_default_associations(source, destination)
|
33
|
+
source.os_default_templates.update_all(provisioning_template_id: destination.id)
|
34
|
+
destination.reload
|
35
|
+
end
|
36
|
+
|
37
|
+
def copy_template_combinations(source, destination)
|
38
|
+
dest_associations = destination.template_combinations.all
|
39
|
+
source.template_combinations.each do |old|
|
40
|
+
next if dest_associations.select { |assoc| assoc.environment_id = old.environment_id && assoc.hostgroup_id == old.hostgroup_id }.any?
|
41
|
+
|
42
|
+
destination.template_combinations.build(
|
43
|
+
environment_id: old.environment_id,
|
44
|
+
hostgroup_id: old.hostgroup_id
|
45
|
+
)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def copy_operatingsystems(source, destination)
|
50
|
+
destination.operatingsystem_ids = (destination.operatingsystem_ids + source.operatingsystem_ids).uniq
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class ChangeBlogUrl < ActiveRecord::Migration[5.1]
|
2
|
+
def up
|
3
|
+
if Setting[:rss_url] == 'https://access.redhat.com/blogs/1169563/feed'
|
4
|
+
Setting[:rss_url] = 'https://www.redhat.com/en/rss/blog/channel/red-hat-satellite'
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
def down
|
9
|
+
if Setting[:rss_url] == 'https://www.redhat.com/en/rss/blog/channel/red-hat-satellite'
|
10
|
+
Setting[:rss_url] = 'https://access.redhat.com/blogs/1169563/feed'
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require_relative '../migrate/20180605150932_deprecate_satellite_templates'
|
2
|
+
|
3
|
+
module ProvisioningTemplateSeedExtensions
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
included do
|
7
|
+
after_create :move_deprecated_defaults
|
8
|
+
end
|
9
|
+
|
10
|
+
def move_deprecated_defaults
|
11
|
+
return unless (old_name = ForemanThemeSatellite::DEPRECATED_TEMPLATES.key(name))
|
12
|
+
|
13
|
+
old_template = ProvisioningTemplate.unscoped.find_by(name: 'DEPRECATED ' + old_name)
|
14
|
+
return unless old_template
|
15
|
+
old_template.os_default_templates.update_all(provisioning_template_id: id)
|
16
|
+
|
17
|
+
migration = DeprecateSatelliteTemplates.new
|
18
|
+
migration.copy_template_combinations(old_template, self)
|
19
|
+
migration.copy_operatingsystems(old_template, self)
|
20
|
+
save!
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
ProvisioningTemplate.include ProvisioningTemplateSeedExtensions
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class CommonParameterSeedHelper
|
2
|
+
def self.set_default_global_parameter(name, value)
|
3
|
+
param = CommonParameter.find_by_name(name)
|
4
|
+
if param.nil?
|
5
|
+
CommonParameter.create!(:name => name, :value => value)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
CommonParameter.without_auditing do
|
11
|
+
CommonParameter.skip_permission_check do
|
12
|
+
CommonParameterSeedHelper.set_default_global_parameter('enable-epel', 'false')
|
13
|
+
CommonParameterSeedHelper.set_default_global_parameter('enable-puppet5', 'true')
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ForemanThemeSatellite
|
4
|
+
# This list is used for substitution of branded words by both client and server.
|
5
|
+
# The server just uses the list as is.
|
6
|
+
# The client is consuming it by generated .js.erb file: app/assets/javascripts/theme_client_side_branding.js.erb.
|
7
|
+
# For now, modifiers are not supported by the generator.
|
8
|
+
# Make sure the regexp works both with Ruby and JavaScript.
|
9
|
+
# Entries are processed in order and first wins.
|
10
|
+
FOREMAN_BRAND = {
|
11
|
+
/%{proxy}/ => '%{proxy}',
|
12
|
+
/%{foreman}/ => '%{foreman}',
|
13
|
+
/\b[Hh][Tt][Tt][Pp] [Pp]roxy\b(?!-)/ => 'HTTP Proxy',
|
14
|
+
/\b[Hh][Tt][Tt][Pp] [Pp]roxies\b(?!-)/ => 'HTTP Proxies',
|
15
|
+
/\bHTTP\(S\) proxy\b(?!-)/ => 'HTTP(S) proxy',
|
16
|
+
/\bIgnore Proxy\b(?!-)/ => 'Ignore Proxy',
|
17
|
+
/\bIgnore proxy\b(?!-)/ => 'Ignore Proxy',
|
18
|
+
/\bSystem-wide proxies\b(?!-)/ => 'System-wide proxies',
|
19
|
+
/\bLeave this blank if no proxy is used\b(?!-)/ => 'Leave this blank if no proxy is used',
|
20
|
+
/\bbypass proxy settings\b(?!-)/ => 'bypass proxy settings',
|
21
|
+
/\bURL of the proxy\b(?!-)/ => 'URL of the proxy',
|
22
|
+
%r{\bhttps://proxy.example.com:8080\b(?!-)} => 'https://proxy.example.com:8080',
|
23
|
+
/\bproxy for all outgoing HTTP connections\b(?!-)/ => 'proxy for all outgoing HTTP connections',
|
24
|
+
/\bperform various actions through those proxies\b(?!-)/ => 'perform various actions through those proxies',
|
25
|
+
/\bForeman\b(?!-)/ => 'Satellite',
|
26
|
+
/\bforeman\b(?!-)/ => 'satellite',
|
27
|
+
/\bsmart-proxy\b(?!-)/ => 'capsule',
|
28
|
+
/\bSmart-proxy\b(?!-)/ => 'Capsule',
|
29
|
+
/\bsmart proxies\b(?!-)/ => 'capsules',
|
30
|
+
/\bSmart proxies\b(?!-)/ => 'Capsules',
|
31
|
+
/\bsmart-proxies\b(?!-)/ => 'capsules',
|
32
|
+
/\bSmart-proxies\b(?!-)/ => 'Capsules',
|
33
|
+
/\bSmart Proxies\b(?!-)/ => 'Capsules',
|
34
|
+
/\bSmart Proxy\(ies\)(?!-)/ => 'Capsule(s)',
|
35
|
+
/\bSmart Proxy\b(?!-)/ => 'Capsule',
|
36
|
+
/\bsmart proxy\b(?!-)/ => 'capsule',
|
37
|
+
/\bSmart-Proxies\b(?!-)/ => 'Capsules',
|
38
|
+
/\bSmart proxy\b(?!-)/ => 'Capsule',
|
39
|
+
/\bSmart-Proxy\b(?!-)/ => 'Capsule',
|
40
|
+
/\boVirt\b(?!-)/ => 'RHEV',
|
41
|
+
/\bovirt\b(?!-)/ => 'RHEV',
|
42
|
+
/\bOvirt\b(?!-)/ => 'RHEV',
|
43
|
+
/\bFreeIPA\b(?!-)/ => 'Red Hat Identity Management',
|
44
|
+
/\bOpenStack\b(?!-)/ => 'RHEL OpenStack Platform',
|
45
|
+
/\bopenstack\b(?!-)/ => 'RHEL OpenStack Platform',
|
46
|
+
/\bOpenstack\b(?!-)/ => 'RHEL OpenStack Platform',
|
47
|
+
/\bProxy\b(?!-)/ => 'Capsule',
|
48
|
+
/\bproxy\b(?!-)/ => 'Capsule',
|
49
|
+
/\bProxies\b(?!-)/ => 'Capsules',
|
50
|
+
/\bproxies\b(?!-)/ => 'Capsules',
|
51
|
+
/\b[Kk]atello 4.0\b(?!-)/ => 'Satellite 6.11',
|
52
|
+
/\b[Kk]atello 4.10\b(?!-)/ => 'Satellite 6.15',
|
53
|
+
/\b[Kk]atello 4.11\b(?!-)/ => 'Satellite 6.15',
|
54
|
+
/\b[Kk]atello 4.12\b(?!-)/ => 'Satellite 6.16',
|
55
|
+
/\b[Kk]atello 4.13\b(?!-)/ => 'Satellite 6.16',
|
56
|
+
%r{https://theforeman.org/plugins/katello/(?!-)} => "https://access.redhat.com/documentation/en-us/red_hat_satellite/#{ForemanThemeSatellite::SATELLITE_SHORT_VERSION}/html/managing_hosts/registering_hosts#registering-a-host-to-satellite-using-the-bootstrap-script"
|
57
|
+
}.freeze
|
58
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
module ForemanThemeSatellite
|
2
|
+
DEPRECATED_TEMPLATES = {
|
3
|
+
'Satellite Kickstart Default' => 'Kickstart default',
|
4
|
+
'Satellite Kickstart Default User Data' => 'Kickstart default user data',
|
5
|
+
'Satellite Kickstart Default Finish' => 'Kickstart default finish',
|
6
|
+
'idm_register' => 'freeipa_register',
|
7
|
+
'Satellite Atomic Kickstart Default' => 'Atomic Kickstart default'
|
8
|
+
}.freeze
|
9
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# rubocop:disable Metrics/LineLength
|
4
|
+
module ForemanThemeSatellite
|
5
|
+
module Documentation
|
6
|
+
USER_GUIDE_DICTIONARY = {
|
7
|
+
# Ansible
|
8
|
+
'ImportingRoles' => "#{ForemanThemeSatellite.documentation_root}/managing_configurations_using_ansible_integration_in_red_hat_satellite/getting_started_with_ansible_in_satellite_ansible#Importing_Ansible_Roles_and_Variables_ansible",
|
9
|
+
'Variables' => "#{ForemanThemeSatellite.documentation_root}/managing_configurations_using_ansible_integration_in_red_hat_satellite/getting_started_with_ansible_in_satellite_ansible#Overriding_Ansible_Variables_in_satellite_ansible",
|
10
|
+
|
11
|
+
# Managing Hosts
|
12
|
+
'ForemanRemoteExecution' => "#{ForemanThemeSatellite.documentation_root}/managing_hosts/configuring_and_setting_up_remote_jobs_managing-hosts",
|
13
|
+
'ExecutingaJob' => "#{ForemanThemeSatellite.documentation_root}/managing_hosts/configuring_and_setting_up_remote_jobs_managing-hosts#configuring-the-global-smartproxy-remote-execution-setting_managing-hosts",
|
14
|
+
'JobTemplates' => "#{ForemanThemeSatellite.documentation_root}/managing_hosts/configuring_and_setting_up_remote_jobs_managing-hosts#setting-up-job-templates_managing-hosts",
|
15
|
+
'ReportTemplates' => "#{ForemanThemeSatellite.documentation_root}/managing_hosts/using_report_templates_to_monitor_hosts_managing-hosts",
|
16
|
+
'Reports' => "#{ForemanThemeSatellite.documentation_root}/managing_hosts/using_report_templates_to_monitor_hosts_managing-hosts",
|
17
|
+
|
18
|
+
# Provisioning Hosts
|
19
|
+
'Architectures' => "#{ForemanThemeSatellite.documentation_root}/provisioning_hosts/configuring_provisioning_resources_provisioning#creating-architectures_provisioning",
|
20
|
+
'Provisioning' => "#{ForemanThemeSatellite.documentation_root}/provisioning_hosts/",
|
21
|
+
'InstallationMedia' => "#{ForemanThemeSatellite.documentation_root}/provisioning_hosts/configuring_provisioning_resources_provisioning#adding-installation-media_provisioning",
|
22
|
+
'PartitionTables' => "#{ForemanThemeSatellite.documentation_root}/provisioning_hosts/configuring_provisioning_resources_provisioning#creating-partition-tables_provisioning",
|
23
|
+
'ProvisioningTemplates' => "#{ForemanThemeSatellite.documentation_root}/provisioning_hosts/configuring_provisioning_resources_provisioning#provisioning-templates_provisioning",
|
24
|
+
'OperatingSystems' => "#{ForemanThemeSatellite.documentation_root}/provisioning_hosts/configuring_provisioning_resources_provisioning#creating-operating-systems_provisioning",
|
25
|
+
'UsingComputeProfiles' => "#{ForemanThemeSatellite.documentation_root}/provisioning_hosts/configuring_provisioning_resources_provisioning#creating-compute-profiles_provisioning",
|
26
|
+
'ComputeResources' => "#{ForemanThemeSatellite.documentation_root}/provisioning_hosts/",
|
27
|
+
'NoVNC' => "#{ForemanThemeSatellite.documentation_root}/provisioning_hosts/configuring_provisioning_resources_provisioning#using-novnc-to-access-virtual-machines_provisioning",
|
28
|
+
'VMwareNotes' => "#{ForemanThemeSatellite.documentation_root}/provisioning_hosts/provisioning_virtual_machines_in_vmware_vmware-provisioning",
|
29
|
+
'RHEVNotes' => "#{ForemanThemeSatellite.documentation_root}/provisioning_hosts/provisioning_virtual_machines_on_ovirt_rhv-provisioning",
|
30
|
+
'OpenStackNotes' => "#{ForemanThemeSatellite.documentation_root}/provisioning_hosts/provisioning_cloud_instances_openstack_openstack-provisioning",
|
31
|
+
'LibvirtNote' => "#{ForemanThemeSatellite.documentation_root}/provisioning_hosts/provisioning_virtual_machines_on_kvm_kvm-provisioning",
|
32
|
+
'EC2' => "#{ForemanThemeSatellite.documentation_root}/provisioning_hosts/provisioning_cloud_instances_in_amazon_ec2_ec2-provisioning",
|
33
|
+
'GoogleComputeEngineNotes' => "#{ForemanThemeSatellite.documentation_root}/provisioning_hosts/provisioning_cloud_instances_on_google_compute_engine_gce-provisioning",
|
34
|
+
'Networking' => "#{ForemanThemeSatellite.documentation_root}/provisioning_hosts/configuring_networking_provisioning#Adding_a_Subnet_to_Server_provisioning",
|
35
|
+
|
36
|
+
# Puppet Guide
|
37
|
+
'FactsandtheENC' => "#{ForemanThemeSatellite.documentation_root}/managing_configurations_using_puppet_integration_in_red_hat_satellite/introducing-configuration-management-using-puppet_managing-configurations-puppet#performing-configuration-management_managing-configurations-puppet",
|
38
|
+
'using-config-groups' => "#{ForemanThemeSatellite.documentation_root}/managing_configurations_using_puppet_integration_in_red_hat_satellite/creating-a-puppet-config-group_managing-configurations-puppet",
|
39
|
+
'SmartMatchers' => "#{ForemanThemeSatellite.documentation_root}/managing_configurations_using_puppet_integration_in_red_hat_satellite/configuring_puppet_smart_class_parameters_managing-configurations-puppet",
|
40
|
+
'Parameters' => "#{ForemanThemeSatellite.documentation_root}/managing_configurations_using_puppet_integration_in_red_hat_satellite/configuring_puppet_smart_class_parameters_managing-configurations-puppet",
|
41
|
+
'Classes' => "#{ForemanThemeSatellite.documentation_root}/managing_configurations_using_puppet_integration_in_red_hat_satellite/importing_puppet_classes_and_environments_managing-configurations-puppet",
|
42
|
+
'Environments' => "#{ForemanThemeSatellite.documentation_root}/managing_configurations_using_puppet_integration_in_red_hat_satellite/creating_a_custom_puppet_environment_managing-configurations-puppet",
|
43
|
+
|
44
|
+
# Administering
|
45
|
+
'ConfigurationOptions' => "#{ForemanThemeSatellite.documentation_root}/administering_red_hat_satellite/",
|
46
|
+
'PuppetReports' => "#{ForemanThemeSatellite.documentation_root}/administering_red_hat_satellite/monitoring_resources_admin#Using_the_Project_Content_Dashboard_admin",
|
47
|
+
'Mail_Notifications' => "#{ForemanThemeSatellite.documentation_root}/administering_red_hat_satellite/configuring_email_notifications_admin",
|
48
|
+
'Realm' => "#{ForemanThemeSatellite.documentation_root}/installing_satellite_server_in_a_connected_network_environment/configuring_external_authentication_satellite#External_Authentication_for_Provisioned_Hosts_satellite",
|
49
|
+
'Searching' => "#{ForemanThemeSatellite.documentation_root}/administering_red_hat_satellite/searching_and_bookmarking_admin",
|
50
|
+
'RolesandPermissions' => "#{ForemanThemeSatellite.documentation_root}/administering_red_hat_satellite/managing_users_and_roles_admin",
|
51
|
+
'LDAPAuthentication' => "#{ForemanThemeSatellite.documentation_root}/installing_satellite_server_in_a_connected_network_environment/configuring_external_authentication_satellite#Using_LDAP_satellite",
|
52
|
+
'Bookmarks' => "#{ForemanThemeSatellite.documentation_root}/administering_red_hat_satellite/searching_and_bookmarking_admin",
|
53
|
+
'Policydeploymentoptions' => "#{ForemanThemeSatellite.documentation_root}/managing_security_compliance#Managing_Compliance_Policies_security-compliance",
|
54
|
+
'CreatingSCAPcontent' => "#{ForemanThemeSatellite.documentation_root}/administering_red_hat_satellite/managing_security_compliance_admin#running-a-security-compliance-scan-on-demand_admin",
|
55
|
+
|
56
|
+
# Planning
|
57
|
+
'SmartProxies' => "#{ForemanThemeSatellite.documentation_root}/satellite_overview_concepts_and_deployment_considerations/chap-documentation-architecture_guide-capsule_server_overview",
|
58
|
+
'Auditing' => "#{ForemanThemeSatellite.documentation_root}/satellite_overview_concepts_and_deployment_considerations/appe-architecture_guide-glossary_of_terms#varl-Glossary_of_Terms-Audits",
|
59
|
+
|
60
|
+
# Install
|
61
|
+
'HTTP(S)Proxy' => "#{ForemanThemeSatellite.documentation_root}//installing_satellite_server_in_a_connected_network_environment/performing-additional-configuration#Configuring_Server_with_an_HTTP_Proxy_satellite",
|
62
|
+
|
63
|
+
# Misc
|
64
|
+
'GettingHelp' => "https://access.redhat.com/products/red-hat-satellite/#support",
|
65
|
+
}.freeze
|
66
|
+
|
67
|
+
PLUGINS_DOCUMENTATION = {
|
68
|
+
'foreman_azure' => "#{ForemanThemeSatellite.documentation_root}/provisioning_hosts/provisioning_cloud_instances_on_microsoft_azure_resource_manager_azure-provisioning",
|
69
|
+
'foreman_discovery' => "#{ForemanThemeSatellite.documentation_root}/provisioning_hosts/configuring_the_discovery_service_provisioning",
|
70
|
+
}.freeze
|
71
|
+
|
72
|
+
SPECIAL_LINKS = [
|
73
|
+
[/docs\.theforeman\.org\/.*?\/Managing_Hosts\/.*?registering-a-host.*?managing-hosts/i, "#{ForemanThemeSatellite.documentation_root}/managing_hosts/registering_hosts_to_server_managing-hosts#Registering_Hosts_managing-hosts"],
|
74
|
+
]
|
75
|
+
end
|
76
|
+
end
|