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.
- checksums.yaml +4 -4
- data/Rakefile +6 -27
- data/app/controllers/ansible_roles_controller.rb +55 -0
- data/app/controllers/api/v2/ansible_roles_controller.rb +52 -0
- data/app/controllers/foreman_ansible/concerns/hosts_controller_extensions.rb +11 -10
- data/app/helpers/foreman_ansible/ansible_plugin_helper.rb +8 -0
- data/app/helpers/foreman_ansible/ansible_reports_helper.rb +6 -4
- data/app/helpers/foreman_ansible/ansible_roles_helper.rb +17 -3
- data/app/helpers/foreman_ansible/hosts_helper_extensions.rb +4 -3
- data/app/lib/actions/foreman_ansible/play_host_roles.rb +56 -0
- data/app/lib/actions/foreman_ansible/play_hosts_roles.rb +26 -0
- data/app/lib/proxy_api/ansible.rb +28 -0
- data/app/models/ansible_role.rb +8 -0
- data/app/models/concerns/foreman_ansible/has_many_ansible_roles.rb +13 -0
- data/app/models/concerns/foreman_ansible/host_managed_extensions.rb +5 -1
- data/app/models/concerns/foreman_ansible/hostgroup_extensions.rb +19 -0
- data/app/models/host_ansible_role.rb +0 -2
- data/app/models/hostgroup_ansible_role.rb +8 -0
- data/app/overrides/ansible_roles_tab.rb +2 -2
- data/app/overrides/hostgroup_ansible_roles_tab.rb +14 -0
- data/app/services/foreman_ansible/api_roles_importer.rb +16 -0
- data/app/services/foreman_ansible/fact_importer.rb +2 -1
- data/app/services/foreman_ansible/inventory_creator.rb +37 -5
- data/app/services/foreman_ansible/playbook_creator.rb +3 -4
- data/app/services/foreman_ansible/proxy_selector.rb +19 -0
- data/app/services/foreman_ansible/roles_importer.rb +42 -15
- data/app/services/foreman_ansible/ui_roles_importer.rb +26 -0
- data/app/views/ansible_roles/import.html.erb +51 -0
- data/app/views/ansible_roles/index.html.erb +30 -0
- data/app/views/ansible_roles/welcome.html.erb +14 -0
- data/app/views/api/v2/ansible_roles/import.json.rabl +3 -0
- data/app/views/api/v2/ansible_roles/index.json.rabl +3 -0
- data/app/views/api/v2/ansible_roles/obsolete.json.rabl +3 -0
- data/app/views/api/v2/ansible_roles/show.json.rabl +3 -0
- data/app/views/foreman_ansible/ansible_roles/_select_tab_content.html.erb +6 -0
- data/app/views/foreman_ansible/{hosts/_tab_title.html.erb → ansible_roles/_select_tab_title.html.erb} +0 -0
- data/config/routes.rb +25 -2
- data/db/migrate/20160705082036_create_ansible_role.rb +2 -1
- data/db/migrate/20160706074540_create_join_table_hosts_ansible_roles.rb +1 -0
- data/db/migrate/20160707195442_create_host_ansible_roles.rb +1 -0
- data/db/migrate/20160729094457_add_columns_to_ansible_role.rb +12 -0
- data/db/migrate/20160802153302_create_join_table_hostgroup_ansible_roles.rb +10 -0
- data/db/migrate/20160805094233_add_primary_key_hostgroup_ansible_roles.rb +6 -0
- data/db/seeds.d/{62-ansible_proxy_feature.rb → 62_ansible_proxy_feature.rb} +0 -0
- data/lib/foreman_ansible.rb +1 -0
- data/lib/foreman_ansible/engine.rb +54 -4
- data/lib/foreman_ansible/version.rb +1 -1
- data/locale/en/foreman_ansible.po +139 -2
- data/locale/foreman_ansible.pot +200 -8
- data/test/factories/ansible_proxy.rb +7 -0
- data/test/factories/ansible_roles.rb +2 -2
- data/test/fixtures/ansible_permissions.yml +11 -0
- data/test/functional/ansible_roles_controller_test.rb +16 -0
- data/test/functional/api/v2/ansible_roles_controller_test.rb +24 -0
- data/test/functional/hosts_controller_test.rb +65 -24
- data/test/support/fixture_support.rb +25 -0
- data/test/support/foreman_tasks/task.rb +47 -0
- data/test/support/foreman_test_helper_additions.rb +22 -0
- data/test/test_plugin_helper.rb +5 -2
- data/test/unit/ansible_role_test.rb +6 -2
- data/test/unit/concerns/host_managed_extensions_test.rb +37 -0
- data/test/unit/concerns/hostgroup_extensions_test.rb +36 -0
- data/test/unit/fact_importer_test.rb +11 -8
- data/test/unit/fact_parser_test.rb +2 -0
- data/test/unit/fact_sparser_test.rb +1 -0
- data/test/unit/helpers/foreman_ansible/ansible_reports_helper_test.rb +1 -0
- data/test/unit/host_ansible_role_test.rb +10 -0
- data/test/unit/hostgroup_ansible_role_test.rb +19 -0
- data/test/unit/lib/foreman_ansible_core/playbook_runner_test.rb +28 -0
- data/test/unit/lib/proxy_api/ansible_test.rb +23 -0
- data/test/unit/services/api_roles_importer_test.rb +28 -0
- data/test/unit/services/proxy_selector_test.rb +28 -0
- data/test/unit/services/roles_importer_test.rb +17 -0
- data/test/unit/services/ui_roles_importer_test.rb +30 -0
- metadata +108 -14
- data/app/jobs/foreman_ansible/run_playbook_job.rb +0 -28
- data/app/services/foreman_ansible/role_player.rb +0 -26
- data/app/views/foreman_ansible/hosts/_tab_content.html.erb +0 -4
- data/lib/tasks/foreman_ansible_tasks.rake +0 -40
@@ -1,26 +0,0 @@
|
|
1
|
-
module ForemanAnsible
|
2
|
-
# Sugar-coating so that playing a list of roles is easier and
|
3
|
-
# more understandable, it just requires a host and it figures out the rest
|
4
|
-
class RolePlayer
|
5
|
-
attr_reader :host
|
6
|
-
|
7
|
-
def initialize(host)
|
8
|
-
@host = host
|
9
|
-
end
|
10
|
-
|
11
|
-
def play
|
12
|
-
return if host.ansible_roles.empty?
|
13
|
-
inventory_tempfile = InventoryCreator.new([host]).tempfile
|
14
|
-
RunPlaybookJob.new(create_playbook.path,
|
15
|
-
inventory_tempfile.path).enqueue
|
16
|
-
end
|
17
|
-
|
18
|
-
private
|
19
|
-
|
20
|
-
def create_playbook
|
21
|
-
PlaybookCreator.new(
|
22
|
-
host.fqdn,
|
23
|
-
host.ansible_roles.map(&:name)).roles_tempfile
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1,40 +0,0 @@
|
|
1
|
-
# Tests
|
2
|
-
namespace :test do
|
3
|
-
desc 'Test ForemanAnsible'
|
4
|
-
Rake::TestTask.new(:foreman_ansible) do |t|
|
5
|
-
test_dir = File.join(File.dirname(__FILE__), '../..', 'test')
|
6
|
-
t.libs << ['test', test_dir]
|
7
|
-
t.pattern = "#{test_dir}/**/*_test.rb"
|
8
|
-
t.verbose = false
|
9
|
-
t.warning = false
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
namespace :foreman_ansible do
|
14
|
-
task :rubocop do
|
15
|
-
begin
|
16
|
-
require 'rubocop/rake_task'
|
17
|
-
RuboCop::RakeTask.new(:rubocop_foreman_ansible) do |task|
|
18
|
-
task.patterns = ["#{ForemanAnsible::Engine.root}/app/**/*.rb",
|
19
|
-
"#{ForemanAnsible::Engine.root}/lib/**/*.rb",
|
20
|
-
"#{ForemanAnsible::Engine.root}/test/**/*.rb"]
|
21
|
-
end
|
22
|
-
rescue
|
23
|
-
puts 'Rubocop not loaded.'
|
24
|
-
end
|
25
|
-
|
26
|
-
Rake::Task['rubocop_foreman_ansible'].invoke
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
Rake::Task[:test].enhance do
|
31
|
-
Rake::Task['test:foreman_ansible'].invoke
|
32
|
-
end
|
33
|
-
|
34
|
-
load 'tasks/jenkins.rake'
|
35
|
-
if Rake::Task.task_defined?(:'jenkins:unit')
|
36
|
-
Rake::Task['jenkins:unit'].enhance do
|
37
|
-
Rake::Task['test:foreman_ansible'].invoke
|
38
|
-
Rake::Task['foreman_ansible:rubocop'].invoke
|
39
|
-
end
|
40
|
-
end
|