foreman_ansible 1.0 → 1.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of foreman_ansible might be problematic. Click here for more details.

Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +6 -27
  3. data/app/controllers/ansible_roles_controller.rb +55 -0
  4. data/app/controllers/api/v2/ansible_roles_controller.rb +52 -0
  5. data/app/controllers/foreman_ansible/concerns/hosts_controller_extensions.rb +11 -10
  6. data/app/helpers/foreman_ansible/ansible_plugin_helper.rb +8 -0
  7. data/app/helpers/foreman_ansible/ansible_reports_helper.rb +6 -4
  8. data/app/helpers/foreman_ansible/ansible_roles_helper.rb +17 -3
  9. data/app/helpers/foreman_ansible/hosts_helper_extensions.rb +4 -3
  10. data/app/lib/actions/foreman_ansible/play_host_roles.rb +56 -0
  11. data/app/lib/actions/foreman_ansible/play_hosts_roles.rb +26 -0
  12. data/app/lib/proxy_api/ansible.rb +28 -0
  13. data/app/models/ansible_role.rb +8 -0
  14. data/app/models/concerns/foreman_ansible/has_many_ansible_roles.rb +13 -0
  15. data/app/models/concerns/foreman_ansible/host_managed_extensions.rb +5 -1
  16. data/app/models/concerns/foreman_ansible/hostgroup_extensions.rb +19 -0
  17. data/app/models/host_ansible_role.rb +0 -2
  18. data/app/models/hostgroup_ansible_role.rb +8 -0
  19. data/app/overrides/ansible_roles_tab.rb +2 -2
  20. data/app/overrides/hostgroup_ansible_roles_tab.rb +14 -0
  21. data/app/services/foreman_ansible/api_roles_importer.rb +16 -0
  22. data/app/services/foreman_ansible/fact_importer.rb +2 -1
  23. data/app/services/foreman_ansible/inventory_creator.rb +37 -5
  24. data/app/services/foreman_ansible/playbook_creator.rb +3 -4
  25. data/app/services/foreman_ansible/proxy_selector.rb +19 -0
  26. data/app/services/foreman_ansible/roles_importer.rb +42 -15
  27. data/app/services/foreman_ansible/ui_roles_importer.rb +26 -0
  28. data/app/views/ansible_roles/import.html.erb +51 -0
  29. data/app/views/ansible_roles/index.html.erb +30 -0
  30. data/app/views/ansible_roles/welcome.html.erb +14 -0
  31. data/app/views/api/v2/ansible_roles/import.json.rabl +3 -0
  32. data/app/views/api/v2/ansible_roles/index.json.rabl +3 -0
  33. data/app/views/api/v2/ansible_roles/obsolete.json.rabl +3 -0
  34. data/app/views/api/v2/ansible_roles/show.json.rabl +3 -0
  35. data/app/views/foreman_ansible/ansible_roles/_select_tab_content.html.erb +6 -0
  36. data/app/views/foreman_ansible/{hosts/_tab_title.html.erb → ansible_roles/_select_tab_title.html.erb} +0 -0
  37. data/config/routes.rb +25 -2
  38. data/db/migrate/20160705082036_create_ansible_role.rb +2 -1
  39. data/db/migrate/20160706074540_create_join_table_hosts_ansible_roles.rb +1 -0
  40. data/db/migrate/20160707195442_create_host_ansible_roles.rb +1 -0
  41. data/db/migrate/20160729094457_add_columns_to_ansible_role.rb +12 -0
  42. data/db/migrate/20160802153302_create_join_table_hostgroup_ansible_roles.rb +10 -0
  43. data/db/migrate/20160805094233_add_primary_key_hostgroup_ansible_roles.rb +6 -0
  44. data/db/seeds.d/{62-ansible_proxy_feature.rb → 62_ansible_proxy_feature.rb} +0 -0
  45. data/lib/foreman_ansible.rb +1 -0
  46. data/lib/foreman_ansible/engine.rb +54 -4
  47. data/lib/foreman_ansible/version.rb +1 -1
  48. data/locale/en/foreman_ansible.po +139 -2
  49. data/locale/foreman_ansible.pot +200 -8
  50. data/test/factories/ansible_proxy.rb +7 -0
  51. data/test/factories/ansible_roles.rb +2 -2
  52. data/test/fixtures/ansible_permissions.yml +11 -0
  53. data/test/functional/ansible_roles_controller_test.rb +16 -0
  54. data/test/functional/api/v2/ansible_roles_controller_test.rb +24 -0
  55. data/test/functional/hosts_controller_test.rb +65 -24
  56. data/test/support/fixture_support.rb +25 -0
  57. data/test/support/foreman_tasks/task.rb +47 -0
  58. data/test/support/foreman_test_helper_additions.rb +22 -0
  59. data/test/test_plugin_helper.rb +5 -2
  60. data/test/unit/ansible_role_test.rb +6 -2
  61. data/test/unit/concerns/host_managed_extensions_test.rb +37 -0
  62. data/test/unit/concerns/hostgroup_extensions_test.rb +36 -0
  63. data/test/unit/fact_importer_test.rb +11 -8
  64. data/test/unit/fact_parser_test.rb +2 -0
  65. data/test/unit/fact_sparser_test.rb +1 -0
  66. data/test/unit/helpers/foreman_ansible/ansible_reports_helper_test.rb +1 -0
  67. data/test/unit/host_ansible_role_test.rb +10 -0
  68. data/test/unit/hostgroup_ansible_role_test.rb +19 -0
  69. data/test/unit/lib/foreman_ansible_core/playbook_runner_test.rb +28 -0
  70. data/test/unit/lib/proxy_api/ansible_test.rb +23 -0
  71. data/test/unit/services/api_roles_importer_test.rb +28 -0
  72. data/test/unit/services/proxy_selector_test.rb +28 -0
  73. data/test/unit/services/roles_importer_test.rb +17 -0
  74. data/test/unit/services/ui_roles_importer_test.rb +30 -0
  75. metadata +108 -14
  76. data/app/jobs/foreman_ansible/run_playbook_job.rb +0 -28
  77. data/app/services/foreman_ansible/role_player.rb +0 -26
  78. data/app/views/foreman_ansible/hosts/_tab_content.html.erb +0 -4
  79. data/lib/tasks/foreman_ansible_tasks.rake +0 -40
