foreman_pipeline 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (211) hide show
  1. checksums.yaml +15 -0
  2. data/LICENSE +674 -0
  3. data/README.md +36 -0
  4. data/Rakefile +40 -0
  5. data/app/assets/javascripts/foreman_pipeline/foreman_pipeline-bootstrap.js +8 -0
  6. data/app/assets/javascripts/foreman_pipeline/foreman_pipeline.js +20 -0
  7. data/app/assets/javascripts/foreman_pipeline/jenkins-instances/details/jenkins-instance-details-info.controller.js +46 -0
  8. data/app/assets/javascripts/foreman_pipeline/jenkins-instances/details/jenkins-instance-details-users.controller.js +72 -0
  9. data/app/assets/javascripts/foreman_pipeline/jenkins-instances/details/jenkins-instance-details.controller.js +40 -0
  10. data/app/assets/javascripts/foreman_pipeline/jenkins-instances/details/views/jenkins-instance-details-info.html +36 -0
  11. data/app/assets/javascripts/foreman_pipeline/jenkins-instances/details/views/jenkins-instance-details-users.html +107 -0
  12. data/app/assets/javascripts/foreman_pipeline/jenkins-instances/details/views/jenkins-instance-details.html +53 -0
  13. data/app/assets/javascripts/foreman_pipeline/jenkins-instances/jenkins-instances.controller.js +34 -0
  14. data/app/assets/javascripts/foreman_pipeline/jenkins-instances/jenkins-instances.factory.js +14 -0
  15. data/app/assets/javascripts/foreman_pipeline/jenkins-instances/jenkins-instances.module.js +93 -0
  16. data/app/assets/javascripts/foreman_pipeline/jenkins-instances/new/new-jenkins-instance.controller.js +40 -0
  17. data/app/assets/javascripts/foreman_pipeline/jenkins-instances/new/views/new-jenkins-instance-form.html +50 -0
  18. data/app/assets/javascripts/foreman_pipeline/jenkins-instances/new/views/new-jenkins-instance.html +16 -0
  19. data/app/assets/javascripts/foreman_pipeline/jenkins-instances/views/jenkins-instances-table-collapsed.html +20 -0
  20. data/app/assets/javascripts/foreman_pipeline/jenkins-instances/views/jenkins-instances-table-full.html +30 -0
  21. data/app/assets/javascripts/foreman_pipeline/jenkins-instances/views/jenkins-instances.html +17 -0
  22. data/app/assets/javascripts/foreman_pipeline/jenkins-project-params/jenkins-project-params.factory.js +11 -0
  23. data/app/assets/javascripts/foreman_pipeline/jenkins-project-params/jenkins-project-params.module.js +6 -0
  24. data/app/assets/javascripts/foreman_pipeline/jenkins-projects/jenkins-projects.factory.js +9 -0
  25. data/app/assets/javascripts/foreman_pipeline/jenkins-projects/jenkins-projects.module.js +10 -0
  26. data/app/assets/javascripts/foreman_pipeline/jenkins-requests/jenkins-requests.factory.js +11 -0
  27. data/app/assets/javascripts/foreman_pipeline/jenkins-requests/jenkins-requests.module.js +10 -0
  28. data/app/assets/javascripts/foreman_pipeline/jenkins-users/details/jenkins-user-info.controller.js +39 -0
  29. data/app/assets/javascripts/foreman_pipeline/jenkins-users/details/views/jenkins-user-info.html +37 -0
  30. data/app/assets/javascripts/foreman_pipeline/jenkins-users/jenkins-users.factory.js +10 -0
  31. data/app/assets/javascripts/foreman_pipeline/jenkins-users/jenkins-users.module.js +6 -0
  32. data/app/assets/javascripts/foreman_pipeline/jenkins-users/new/new-jenkins-user.controller.js +45 -0
  33. data/app/assets/javascripts/foreman_pipeline/jenkins-users/new/views/new-jenkins-user.html +32 -0
  34. data/app/assets/javascripts/foreman_pipeline/jobs/details/job-details-add-paths.controller.js +63 -0
  35. data/app/assets/javascripts/foreman_pipeline/jobs/details/job-details-content-views.controller.js +55 -0
  36. data/app/assets/javascripts/foreman_pipeline/jobs/details/job-details-environments.controller.js +56 -0
  37. data/app/assets/javascripts/foreman_pipeline/jobs/details/job-details-hostgroups.controller.js +59 -0
  38. data/app/assets/javascripts/foreman_pipeline/jobs/details/job-details-info.controller.js +69 -0
  39. data/app/assets/javascripts/foreman_pipeline/jobs/details/job-details-jenkins-projects.controller.js +49 -0
  40. data/app/assets/javascripts/foreman_pipeline/jobs/details/job-details-jenkins.controller.js +56 -0
  41. data/app/assets/javascripts/foreman_pipeline/jobs/details/job-details-resources.controller.js +60 -0
  42. data/app/assets/javascripts/foreman_pipeline/jobs/details/job-details-to-environments.controller.js +157 -0
  43. data/app/assets/javascripts/foreman_pipeline/jobs/details/job-details.controller.js +34 -0
  44. data/app/assets/javascripts/foreman_pipeline/jobs/details/project-discovery/job-projects-discovery.controller.js +96 -0
  45. data/app/assets/javascripts/foreman_pipeline/jobs/details/project-discovery/job-projects-parameters.controller.js +54 -0
  46. data/app/assets/javascripts/foreman_pipeline/jobs/details/project-discovery/views/job-jenkins-projects.html +1 -0
  47. data/app/assets/javascripts/foreman_pipeline/jobs/details/project-discovery/views/job-projects-discovery.html +91 -0
  48. data/app/assets/javascripts/foreman_pipeline/jobs/details/project-discovery/views/job-projects-parameters.html +77 -0
  49. data/app/assets/javascripts/foreman_pipeline/jobs/details/views/job-details-content-views.html +83 -0
  50. data/app/assets/javascripts/foreman_pipeline/jobs/details/views/job-details-environments.html +50 -0
  51. data/app/assets/javascripts/foreman_pipeline/jobs/details/views/job-details-hostgroups.html +81 -0
  52. data/app/assets/javascripts/foreman_pipeline/jobs/details/views/job-details-info.html +117 -0
  53. data/app/assets/javascripts/foreman_pipeline/jobs/details/views/job-details-jenkins-projects.html +75 -0
  54. data/app/assets/javascripts/foreman_pipeline/jobs/details/views/job-details-jenkins.html +88 -0
  55. data/app/assets/javascripts/foreman_pipeline/jobs/details/views/job-details-paths-list.html +72 -0
  56. data/app/assets/javascripts/foreman_pipeline/jobs/details/views/job-details-resources.html +86 -0
  57. data/app/assets/javascripts/foreman_pipeline/jobs/details/views/job-details-to-environments.html +51 -0
  58. data/app/assets/javascripts/foreman_pipeline/jobs/details/views/job-details.html +80 -0
  59. data/app/assets/javascripts/foreman_pipeline/jobs/jobs.controller.js +40 -0
  60. data/app/assets/javascripts/foreman_pipeline/jobs/jobs.factory.js +54 -0
  61. data/app/assets/javascripts/foreman_pipeline/jobs/jobs.module.js +142 -0
  62. data/app/assets/javascripts/foreman_pipeline/jobs/new/new-job.controller.js +31 -0
  63. data/app/assets/javascripts/foreman_pipeline/jobs/new/views/new-job-form.html +47 -0
  64. data/app/assets/javascripts/foreman_pipeline/jobs/new/views/new-job.html +17 -0
  65. data/app/assets/javascripts/foreman_pipeline/jobs/views/jobs-table-collapsed.html +20 -0
  66. data/app/assets/javascripts/foreman_pipeline/jobs/views/jobs-table-full.html +66 -0
  67. data/app/assets/javascripts/foreman_pipeline/jobs/views/jobs.html +19 -0
  68. data/app/assets/javascripts/foreman_pipeline/jobs/views/pln-path-selector.html +10 -0
  69. data/app/assets/stylesheets/foreman_pipeline/foreman_pipeline.css +13 -0
  70. data/app/controllers/foreman_pipeline/api/jenkins_instances_controller.rb +124 -0
  71. data/app/controllers/foreman_pipeline/api/jenkins_project_params_controller.rb +34 -0
  72. data/app/controllers/foreman_pipeline/api/jenkins_projects_controller.rb +29 -0
  73. data/app/controllers/foreman_pipeline/api/jenkins_requests_controller.rb +28 -0
  74. data/app/controllers/foreman_pipeline/api/jenkins_users_controller.rb +89 -0
  75. data/app/controllers/foreman_pipeline/api/jobs_controller.rb +271 -0
  76. data/app/controllers/foreman_pipeline/application_controller.rb +4 -0
  77. data/app/helpers/foreman_pipeline/application_helper.rb +4 -0
  78. data/app/lib/actions/foreman_pipeline/jenkins/abstract_jenkins_action.rb +20 -0
  79. data/app/lib/actions/foreman_pipeline/jenkins/build.rb +35 -0
  80. data/app/lib/actions/foreman_pipeline/jenkins/build_project.rb +31 -0
  81. data/app/lib/actions/foreman_pipeline/jenkins/bulk_build.rb +23 -0
  82. data/app/lib/actions/foreman_pipeline/jenkins/get_build_details.rb +11 -0
  83. data/app/lib/actions/foreman_pipeline/jenkins/get_build_params.rb +11 -0
  84. data/app/lib/actions/foreman_pipeline/jenkins/get_version.rb +17 -0
  85. data/app/lib/actions/foreman_pipeline/jenkins/list.rb +15 -0
  86. data/app/lib/actions/foreman_pipeline/jenkins/wait_and_poll.rb +33 -0
  87. data/app/lib/actions/foreman_pipeline/jenkins/wait_for_build.rb +42 -0
  88. data/app/lib/actions/foreman_pipeline/jenkins/wait_host_ready.rb +36 -0
  89. data/app/lib/actions/foreman_pipeline/jenkins_instance/abstract_jenkins_instance_action.rb +17 -0
  90. data/app/lib/actions/foreman_pipeline/jenkins_instance/create_jenkins_instance_keys.rb +45 -0
  91. data/app/lib/actions/foreman_pipeline/job/create_activation_key.rb +20 -0
  92. data/app/lib/actions/foreman_pipeline/job/create_host.rb +88 -0
  93. data/app/lib/actions/foreman_pipeline/job/cv_promote_job_hook.rb +22 -0
  94. data/app/lib/actions/foreman_pipeline/job/cv_publish_job_hook.rb +22 -0
  95. data/app/lib/actions/foreman_pipeline/job/deploy_new_host.rb +25 -0
  96. data/app/lib/actions/foreman_pipeline/job/find_packages_to_install.rb +16 -0
  97. data/app/lib/actions/foreman_pipeline/job/job_hook.rb +24 -0
  98. data/app/lib/actions/foreman_pipeline/job/multiple_promotions.rb +18 -0
  99. data/app/lib/actions/foreman_pipeline/job/promote.rb +38 -0
  100. data/app/lib/actions/foreman_pipeline/job/redeploy.rb +45 -0
  101. data/app/lib/actions/foreman_pipeline/job/repo_sync_job_hook.rb +33 -0
  102. data/app/lib/actions/foreman_pipeline/job/run_job_manually.rb +25 -0
  103. data/app/lib/actions/foreman_pipeline/job/suspend_until_provisioned.rb +13 -0
  104. data/app/lib/actions/foreman_pipeline/mixins/ssh_extension.rb +41 -0
  105. data/app/lib/actions/foreman_pipeline/mixins/uri_extension.rb +14 -0
  106. data/app/lib/foreman_pipeline/api/rendering.rb +18 -0
  107. data/app/models/foreman_pipeline/authorization/base_model.rb +31 -0
  108. data/app/models/foreman_pipeline/authorization/jenkins_instance.rb +8 -0
  109. data/app/models/foreman_pipeline/authorization/jenkins_project.rb +8 -0
  110. data/app/models/foreman_pipeline/authorization/jenkins_project_param.rb +8 -0
  111. data/app/models/foreman_pipeline/authorization/jenkins_user.rb +7 -0
  112. data/app/models/foreman_pipeline/authorization/job.rb +7 -0
  113. data/app/models/foreman_pipeline/concerns/compute_resource_extension.rb +11 -0
  114. data/app/models/foreman_pipeline/concerns/content_view_extension.rb +12 -0
  115. data/app/models/foreman_pipeline/concerns/content_view_repository_extension.rb +12 -0
  116. data/app/models/foreman_pipeline/concerns/hostgroup_extension.rb +12 -0
  117. data/app/models/foreman_pipeline/concerns/kt_environment_extension.rb +18 -0
  118. data/app/models/foreman_pipeline/concerns/repository_extension.rb +12 -0
  119. data/app/models/foreman_pipeline/glue/elastic_search/base_model.rb +21 -0
  120. data/app/models/foreman_pipeline/glue/elastic_search/jenkins_instance.rb +11 -0
  121. data/app/models/foreman_pipeline/glue/elastic_search/jenkins_project.rb +11 -0
  122. data/app/models/foreman_pipeline/glue/elastic_search/jenkins_user.rb +11 -0
  123. data/app/models/foreman_pipeline/glue/elastic_search/job.rb +11 -0
  124. data/app/models/foreman_pipeline/jenkins_instance.rb +51 -0
  125. data/app/models/foreman_pipeline/jenkins_project.rb +18 -0
  126. data/app/models/foreman_pipeline/jenkins_project_param.rb +21 -0
  127. data/app/models/foreman_pipeline/jenkins_user.rb +15 -0
  128. data/app/models/foreman_pipeline/job.rb +72 -0
  129. data/app/models/foreman_pipeline/job_jenkins_project.rb +25 -0
  130. data/app/models/foreman_pipeline/job_to_environment.rb +19 -0
  131. data/app/views/foreman/unattended/snippets/_jenkins_instance_pubkey.erb +10 -0
  132. data/app/views/foreman_pipeline/api/common/async.json.rabl +3 -0
  133. data/app/views/foreman_pipeline/api/common/index.json.rabl +7 -0
  134. data/app/views/foreman_pipeline/api/compute_resources/index.json.rabl +3 -0
  135. data/app/views/foreman_pipeline/api/compute_resources/show.json.rabl +5 -0
  136. data/app/views/foreman_pipeline/api/content_views/index.json.rabl +3 -0
  137. data/app/views/foreman_pipeline/api/content_views/show.json.rabl +5 -0
  138. data/app/views/foreman_pipeline/api/environments/show.json.rabl +11 -0
  139. data/app/views/foreman_pipeline/api/hostgroups/index.json.rabl +3 -0
  140. data/app/views/foreman_pipeline/api/hostgroups/show.json.rabl +5 -0
  141. data/app/views/foreman_pipeline/api/jenkins_instances/index.json.rabl +3 -0
  142. data/app/views/foreman_pipeline/api/jenkins_instances/show.json.rabl +7 -0
  143. data/app/views/foreman_pipeline/api/jenkins_project_params/index.json.rabl +3 -0
  144. data/app/views/foreman_pipeline/api/jenkins_project_params/show.json.rabl +3 -0
  145. data/app/views/foreman_pipeline/api/jenkins_projects/index.json.rabl +3 -0
  146. data/app/views/foreman_pipeline/api/jenkins_projects/show.json.rabl +7 -0
  147. data/app/views/foreman_pipeline/api/jenkins_users/index.json.rabl +2 -0
  148. data/app/views/foreman_pipeline/api/jenkins_users/show.json.rabl +3 -0
  149. data/app/views/foreman_pipeline/api/jobs/available_paths.json.rabl +9 -0
  150. data/app/views/foreman_pipeline/api/jobs/index.json.rabl +3 -0
  151. data/app/views/foreman_pipeline/api/jobs/show.json.rabl +32 -0
  152. data/config/mount_engine.rb +3 -0
  153. data/config/routes.rb +53 -0
  154. data/db/migrate/20141003121914_create_job_table.rb +13 -0
  155. data/db/migrate/20141003145152_add_organization_to_jobs_table.rb +9 -0
  156. data/db/migrate/20141014125836_make_content_view_and_hostgroup_optional_for_job.rb +11 -0
  157. data/db/migrate/20141029121444_create_test_table.rb +11 -0
  158. data/db/migrate/20141029125423_add_organization_to_test_table.rb +9 -0
  159. data/db/migrate/20141030154210_create_jobs_tests_table.rb +12 -0
  160. data/db/migrate/20141120130350_add_resource_to_job.rb +9 -0
  161. data/db/migrate/20150121134503_create_jenkins_instances_table.rb +13 -0
  162. data/db/migrate/20150121134748_add_jenkins_instances_to_job_table.rb +9 -0
  163. data/db/migrate/20150122155819_add_kt_environment_to_jobs_table.rb +9 -0
  164. data/db/migrate/20150127101153_add_trigger_options_to_jobs_table.rb +13 -0
  165. data/db/migrate/20150202180711_add_content_column_to_tests_table.rb +9 -0
  166. data/db/migrate/20150209145400_add_pubkey_to_jenkins_instance_table.rb +9 -0
  167. data/db/migrate/20150209160604_add_jenkins_home_to_jenkins_instance_table.rb +9 -0
  168. data/db/migrate/20150212115234_add_uniqueness_to_jenkins_instance_url.rb +9 -0
  169. data/db/migrate/20150212125901_add_uniqueness_to_test_name.rb +9 -0
  170. data/db/migrate/20150213095447_add_cert_path_to_jenkins_instances.rb +9 -0
  171. data/db/migrate/20150216170951_add_build_step_to_tests_table.rb +9 -0
  172. data/db/migrate/20150223142315_change_jenkins_instance_cert_path_column.rb +9 -0
  173. data/db/migrate/20150224090100_create_jenkins_projects_table.rb +19 -0
  174. data/db/migrate/20150226182211_add_org_to_jenkins_project.rb +9 -0
  175. data/db/migrate/20150301134121_create_jenkins_project_params_table.rb +16 -0
  176. data/db/migrate/20150303134951_change_jenkins_project_param_value_column.rb +9 -0
  177. data/db/migrate/20150304123529_change_jenkins_project_params_table.rb +9 -0
  178. data/db/migrate/20150305122212_drop_tests_table.rb +5 -0
  179. data/db/migrate/20150312153833_create_jenkins_users.rb +15 -0
  180. data/db/migrate/20150313093244_add_jenkins_user_to_jobs.rb +9 -0
  181. data/db/migrate/20150313115956_change_jenkins_user_owner.rb +9 -0
  182. data/db/migrate/20150318141859_rename_tables.rb +19 -0
  183. data/db/migrate/20150323153355_remove_owner_from_jenkins_user.rb +9 -0
  184. data/db/migrate/20150323165954_add_jenkins_user_to_instance.rb +9 -0
  185. data/db/migrate/20150323175436_remove_jenkins_user_from_job.rb +9 -0
  186. data/db/migrate/20150324082437_remove_jenkins_instance_from_user.rb +9 -0
  187. data/db/migrate/20150324093416_add_promote_to_jobs.rb +9 -0
  188. data/db/migrate/20150324124034_create_job_path.rb +13 -0
  189. data/db/migrate/20150408143011_remove_cv_promote_from_job.rb +9 -0
  190. data/db/migrate/20150408145022_rename_job_path.rb +11 -0
  191. data/db/migrate/20150923073033_drop_orphaned_table.rb +8 -0
  192. data/lib/foreman_pipeline.rb +5 -0
  193. data/lib/foreman_pipeline/engine.rb +67 -0
  194. data/lib/foreman_pipeline/permissions.rb +3 -0
  195. data/lib/foreman_pipeline/permissions/jenkins_instance_permissions.rb +25 -0
  196. data/lib/foreman_pipeline/permissions/jenkins_project_params_permissions.rb +9 -0
  197. data/lib/foreman_pipeline/permissions/jenkins_projects_permissions.rb +9 -0
  198. data/lib/foreman_pipeline/permissions/jenkins_request_permissions.rb +9 -0
  199. data/lib/foreman_pipeline/permissions/jenkins_user_permissions.rb +24 -0
  200. data/lib/foreman_pipeline/permissions/job_permissions.rb +27 -0
  201. data/lib/foreman_pipeline/plugin.rb +17 -0
  202. data/lib/foreman_pipeline/roles.rb +13 -0
  203. data/lib/foreman_pipeline/tasks/foreman_pipeline_seed.rake +18 -0
  204. data/lib/foreman_pipeline/tasks/foreman_pipeline_test.rake +34 -0
  205. data/lib/foreman_pipeline/version.rb +3 -0
  206. data/test/factories/hostgroup_factory.rb +6 -0
  207. data/test/factories/jenkins_instance_related_factory.rb +20 -0
  208. data/test/foreman_pipeline_plugin_test_helper.rb +28 -0
  209. data/test/unit/job_test.rb +26 -0
  210. data/test/unit/sanity_test.rb +12 -0
  211. metadata +327 -0
