Class: ForemanAnsibleDirector::ExecutionEnvironmentService
- Inherits:
-
Object
- Object
- ForemanAnsibleDirector::ExecutionEnvironmentService
- Defined in:
- app/services/foreman_ansible_director/execution_environment_service.rb
Class Method Summary collapse
- .build_execution_environment(execution_environment) ⇒ Object
- .create_execution_environment(name:, base_image_url:, ansible_version:, organization_id:) ⇒ Object
- .destroy_execution_environment(execution_environment) ⇒ Object
- .edit_execution_environment(execution_environment:, name:, base_image_url:, ansible_version:) ⇒ Object
Class Method Details
.build_execution_environment(execution_environment) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'app/services/foreman_ansible_director/execution_environment_service.rb', line 51 def build_execution_environment(execution_environment) env_definition = { id: execution_environment.id, content: { base_image: execution_environment.base_image_url, ansible_core_version: execution_environment.ansible_version, content_units: execution_environment.content_unit_versions.map do |cuv| { type: cuv.versionable.type == 'ForemanAnsibleDirector::AnsibleCollection' ? 'collection' : 'role', identifier: cuv.versionable.full_name, version: cuv.version, source: "https://#{SETTINGS[:fqdn]}/pulp_ansible/galaxy/#{Organization.current.id}/#{cuv.versionable.full_name}", } end, }, } execution_environment.update!(build_status: 'running') ::ForemanAnsibleDirector::ActionService.trigger( ::ForemanAnsibleDirector::Actions::Proxy::BuildExecutionEnvironment, task_args: { proxy_task_id: SecureRandom.uuid, execution_environment_definition: env_definition, execution_environment_id: execution_environment.id, }, mode: :async ) end |
.create_execution_environment(name:, base_image_url:, ansible_version:, organization_id:) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'app/services/foreman_ansible_director/execution_environment_service.rb', line 6 def create_execution_environment(name:, base_image_url:, ansible_version:, organization_id:) # ActiveRecord::Base.transaction do env = ::ForemanAnsibleDirector::ExecutionEnvironment.create!( name: name, base_image_url: base_image_url, ansible_version: ansible_version, organization_id: organization_id, build_status: 'pending' ) task = build_execution_environment env env.update!(content_hash: env.generate_content_hash, build_job: task.id) env # end end |
.destroy_execution_environment(execution_environment) ⇒ Object
45 46 47 48 49 |
# File 'app/services/foreman_ansible_director/execution_environment_service.rb', line 45 def destroy_execution_environment(execution_environment) ActiveRecord::Base.transaction do execution_environment.destroy! end end |
.edit_execution_environment(execution_environment:, name:, base_image_url:, ansible_version:) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'app/services/foreman_ansible_director/execution_environment_service.rb', line 25 def edit_execution_environment(execution_environment:, name:, base_image_url:, ansible_version:) # TODO: Disabling this transaction as it locks up the task for an unknown reason # ActiveRecord::Base.transaction do execution_environment.update!( name: name, base_image_url: base_image_url, ansible_version: ansible_version ) new_hash = execution_environment.generate_content_hash if new_hash != execution_environment.content_hash task = build_execution_environment execution_environment execution_environment.update!(content_hash: new_hash, build_job: task.id) end execution_environment # end end |