@@ -1,3 +1,4 @@
1
+ # Defines the relation between Host and AnsibleRole
1
2
  class CreateJoinTableHostsAnsibleRoles < ActiveRecord::Migration
2
3
  def change
3
4
  create_join_table :ansible_roles, :hosts do |t|
@@ -1,3 +1,4 @@
1
+ # Renames join table between Host and Ansible Roles
1
2
  class CreateHostAnsibleRoles < ActiveRecord::Migration
2
3
  def change
3
4
  rename_table :ansible_roles_hosts, :host_ansible_roles
@@ -0,0 +1,12 @@
1
+ # to keep track of when the roles were imported
2
+ class AddColumnsToAnsibleRole < ActiveRecord::Migration
3
+ def up
4
+ add_column :ansible_roles, :created_at, :datetime, :default => Time.now.utc
5
+ add_column :ansible_roles, :updated_at, :datetime, :default => Time.now.utc
6
+ end
7
+
8
+ def down
9
+ remove_column :ansible_roles, :created_at
10
+ remove_column :ansible_roles, :updated_at
11
+ end
12
+ end
@@ -0,0 +1,10 @@
1
+ # Defines the relation between Hostgroup and AnsibleRole
2
+ # rubocop:disable Metrics/LineLength
3
+ class CreateJoinTableHostgroupAnsibleRoles < ActiveRecord::Migration
4
+ def change
5
+ create_join_table :hostgroup, :ansible_roles, :table_name => 'hostgroup_ansible_roles' do |t|
6
+ t.index [:hostgroup_id, :ansible_role_id], :name => 'index_ansible_roles_hostgroup_on_hostgroup_id_and_role_id'
7
+ t.index [:ansible_role_id, :hostgroup_id], :name => 'index_ansible_roles_hostgroup_on_role_id_and_hostgroup_id'
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,6 @@
1
+ # Adds primary key to join table between Hostgroup and Ansible Role
2
+ class AddPrimaryKeyHostgroupAnsibleRoles < ActiveRecord::Migration
3
+ def change
4
+ add_column :hostgroup_ansible_roles, :id, :primary_key
5
+ end
6
+ end
@@ -1,3 +1,4 @@
1
+ require 'foreman-tasks'
1
2
  require 'foreman_ansible/engine'
2
3
 
3
4
  # Module required to start the Foreman Rails engine
@@ -1,4 +1,8 @@
1
1
  require 'deface'
2
+ require 'fast_gettext'
3
+ require 'gettext_i18n_rails'
4
+ require 'foreman_ansible_core'
5
+
2
6
  module ForemanAnsible