@@ -0,0 +1,18 @@
1
+ namespace :foreman_pipeline do
2
+
3
+ desc "seeding the database"
4
+ task :seed => :environment do
5
+ defaults = {:default => true, :locked => false}
6
+ templates = [{:name => "foreman_pipeline_jenkins_pubkey", :source => "snippets/_jenkins_instance_pubkey.erb", :snippet => true}]
7
+
8
+ templates.each do |template|
9
+ template[:template] = File.read(File.join(ForemanPipeline::Engine.root, "app/views/foreman/unattended", template.delete(:source)))
10
+
11
+ ::ConfigTemplate.find_or_create_by_name(template) do |tmplt|
12
+ tmplt.update_attributes(defaults.merge(template))
13
+ end
14
+ end
15
+
16
+ end
17
+
18
+ end
@@ -0,0 +1,34 @@
1
+ require File.expand_path("../engine", File.dirname(__FILE__))
2
+
3
+ namespace :test do
4
+
5
+ namespace :foreman_pipeline do
6
+
7
+ task :test => ['db:test:prepare'] do
8
+ test_task = Rake::TestTask.new('foreman_pipeline_test_task') do |t|
9
+ t.libs << ["test", "#{ForemanPipeline::Engine.root}/test"]
10
+ t.test_files = ["#{ForemanPipeline::Engine.root}/test/**/*_test.rb"]
11
+ t.verbose = true
12
+ end
13
+ Rake::Task[test_task.name].invoke
14
+ end
15
+
16
+ task :spec => ['db:test:prepare'] do
17
+ test_task = Rake::TestTask.new('foreman_pipeline_spec_task') do |t|
18
+ t.libs << ["spec", "#{ForemanPipeline::Engine.root}/spec", "test", "#{ForemanPipeline::Engine.root}/test"]
19
+ t.test_files = ["#{ForemanPipeline::Engine.root}/spec/**/*_spec.rb"]
20
+ t.verbose = true
21
+ end
22
+ Rake::Task[test_task.name].invoke
23
+ end
24
+ end
25
+
26
+
27
+ desc "run all plugin's tests"
28
+ task :foreman_pipeline do
29
+ Rake::Task['test:foreman_pipeline:test'].invoke
30
+ Rake::Task['test:foreman_pipeline:spec'].invoke
31
+ end
32
+
33
+ end
34
+
@@ -0,0 +1,3 @@
1
+ module ForemanPipeline
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,6 @@
1
+ FactoryGirl.define do
2
+ factory :pipeline_hostgroup, :class => Hostgroup do
3
+ sequence(:name) { |n| "hostgroup#{n}" }
4
+ compute_profile
5
+ end
6
+ end
@@ -0,0 +1,20 @@
1
+ FactoryGirl.define do
2
+ factory :pipeline_organization, :class => Organization do
3
+ sequence(:name) { |n| "pipeline_organization#{n}"}
4
+ end
5
+
6
+ factory :jenkins_user, :class => ForemanPipeline::JenkinsUser do
7
+ sequence(:name) { |n| "jenkins_user#{n}"}
8
+ token "abcde"
9
+ organization
10
+ end
11
+
12
+ factory :jenkins_instance, :class => ForemanPipeline::JenkinsInstance do
13
+ sequence(:name) { |n| "jenkins.random#{n}"}
14
+ sequence(:cert_path) { |n| "/var/lib/file#{n}" }
15
+ sequence(:url) { |n| "http://jenkins.random#{n}.com:8080" }
16
+ organization
17
+ jenkins_home "/var/lib/jenkins"
18
+ jenkins_user
19
+ end
20
+ end
@@ -0,0 +1,28 @@
1
+ require "test_helper"
2
+
3
+ def katello_root
4
+ "#{ForemanPipeline::Engine::Railties.engines
5
+ .select {|engine| engine.railtie_name == "katello"}
6
+ .first.config.root}"
7
+ end
8
+
9
+ require "#{katello_root}/spec/models/model_spec_helper"
10
+ FactoryGirl.definition_file_paths << File.join(katello_root, 'test', 'factories')
11
+ FactoryGirl.definition_file_paths << File.join(File.dirname(__FILE__), 'factories')
12
+ FactoryGirl.reload
13
+
14
+ class ActiveSupport::TestCase
15
+
16
+ def get_organization(org = nil)
17
+ saved_user = User.current
18
+ User.current = User.find(users(:admin))
19
+ org = org.nil? ? :empty_organization : org
20
+ organization = Organization.find(taxonomies(org.to_sym))
21
+ organization.stubs(:label_not_changed).returns(true)
22
+ organization.setup_label_from_name
23
+ organization.save!
24
+ User.current = saved_user
25
+ organization
26
+ end
27
+
28
+ end
@@ -0,0 +1,26 @@
1
+ require 'foreman_pipeline_plugin_test_helper'
2
+
3
+ class JobTest < ActiveSupport::TestCase
4
+
5
+ def setup
6
+ @organization = get_organization
7
+ @compute_resource = FactoryGirl.create(:compute_resource, :libvirt)
8
+ @hostgroup = FactoryGirl.create(:pipeline_hostgroup, :compute_profile => @compute_profile)
9
+ @content_view = FactoryGirl.create(:katello_content_view)
10
+ @jenkins_user = FactoryGirl.create(:jenkins_user, :organization => get_organization)
11
+ @jenkins_instance = FactoryGirl.create(:jenkins_instance, :jenkins_user => @jenkins_user, :organization => get_organization)
12
+ @environment = FactoryGirl.create(:katello_environment, :library)
13
+ end
14
+
15
+ test "should validate host" do
16
+ job = ForemanPipeline::Job.create(:name => "test job",
17
+ :organization => @organization,
18
+ :hostgroup => @hostgroup,
19
+ :compute_resource => @compute_resource,
20
+ :content_view => @content_view,
21
+ :jenkins_instance => @jenkins_instance,
22
+ :environment => @environment)
23
+ assert job.is_valid?
24
+ end
25
+
26
+ end
@@ -0,0 +1,12 @@
1
+ require 'foreman_pipeline_plugin_test_helper'
2
+
3
+ class IntegrationTest < ActiveSupport::TestCase
4
+ # setup do
5
+ # User.current = User.admin
6
+ # end
7
+
8
+ test "the truth" do
9
+ assert true
10
+ end
11
+
12
+ end
metadata ADDED
@@ -0,0 +1,327 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: foreman_pipeline
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Ondřej Pražák
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-10-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: foreman_deployments
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: 0.0.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 0.0.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: bastion
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - <
32
+ - !ruby/object:Gem::Version
33
+ version: 3.0.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - <
39
+ - !ruby/object:Gem::Version
40
+ version: 3.0.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: net-ssh
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - <=
46
+ - !ruby/object:Gem::Version
47
+ version: 2.9.2
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - <=
53
+ - !ruby/object:Gem::Version
54
+ version: 2.9.2
55
+ - !ruby/object:Gem::Dependency
56
+ name: net-scp
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: jenkins_api_client
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - <
74
+ - !ruby/object:Gem::Version
75
+ version: 2.0.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - <
81
+ - !ruby/object:Gem::Version
82
+ version: 2.0.0
83
+ description: Jenkins is able to deploy artifacts onto newly provisioned host by Foreman
84
+ email:
85
+ - oprazak@redhat.com
86
+ executables: []
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - LICENSE
91
+ - README.md
92
+ - Rakefile
93
+ - app/assets/javascripts/foreman_pipeline/foreman_pipeline-bootstrap.js
94
+ - app/assets/javascripts/foreman_pipeline/foreman_pipeline.js
95
+ - app/assets/javascripts/foreman_pipeline/jenkins-instances/details/jenkins-instance-details-info.controller.js
96
+ - app/assets/javascripts/foreman_pipeline/jenkins-instances/details/jenkins-instance-details-users.controller.js
97
+ - app/assets/javascripts/foreman_pipeline/jenkins-instances/details/jenkins-instance-details.controller.js
98
+ - app/assets/javascripts/foreman_pipeline/jenkins-instances/details/views/jenkins-instance-details-info.html
99
+ - app/assets/javascripts/foreman_pipeline/jenkins-instances/details/views/jenkins-instance-details-users.html
100
+ - app/assets/javascripts/foreman_pipeline/jenkins-instances/details/views/jenkins-instance-details.html
101
+ - app/assets/javascripts/foreman_pipeline/jenkins-instances/jenkins-instances.controller.js
102
+ - app/assets/javascripts/foreman_pipeline/jenkins-instances/jenkins-instances.factory.js
103
+ - app/assets/javascripts/foreman_pipeline/jenkins-instances/jenkins-instances.module.js
104
+ - app/assets/javascripts/foreman_pipeline/jenkins-instances/new/new-jenkins-instance.controller.js
105
+ - app/assets/javascripts/foreman_pipeline/jenkins-instances/new/views/new-jenkins-instance-form.html
106
+ - app/assets/javascripts/foreman_pipeline/jenkins-instances/new/views/new-jenkins-instance.html
107
+ - app/assets/javascripts/foreman_pipeline/jenkins-instances/views/jenkins-instances-table-collapsed.html
108
+ - app/assets/javascripts/foreman_pipeline/jenkins-instances/views/jenkins-instances-table-full.html
109
+ - app/assets/javascripts/foreman_pipeline/jenkins-instances/views/jenkins-instances.html
110
+ - app/assets/javascripts/foreman_pipeline/jenkins-project-params/jenkins-project-params.factory.js
111
+ - app/assets/javascripts/foreman_pipeline/jenkins-project-params/jenkins-project-params.module.js
112
+ - app/assets/javascripts/foreman_pipeline/jenkins-projects/jenkins-projects.factory.js
113
+ - app/assets/javascripts/foreman_pipeline/jenkins-projects/jenkins-projects.module.js
114
+ - app/assets/javascripts/foreman_pipeline/jenkins-requests/jenkins-requests.factory.js
115
+ - app/assets/javascripts/foreman_pipeline/jenkins-requests/jenkins-requests.module.js
116
+ - app/assets/javascripts/foreman_pipeline/jenkins-users/details/jenkins-user-info.controller.js
117
+ - app/assets/javascripts/foreman_pipeline/jenkins-users/details/views/jenkins-user-info.html
118
+ - app/assets/javascripts/foreman_pipeline/jenkins-users/jenkins-users.factory.js
119
+ - app/assets/javascripts/foreman_pipeline/jenkins-users/jenkins-users.module.js
120
+ - app/assets/javascripts/foreman_pipeline/jenkins-users/new/new-jenkins-user.controller.js
121
+ - app/assets/javascripts/foreman_pipeline/jenkins-users/new/views/new-jenkins-user.html
122
+ - app/assets/javascripts/foreman_pipeline/jobs/details/job-details-add-paths.controller.js
123
+ - app/assets/javascripts/foreman_pipeline/jobs/details/job-details-content-views.controller.js
124
+ - app/assets/javascripts/foreman_pipeline/jobs/details/job-details-environments.controller.js
125
+ - app/assets/javascripts/foreman_pipeline/jobs/details/job-details-hostgroups.controller.js
126
+ - app/assets/javascripts/foreman_pipeline/jobs/details/job-details-info.controller.js
127
+ - app/assets/javascripts/foreman_pipeline/jobs/details/job-details-jenkins-projects.controller.js
128
+ - app/assets/javascripts/foreman_pipeline/jobs/details/job-details-jenkins.controller.js
129
+ - app/assets/javascripts/foreman_pipeline/jobs/details/job-details-resources.controller.js
130
+ - app/assets/javascripts/foreman_pipeline/jobs/details/job-details-to-environments.controller.js
131
+ - app/assets/javascripts/foreman_pipeline/jobs/details/job-details.controller.js
132
+ - app/assets/javascripts/foreman_pipeline/jobs/details/project-discovery/job-projects-discovery.controller.js
133
+ - app/assets/javascripts/foreman_pipeline/jobs/details/project-discovery/job-projects-parameters.controller.js
134
+ - app/assets/javascripts/foreman_pipeline/jobs/details/project-discovery/views/job-jenkins-projects.html
135
+ - app/assets/javascripts/foreman_pipeline/jobs/details/project-discovery/views/job-projects-discovery.html
136
+ - app/assets/javascripts/foreman_pipeline/jobs/details/project-discovery/views/job-projects-parameters.html
137
+ - app/assets/javascripts/foreman_pipeline/jobs/details/views/job-details-content-views.html
138
+ - app/assets/javascripts/foreman_pipeline/jobs/details/views/job-details-environments.html
139
+ - app/assets/javascripts/foreman_pipeline/jobs/details/views/job-details-hostgroups.html
140
+ - app/assets/javascripts/foreman_pipeline/jobs/details/views/job-details-info.html
141
+ - app/assets/javascripts/foreman_pipeline/jobs/details/views/job-details-jenkins-projects.html
142
+ - app/assets/javascripts/foreman_pipeline/jobs/details/views/job-details-jenkins.html
143
+ - app/assets/javascripts/foreman_pipeline/jobs/details/views/job-details-paths-list.html
144
+ - app/assets/javascripts/foreman_pipeline/jobs/details/views/job-details-resources.html
145
+ - app/assets/javascripts/foreman_pipeline/jobs/details/views/job-details-to-environments.html
146
+ - app/assets/javascripts/foreman_pipeline/jobs/details/views/job-details.html
147
+ - app/assets/javascripts/foreman_pipeline/jobs/jobs.controller.js
148
+ - app/assets/javascripts/foreman_pipeline/jobs/jobs.factory.js
149
+ - app/assets/javascripts/foreman_pipeline/jobs/jobs.module.js
150
+ - app/assets/javascripts/foreman_pipeline/jobs/new/new-job.controller.js
151
+ - app/assets/javascripts/foreman_pipeline/jobs/new/views/new-job-form.html
152
+ - app/assets/javascripts/foreman_pipeline/jobs/new/views/new-job.html
153
+ - app/assets/javascripts/foreman_pipeline/jobs/views/jobs-table-collapsed.html
154
+ - app/assets/javascripts/foreman_pipeline/jobs/views/jobs-table-full.html
155
+ - app/assets/javascripts/foreman_pipeline/jobs/views/jobs.html
156
+ - app/assets/javascripts/foreman_pipeline/jobs/views/pln-path-selector.html
157
+ - app/assets/stylesheets/foreman_pipeline/foreman_pipeline.css
158
+ - app/controllers/foreman_pipeline/api/jenkins_instances_controller.rb
159
+ - app/controllers/foreman_pipeline/api/jenkins_project_params_controller.rb
160
+ - app/controllers/foreman_pipeline/api/jenkins_projects_controller.rb
161
+ - app/controllers/foreman_pipeline/api/jenkins_requests_controller.rb
162
+ - app/controllers/foreman_pipeline/api/jenkins_users_controller.rb
163
+ - app/controllers/foreman_pipeline/api/jobs_controller.rb
164
+ - app/controllers/foreman_pipeline/application_controller.rb
165
+ - app/helpers/foreman_pipeline/application_helper.rb
166
+ - app/lib/actions/foreman_pipeline/jenkins/abstract_jenkins_action.rb
167
+ - app/lib/actions/foreman_pipeline/jenkins/build.rb
168
+ - app/lib/actions/foreman_pipeline/jenkins/build_project.rb
169
+ - app/lib/actions/foreman_pipeline/jenkins/bulk_build.rb
170
+ - app/lib/actions/foreman_pipeline/jenkins/get_build_details.rb
171
+ - app/lib/actions/foreman_pipeline/jenkins/get_build_params.rb
172
+ - app/lib/actions/foreman_pipeline/jenkins/get_version.rb
173
+ - app/lib/actions/foreman_pipeline/jenkins/list.rb
174
+ - app/lib/actions/foreman_pipeline/jenkins/wait_and_poll.rb
175
+ - app/lib/actions/foreman_pipeline/jenkins/wait_for_build.rb
176
+ - app/lib/actions/foreman_pipeline/jenkins/wait_host_ready.rb
177
+ - app/lib/actions/foreman_pipeline/jenkins_instance/abstract_jenkins_instance_action.rb
178
+ - app/lib/actions/foreman_pipeline/jenkins_instance/create_jenkins_instance_keys.rb
179
+ - app/lib/actions/foreman_pipeline/job/create_activation_key.rb
180
+ - app/lib/actions/foreman_pipeline/job/create_host.rb
181
+ - app/lib/actions/foreman_pipeline/job/cv_promote_job_hook.rb
182
+ - app/lib/actions/foreman_pipeline/job/cv_publish_job_hook.rb
183
+ - app/lib/actions/foreman_pipeline/job/deploy_new_host.rb
184
+ - app/lib/actions/foreman_pipeline/job/find_packages_to_install.rb
185
+ - app/lib/actions/foreman_pipeline/job/job_hook.rb
186
+ - app/lib/actions/foreman_pipeline/job/multiple_promotions.rb
187
+ - app/lib/actions/foreman_pipeline/job/promote.rb
188
+ - app/lib/actions/foreman_pipeline/job/redeploy.rb
189
+ - app/lib/actions/foreman_pipeline/job/repo_sync_job_hook.rb
190
+ - app/lib/actions/foreman_pipeline/job/run_job_manually.rb
191
+ - app/lib/actions/foreman_pipeline/job/suspend_until_provisioned.rb
192
+ - app/lib/actions/foreman_pipeline/mixins/ssh_extension.rb
193
+ - app/lib/actions/foreman_pipeline/mixins/uri_extension.rb
194
+ - app/lib/foreman_pipeline/api/rendering.rb
195
+ - app/models/foreman_pipeline/authorization/base_model.rb
196
+ - app/models/foreman_pipeline/authorization/jenkins_instance.rb
197
+ - app/models/foreman_pipeline/authorization/jenkins_project.rb
198
+ - app/models/foreman_pipeline/authorization/jenkins_project_param.rb
199
+ - app/models/foreman_pipeline/authorization/jenkins_user.rb
200
+ - app/models/foreman_pipeline/authorization/job.rb
201
+ - app/models/foreman_pipeline/concerns/compute_resource_extension.rb
202
+ - app/models/foreman_pipeline/concerns/content_view_extension.rb
203
+ - app/models/foreman_pipeline/concerns/content_view_repository_extension.rb
204
+ - app/models/foreman_pipeline/concerns/hostgroup_extension.rb
205
+ - app/models/foreman_pipeline/concerns/kt_environment_extension.rb
206
+ - app/models/foreman_pipeline/concerns/repository_extension.rb
207
+ - app/models/foreman_pipeline/glue/elastic_search/base_model.rb
208
+ - app/models/foreman_pipeline/glue/elastic_search/jenkins_instance.rb
209
+ - app/models/foreman_pipeline/glue/elastic_search/jenkins_project.rb
210
+ - app/models/foreman_pipeline/glue/elastic_search/jenkins_user.rb
211
+ - app/models/foreman_pipeline/glue/elastic_search/job.rb
212
+ - app/models/foreman_pipeline/jenkins_instance.rb
213
+ - app/models/foreman_pipeline/jenkins_project.rb
214
+ - app/models/foreman_pipeline/jenkins_project_param.rb
215
+ - app/models/foreman_pipeline/jenkins_user.rb
216
+ - app/models/foreman_pipeline/job.rb
217
+ - app/models/foreman_pipeline/job_jenkins_project.rb
218
+ - app/models/foreman_pipeline/job_to_environment.rb
219
+ - app/views/foreman/unattended/snippets/_jenkins_instance_pubkey.erb
220
+ - app/views/foreman_pipeline/api/common/async.json.rabl
221
+ - app/views/foreman_pipeline/api/common/index.json.rabl
222
+ - app/views/foreman_pipeline/api/compute_resources/index.json.rabl
223
+ - app/views/foreman_pipeline/api/compute_resources/show.json.rabl
224
+ - app/views/foreman_pipeline/api/content_views/index.json.rabl
225
+ - app/views/foreman_pipeline/api/content_views/show.json.rabl
226
+ - app/views/foreman_pipeline/api/environments/show.json.rabl
227
+ - app/views/foreman_pipeline/api/hostgroups/index.json.rabl
228
+ - app/views/foreman_pipeline/api/hostgroups/show.json.rabl
229
+ - app/views/foreman_pipeline/api/jenkins_instances/index.json.rabl
230
+ - app/views/foreman_pipeline/api/jenkins_instances/show.json.rabl
231
+ - app/views/foreman_pipeline/api/jenkins_project_params/index.json.rabl
232
+ - app/views/foreman_pipeline/api/jenkins_project_params/show.json.rabl
233
+ - app/views/foreman_pipeline/api/jenkins_projects/index.json.rabl
234
+ - app/views/foreman_pipeline/api/jenkins_projects/show.json.rabl
235
+ - app/views/foreman_pipeline/api/jenkins_users/index.json.rabl
236
+ - app/views/foreman_pipeline/api/jenkins_users/show.json.rabl
237
+ - app/views/foreman_pipeline/api/jobs/available_paths.json.rabl
238
+ - app/views/foreman_pipeline/api/jobs/index.json.rabl
239
+ - app/views/foreman_pipeline/api/jobs/show.json.rabl
240
+ - config/mount_engine.rb
241
+ - config/routes.rb
242
+ - db/migrate/20141003121914_create_job_table.rb
243
+ - db/migrate/20141003145152_add_organization_to_jobs_table.rb
244
+ - db/migrate/20141014125836_make_content_view_and_hostgroup_optional_for_job.rb
245
+ - db/migrate/20141029121444_create_test_table.rb
246
+ - db/migrate/20141029125423_add_organization_to_test_table.rb
247
+ - db/migrate/20141030154210_create_jobs_tests_table.rb
248
+ - db/migrate/20141120130350_add_resource_to_job.rb
249
+ - db/migrate/20150121134503_create_jenkins_instances_table.rb
250
+ - db/migrate/20150121134748_add_jenkins_instances_to_job_table.rb
251
+ - db/migrate/20150122155819_add_kt_environment_to_jobs_table.rb
252
+ - db/migrate/20150127101153_add_trigger_options_to_jobs_table.rb
253
+ - db/migrate/20150202180711_add_content_column_to_tests_table.rb
254
+ - db/migrate/20150209145400_add_pubkey_to_jenkins_instance_table.rb
255
+ - db/migrate/20150209160604_add_jenkins_home_to_jenkins_instance_table.rb
256
+ - db/migrate/20150212115234_add_uniqueness_to_jenkins_instance_url.rb
257
+ - db/migrate/20150212125901_add_uniqueness_to_test_name.rb
258
+ - db/migrate/20150213095447_add_cert_path_to_jenkins_instances.rb
259
+ - db/migrate/20150216170951_add_build_step_to_tests_table.rb
260
+ - db/migrate/20150223142315_change_jenkins_instance_cert_path_column.rb
261
+ - db/migrate/20150224090100_create_jenkins_projects_table.rb
262
+ - db/migrate/20150226182211_add_org_to_jenkins_project.rb
263
+ - db/migrate/20150301134121_create_jenkins_project_params_table.rb
264
+ - db/migrate/20150303134951_change_jenkins_project_param_value_column.rb
265
+ - db/migrate/20150304123529_change_jenkins_project_params_table.rb
266
+ - db/migrate/20150305122212_drop_tests_table.rb
267
+ - db/migrate/20150312153833_create_jenkins_users.rb
268
+ - db/migrate/20150313093244_add_jenkins_user_to_jobs.rb
269
+ - db/migrate/20150313115956_change_jenkins_user_owner.rb
270
+ - db/migrate/20150318141859_rename_tables.rb
271
+ - db/migrate/20150323153355_remove_owner_from_jenkins_user.rb
272
+ - db/migrate/20150323165954_add_jenkins_user_to_instance.rb
273
+ - db/migrate/20150323175436_remove_jenkins_user_from_job.rb
274
+ - db/migrate/20150324082437_remove_jenkins_instance_from_user.rb
275
+ - db/migrate/20150324093416_add_promote_to_jobs.rb
276
+ - db/migrate/20150324124034_create_job_path.rb
277
+ - db/migrate/20150408143011_remove_cv_promote_from_job.rb
278
+ - db/migrate/20150408145022_rename_job_path.rb
279
+ - db/migrate/20150923073033_drop_orphaned_table.rb
280
+ - lib/foreman_pipeline.rb
281
+ - lib/foreman_pipeline/engine.rb
282
+ - lib/foreman_pipeline/permissions.rb
283
+ - lib/foreman_pipeline/permissions/jenkins_instance_permissions.rb
284
+ - lib/foreman_pipeline/permissions/jenkins_project_params_permissions.rb
285
+ - lib/foreman_pipeline/permissions/jenkins_projects_permissions.rb
286
+ - lib/foreman_pipeline/permissions/jenkins_request_permissions.rb
287
+ - lib/foreman_pipeline/permissions/jenkins_user_permissions.rb
288
+ - lib/foreman_pipeline/permissions/job_permissions.rb
289
+ - lib/foreman_pipeline/plugin.rb
290
+ - lib/foreman_pipeline/roles.rb
291
+ - lib/foreman_pipeline/tasks/foreman_pipeline_seed.rake
292
+ - lib/foreman_pipeline/tasks/foreman_pipeline_test.rake
293
+ - lib/foreman_pipeline/version.rb
294
+ - test/factories/hostgroup_factory.rb
295
+ - test/factories/jenkins_instance_related_factory.rb
296
+ - test/foreman_pipeline_plugin_test_helper.rb
297
+ - test/unit/job_test.rb
298
+ - test/unit/sanity_test.rb
299
+ homepage: https://github.com/xprazak2/foreman-pipeline
300
+ licenses: []
301
+ metadata: {}
302
+ post_install_message:
303
+ rdoc_options: []
304
+ require_paths:
305
+ - lib
306
+ required_ruby_version: !ruby/object:Gem::Requirement
307
+ requirements:
308
+ - - ! '>='
309
+ - !ruby/object:Gem::Version
310
+ version: '0'
311
+ required_rubygems_version: !ruby/object:Gem::Requirement
312
+ requirements:
313
+ - - ! '>='
314
+ - !ruby/object:Gem::Version
315
+ version: '0'
316
+ requirements: []
317
+ rubyforge_project:
318
+ rubygems_version: 2.4.5
319
+ signing_key:
320
+ specification_version: 4
321
+ summary: Makes Foreman talk to Jenkins CI server.
322
+ test_files:
323
+ - test/factories/hostgroup_factory.rb
324
+ - test/factories/jenkins_instance_related_factory.rb
325
+ - test/foreman_pipeline_plugin_test_helper.rb
326
+ - test/unit/sanity_test.rb
327
+ - test/unit/job_test.rb