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,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,4 +0,0 @@
1
- <div class='tab-pane' id='ansible_roles'>
2
- <%= multiple_checkboxes f, :ansible_roles, @host, ansible_roles,
3
- :label => _('Roles') %>
4
- </div>
@@ -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