3
7
  # This engine connects ForemanAnsible with Foreman core
4
8
  class Engine < ::Rails::Engine
@@ -9,16 +13,60 @@ module ForemanAnsible
9
13
  config.autoload_paths += Dir["#{config.root}/app/overrides"]
10
14
  config.autoload_paths += Dir["#{config.root}/app/services"]
11
15
  config.autoload_paths += Dir["#{config.root}/app/views"]
16
+ config.autoload_paths += Dir["#{config.root}/app/lib"]
17
+
18
+ initializer 'foreman_ansible.register_gettext',
19
+ :after => :load_config_initializers do
20
+ locale_dir = File.join(File.expand_path('../../..', __FILE__), 'locale')
21
+ locale_domain = 'foreman_ansible'
22
+
23
+ Foreman::Gettext::Support.add_text_domain locale_domain, locale_dir
24
+ end
12
25
 
13
26
  initializer 'foreman_ansible.register_plugin', :before => :finisher_hook do
14
27
  Foreman::Plugin.register :foreman_ansible do
15
- # We need ActiveJob, only available post-1.12 because of Rails 4.2
16
28
  requires_foreman '>= 1.12'
29
+
30
+ security_block :foreman_ansible do
31
+ permission :play_roles,
32
+ { :hosts => [:play_roles, :multiple_play_roles] },
33
+ :resource_type => 'Host::Managed'
34
+ permission :view_ansible_roles,
35
+ { :ansible_roles => [:index],
36
+ :'api/v2/ansible_roles' => [:index, :show] },
37
+ :resource_type => 'AnsibleRole'
38
+ permission :destroy_ansible_roles,
39
+ { :ansible_roles => [:destroy],
40
+ :'api/v2/ansible_roles' => [:destroy, :obsolete] },
41
+ :resource_type => 'AnsibleRole'
42
+ permission :import_ansible_roles,
43
+ { :ansible_roles => [:import, :confirm_import],
44
+ :'api/v2/ansible_roles' => [:import] },
45
+ :resource_type => 'AnsibleRole'
46
+ end
47
+
48
+ role_assignment_params = { :ansible_role_ids => [],
49
+ :ansible_roles => [] }
50
+ parameter_filter Host::Managed, role_assignment_params
51
+ parameter_filter Hostgroup, role_assignment_params
52
+
53
+ divider :top_menu, :caption => N_('Ansible'), :parent => :configure_menu
54
+ menu :top_menu, :ansible_roles,
55
+ :caption => N_('Roles'),
56
+ :url_hash => { :controller => :ansible_roles, :action => :index },
57
+ :parent => :configure_menu
17
58
  end
18
59
  end
19
60
 
61
+ initializer('foreman_ansible.require_dynflow',
62
+ :before => 'foreman_tasks.initialize_dynflow') do
63
+ ::ForemanTasks.dynflow.require!
64
+ actions_path = File.join(ForemanAnsible::Engine.root, 'app/lib/actions')
65
+ ::ForemanTasks.dynflow.config.eager_load_paths << actions_path
66
+ end
67
+
20
68
  # Add any db migrations
21
- initializer 'foreman_remote_execution.load_app_instance_data' do |app|
69
+ initializer 'foreman_ansible.load_app_instance_data' do |app|
22
70
  ForemanAnsible::Engine.paths['db/migrate'].existent.each do |path|
23
71
  app.config.paths['db/migrate'] << path
24
72
  end
@@ -30,11 +78,13 @@ module ForemanAnsible
30
78
  ForemanAnsible::FactImporter)
31
79
  ::FactParser.register_fact_parser(:ansible, ForemanAnsible::FactParser)
32
80
  ::Host::Managed.send(:include, ForemanAnsible::HostManagedExtensions)
81
+ ::Hostgroup.send(:include, ForemanAnsible::HostgroupExtensions)
33
82
  ::HostsHelper.send(:include, ForemanAnsible::HostsHelperExtensions)
34
83
  ::HostsController.send(
35
- :include, ForemanAnsible::Concerns::HostsControllerExtensions)
84
+ :include, ForemanAnsible::Concerns::HostsControllerExtensions
85
+ )
36
86
  rescue => e
37
- Rails.logger "Foreman Ansible: skipping engine hook (#{e})"
87
+ Rails.logger.warn "Foreman Ansible: skipping engine hook (#{e})"
38
88
  end
39
89
  end
40
90
  end
@@ -2,5 +2,5 @@
2
2
  # This way other parts of Foreman can just call ForemanAnsible::VERSION
