Project

General

Profile

Download (1.97 KB) Statistics
| Branch: | Tag: | Revision:
require 'fast_gettext'
require 'gettext_i18n_rails'
require 'fog/xenserver'

module ForemanXen
# Inherit from the Rails module of the parent app (Foreman), not the plugin.
# Thus, inherits from ::Rails::Engine and not from Rails::Engine
class Engine < ::Rails::Engine
initializer 'foreman_xen.register_gettext', :after => :load_config_initializers do |app|
locale_dir = File.join(File.expand_path('../../..', __FILE__), 'locale')
locale_domain = 'foreman-xen'

Foreman::Gettext::Support.add_text_domain locale_domain, locale_dir
end

initializer 'foreman_xen.register_plugin', :before => :finisher_hook do |app|
Foreman::Plugin.register :foreman_xen do
requires_foreman '>= 1.13'
# Register xen compute resource in foreman
compute_resource ForemanXen::Xenserver
parameter_filter(ComputeResource, :uuid)
end
end

assets_to_precompile =
Dir.chdir(root) do
Dir['app/assets/javascripts/**/*', 'app/assets/stylesheets/**/*'].map do |f|
f.split(File::SEPARATOR, 4).last
end
end

initializer 'foreman_xen.assets.precompile' do |app|
app.config.assets.precompile += assets_to_precompile
end

initializer 'foreman_xen.configure_assets', group: :assets do
SETTINGS[:foreman_xen] = { assets: { precompile: assets_to_precompile } }
end

config.to_prepare do
begin
# extend fog xen server and image models.
require 'fog/compute/xen_server/models/server'
require File.expand_path('../../../app/models/concerns/fog_extensions/xenserver/server', __FILE__)
require File.expand_path('../../../app/models/concerns/foreman_xen/host_helper_extensions', __FILE__)

Fog::Compute::XenServer::Server.send(:include, ::FogExtensions::Xenserver::Server)
::HostsHelper.send(:include, ForemanXen::HostHelperExtensions)
rescue => e
Rails.logger.warn "Foreman-Xen: skipping engine hook (#{e})"
end
end
end
end
(1-1/3)