Project

General

Profile

Download (2.33 KB) Statistics
| Branch: | Tag: | Revision:

foreman_docker / lib / foreman_docker / engine.rb @ 466cd5ba

1
require 'fast_gettext'
2
require 'gettext_i18n_rails'
3
require 'fog'
4
require 'fog/fogdocker'
5
require 'wicked'
6

    
7
module ForemanDocker
8
  # Inherit from the Rails module of the parent app (Foreman), not the plugin.
9
  # Thus, inherits from ::Rails::Engine and not from Rails::Engine
10
  class Engine < ::Rails::Engine
11
    initializer 'foreman_docker.load_app_instance_data' do |app|
12
      app.config.paths['db/migrate'] += ForemanDocker::Engine.paths['db/migrate'].existent
13
    end
14

    
15
    initializer 'foreman_docker.register_gettext', :after => :load_config_initializers do
16
      locale_dir = File.join(File.expand_path('../../..', __FILE__), 'locale')
17
      locale_domain = 'foreman_docker'
18

    
19
      Foreman::Gettext::Support.add_text_domain locale_domain, locale_dir
20
    end
21

    
22
    initializer 'foreman_docker.register_plugin', :after => :finisher_hook do
23
      Foreman::Plugin.register :foreman_docker do
24
        requires_foreman '> 1.4'
25
        compute_resource ForemanDocker::Docker
26

    
27
        sub_menu :top_menu, :containers_menu, :caption => N_('Containers'), :after => :monitor_menu do
28
          menu :top_menu, :containers,    :caption => N_('All containers'),
29
                                          :url_hash => { :controller => :containers, :action => :index }
30
          menu :top_menu, :new_container, :caption => N_('New container'),
31
                                          :url_hash => { :controller => :containers, :action => :new }
32
        end
33

    
34
        security_block :containers do
35
          permission :view_containers,   { :containers         => [:index] }
36
          permission :create_containers, { :'containers/steps' => [:show, :update],
37
                                           :containers         => [:new] }
38
        end
39
      end
40

    
41
    end
42

    
43
    rake_tasks do
44
      load "#{ForemanDocker::Engine.root}/lib/foreman_docker/tasks/test.rake"
45
    end
46
  end
47

    
48

    
49
  # extend fog docker server and image models.
50
  require 'fog/fogdocker/models/compute/server'
51
  require 'fog/fogdocker/models/compute/image'
52
  require File.expand_path('../../../app/models/concerns/fog_extensions/fogdocker/server', __FILE__)
53
  require File.expand_path('../../../app/models/concerns/fog_extensions/fogdocker/image', __FILE__)
54
  Fog::Compute::Fogdocker::Server.send(:include, ::FogExtensions::Fogdocker::Server)
55
  Fog::Compute::Fogdocker::Image.send(:include, ::FogExtensions::Fogdocker::Image)
56
end