3
3
  # and detect what version the plugin is running.
4
4
  module ForemanAnsible
5
- VERSION = '1.0'
5
+ VERSION = '1.1'.freeze
6
6
  end
@@ -2,12 +2,10 @@
2
2
  #
3
3
  # This file is distributed under the same license as foreman_ansible.
4
4
  #
5
- #, fuzzy
6
5
  msgid ""
7
6
  msgstr ""
8
7
  "Project-Id-Version: version 0.0.1\n"
9
8
  "Report-Msgid-Bugs-To: \n"
10
- "POT-Creation-Date: 2014-08-20 08:46+0100\n"
11
9
  "PO-Revision-Date: 2014-08-20 08:54+0100\n"
12
10
  "Last-Translator: Foreman Team <foreman-dev@googlegroups.com>\n"
13
11
  "Language-Team: Foreman Team <foreman-dev@googlegroups.com>\n"
@@ -17,3 +15,142 @@ msgstr ""
17
15
  "Content-Transfer-Encoding: 8bit\n"
18
16
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
17
 
18
+ msgid "%s ago"
19
+ msgstr ""
20
+
21
+ msgid "Actions"
22
+ msgstr ""
23
+
24
+ msgid "Add"
25
+ msgstr ""
26
+
27
+ msgid "Ansible"
28
+ msgstr ""
29
+
30
+ msgid "Ansible Roles"
31
+ msgstr ""
32
+
33
+ msgid "Ansible roles"
34
+ msgstr ""
35
+
36
+ msgid "Ansible roles running in the background for hosts: %s"
37
+ msgstr ""
38
+
39
+ msgid "Ansible roles running in the background: %s"
40
+ msgstr ""
41
+
42
+ msgid "Ansible support in Foreman"
43
+ msgstr ""
44
+
45
+ msgid "Arguments"
46
+ msgstr ""
47
+
48
+ msgid "Available roles"
49
+ msgstr ""
50
+
51
+ msgid "Cancel"
52
+ msgstr ""
53
+
54
+ msgid "Changed Ansible roles"
55
+ msgstr ""
56
+
57
+ msgid "Check/Uncheck all"
58
+ msgstr ""
59
+
60
+ msgid "Check/Uncheck all %s changes"
61
+ msgstr ""
62
+
63
+ msgid "Check/Uncheck new"
64
+ msgstr ""
65
+
66
+ msgid "Check/Uncheck obsolete"
67
+ msgstr ""
68
+
69
+ msgid "Delete %s?"
70
+ msgstr ""
71
+
72
+ msgid "Hostgroups count"
73
+ msgstr ""
74
+
75
+ msgid "Hosts count"
76
+ msgstr ""
77
+
78
+ msgid "Import"
79
+ msgstr ""
80
+
81
+ msgid "Import from %s"
82
+ msgstr ""
83
+
84
+ msgid "Import from Foreman host"
85
+ msgstr ""
86
+
87
+ msgid "Import of roles successfully finished."
88
+ msgstr ""
89
+
90
+ msgid "Imported at"
91
+ msgstr ""
92
+
93
+ msgid "Learn more about this in the documentation."
94
+ msgstr ""
95
+
96
+ msgid "Level"
97
+ msgstr ""
98
+
99
+ msgid "Message"
100
+ msgstr ""
101
+
102
+ msgid "Module"
103
+ msgstr ""
104
+
105
+ msgid "Name"
106
+ msgstr ""
107
+
108
+ msgid "New"
109
+ msgstr ""
110
+
111
+ msgid ""
112
+ "No ansible roles were found in Foreman. If you want to assign roles to your hosts,\n"
113
+ " you have to import them first."
114
+ msgstr ""
115
+
116
+ msgid "No changes in roles detected on %s."
117
+ msgstr ""
118
+
119
+ msgid "No changes in roles detected."
120
+ msgstr ""
121
+
122
+ msgid "Nothing to show"
123
+ msgstr ""
124
+
125
+ msgid "Obsolete"
126
+ msgstr ""
127
+
128
+ msgid "Operation"
129
+ msgstr ""
130
+
131
+ msgid "Play Ansible roles"
132
+ msgstr ""
133
+
134
+ msgid "Proxy not found"
135
+ msgstr ""
136
+
137
+ msgid "Remove"
138
+ msgstr ""
139
+
140
+ msgid "Roles"
141
+ msgstr ""
142
+
143
+ msgid "Role|Name"
144
+ msgstr ""
145
+
146
+ msgid "Select the changes you want to realize in Foreman"
147
+ msgstr ""
148
+
149
+ msgid "Toggle"
150
+ msgstr ""
151
+
152
+ msgid "Unable to get roles from Ansible"
153
+ msgstr ""
154
+
155
+ msgid "Update"
156
+ msgstr ""
@@ -1,19 +1,211 @@
1
- # foreman_ansible
2
- #
3
- # This file is distributed under the same license as foreman_ansible.
1
+ # SOME DESCRIPTIVE TITLE.
2
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
+ # This file is distributed under the same license as the foreman_ansible package.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
4
5
  #
5
6
  #, fuzzy
6
7
  msgid ""
7
8
  msgstr ""
8
- "Project-Id-Version: version 0.0.1\n"
9
+ "Project-Id-Version: foreman_ansible 1.0.0\n"
9
10
  "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"
11
+ "POT-Creation-Date: 2016-08-26 10:12-0400\n"
12
+ "PO-Revision-Date: 2016-08-26 10:12-0400\n"
13
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
+ "Language-Team: LANGUAGE <LL@li.org>\n"
14
15
  "Language: \n"
15
16
  "MIME-Version: 1.0\n"
16
17
  "Content-Type: text/plain; charset=UTF-8\n"
17
18
  "Content-Transfer-Encoding: 8bit\n"
18
19
  "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
19
20
 
21
+ #: ../app/controllers/ansible_roles_controller.rb:28
22
+ msgid "No changes in roles detected on %s."
23
+ msgstr ""
24
+
25
+ #: ../app/controllers/ansible_roles_controller.rb:30
26
+ msgid "No changes in roles detected."
27
+ msgstr ""
28
+
29
+ #: ../app/controllers/ansible_roles_controller.rb:41
30
+ msgid "Import of roles successfully finished."
31
+ msgstr ""
32
+
33
+ #:
34
+ #: ../app/controllers/foreman_ansible/concerns/hosts_controller_extensions.rb:10
35
+ msgid "Ansible roles running in the background: %s"
36
+ msgstr ""
37
+
38
+ #:
39
+ #: ../app/controllers/foreman_ansible/concerns/hosts_controller_extensions.rb:20
40
+ msgid "Ansible roles running in the background for hosts: %s"
41
+ msgstr ""
42
+
43
+ #: ../app/helpers/foreman_ansible/ansible_roles_helper.rb:6
44
+ msgid "Import from %s"
45
+ msgstr ""
46
+
47
+ #: ../app/helpers/foreman_ansible/ansible_roles_helper.rb:10
48
+ msgid "Import from Foreman host"
49
+ msgstr ""
50
+
51
+ #: ../app/helpers/foreman_ansible/ansible_roles_helper.rb:16
52
+ msgid "Import"
53
+ msgstr ""
54
+
55
+ #: ../app/helpers/foreman_ansible/ansible_roles_helper.rb:20
56
+ msgid "%s ago"
57
+ msgstr ""
58
+
59
+ #: ../app/helpers/foreman_ansible/hosts_helper_extensions.rb:13
60
+ msgid "Ansible roles"
61
+ msgstr ""
62
+
63
+ #: ../app/helpers/foreman_ansible/hosts_helper_extensions.rb:24
64
+ msgid "Play Ansible roles"
65
+ msgstr ""
66
+
67
+ #: ../app/lib/proxy_api/ansible.rb:25
68
+ msgid "Unable to get roles from Ansible"
69
+ msgstr ""
70
+
71
+ #: ../app/services/foreman_ansible/roles_importer.rb:50
72
+ msgid "Proxy not found"
73
+ msgstr ""
74
+
75
+ #: ../app/views/ansible_roles/import.html.erb:1
76
+ msgid "Changed Ansible roles"
77
+ msgstr ""
78
+
79
+ #: ../app/views/ansible_roles/import.html.erb:3
80
+ msgid "Select the changes you want to realize in Foreman"
81
+ msgstr ""
82
+
83
+ #: ../app/views/ansible_roles/import.html.erb:5
84
+ msgid "Toggle"
85
+ msgstr ""
86
+
87
+ #: ../app/views/ansible_roles/import.html.erb:6
88
+ msgid "New"
89
+ msgstr ""
90
+
91
+ #: ../app/views/ansible_roles/import.html.erb:8
92
+ msgid "Check/Uncheck new"
93
+ msgstr ""
94
+
95
+ #: ../app/views/ansible_roles/import.html.erb:9
96
+ msgid "Obsolete"
97
+ msgstr ""
98
+
99
+ #: ../app/views/ansible_roles/import.html.erb:11
100
+ msgid "Check/Uncheck obsolete"
101
+ msgstr ""
102
+
103
+ #: ../app/views/ansible_roles/import.html.erb:19
104
+ msgid "Check/Uncheck all"
105
+ msgstr ""
106
+
107
+ #: ../app/views/ansible_roles/import.html.erb:21
108
+ msgid "Name"
109
+ msgstr ""
110
+
111
+ #: ../app/views/ansible_roles/import.html.erb:22
112
+ msgid "Hosts count"
113
+ msgstr ""
114
+
115
+ #: ../app/views/ansible_roles/import.html.erb:23
116
+ msgid "Hostgroups count"
117
+ msgstr ""
118
+
119
+ #: ../app/views/ansible_roles/import.html.erb:24
120
+ msgid "Operation"
121
+ msgstr ""
122
+
123
+ #: ../app/views/ansible_roles/import.html.erb:35
124
+ msgid "Check/Uncheck all %s changes"
125
+ msgstr ""
126
+
127
+ #: ../app/views/ansible_roles/import.html.erb:40
128
+ msgid "Add"
129
+ msgstr ""
130
+
131
+ #: ../app/views/ansible_roles/import.html.erb:40
132
+ msgid "Remove"
133
+ msgstr ""
134
+
135
+ #: ../app/views/ansible_roles/import.html.erb:48
136
+ msgid "Cancel"
137
+ msgstr ""
138
+
139
+ #: ../app/views/ansible_roles/import.html.erb:49
140
+ msgid "Update"
141
+ msgstr ""
142
+
143
+ #: ../app/views/ansible_roles/index.html.erb:1
144
+ #: ../app/views/ansible_roles/welcome.html.erb:1
145
+ #: ../app/views/ansible_roles/welcome.html.erb:6
146
+ #: ../app/views/foreman_ansible/ansible_roles/_select_tab_title.html.erb:1
147
+ msgid "Ansible Roles"
148
+ msgstr ""
149
+
150
+ #: ../app/views/ansible_roles/index.html.erb:8
151
+ msgid "Role|Name"
152
+ msgstr ""
153
+
154
+ #: ../app/views/ansible_roles/index.html.erb:9
155
+ msgid "Imported at"
156
+ msgstr ""
157
+
158
+ #: ../app/views/ansible_roles/index.html.erb:10
159
+ msgid "Actions"
160
+ msgstr ""
161
+
162
+ #: ../app/views/ansible_roles/index.html.erb:21
163
+ msgid "Delete %s?"
164
+ msgstr ""
165
+
166
+ #: ../app/views/ansible_roles/welcome.html.erb:7
167
+ msgid ""
168
+ "No ansible roles were found in Foreman. If you want to assign roles to your ho"
169
+ "sts,\n"
170
+ " you have to import them first."
171
+ msgstr ""
172
+
173
+ #: ../app/views/ansible_roles/welcome.html.erb:10
174
+ msgid "Learn more about this in the documentation."
175
+ msgstr ""
176
+
177
+ #: ../app/views/foreman_ansible/ansible_roles/_select_tab_content.html.erb:4
178
+ msgid "Available roles"
179
+ msgstr ""
180
+
181
+ #: ../app/views/foreman_ansible/config_reports/_ansible.html.erb:4
182
+ msgid "Level"
183
+ msgstr ""
184
+
185
+ #: ../app/views/foreman_ansible/config_reports/_ansible.html.erb:5
186
+ msgid "Module"
187
+ msgstr ""
188
+
189
+ #: ../app/views/foreman_ansible/config_reports/_ansible.html.erb:6
190
+ msgid "Arguments"
191
+ msgstr ""
192
+
193
+ #: ../app/views/foreman_ansible/config_reports/_ansible.html.erb:7
194
+ msgid "Message"
195
+ msgstr ""
196
+
197
+ #: ../app/views/foreman_ansible/config_reports/_ansible.html.erb:20
198
+ msgid "Nothing to show"
199
+ msgstr ""
200
+
201
+ #: ../lib/foreman_ansible/engine.rb:50
202
+ msgid "Ansible"
203
+ msgstr ""
204
+
205
+ #: ../lib/foreman_ansible/engine.rb:52
206
+ msgid "Roles"
207
+ msgstr ""
208
+
209
+ #: gemspec.rb:2
210
+ msgid "Ansible support in Foreman"
211
+ msgstr ""