foreman_remote_execution 13.2.1 → 13.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 473900c99e054678a879651060b7596221f32c7f2713d28efb472957b7ac73ed
4
- data.tar.gz: 14e55ba559f96def212e56aad5087b3e171fceb0cae2209b2ba1ef0566bda620
3
+ metadata.gz: 96681556d3f5a6992e71260803846de43b28006b4c6632dc8def7772ae8c42b5
4
+ data.tar.gz: 13fffbea7ed8fa8a9556db7ce1c251ab4a879de339f85a5fb4e0f83977a12bfc
5
5
  SHA512:
6
- metadata.gz: 715de4ec99b4f17450ec02cca4db12e7778001098f49c1a733fae18c84d72855dd59e8dc86c1a6edddd72856a26c345c1397b2e2c1a66f14b0e605497f59e747
7
- data.tar.gz: 7dd731683f6f68d5c9f32c14b9411cbde8a65e0de38de249f691cd70447b2ff936bac8f7413b4edad8bb776ae0612ccbcb487650a20a16c35e37fc2ded3b4af2
6
+ metadata.gz: e2f596ae2c2dd3ed2483ee32f78104b26fe39e6e4faa60ba50dfefac947346bd639bad3714a5c89e9df47f0a81389ca59c7c05c7915432985bf1ab03ec53e71a
7
+ data.tar.gz: c81d5218ffceb943120ed6c141bad17d7ed87e8feaff517b984fde44684ffffe72598f2adc7f350e187139f8e68c521d8c296a53ec9a88baf2f2987176b2d857
data/.gitignore CHANGED
@@ -15,3 +15,4 @@ Gemfile.lock
15
15
  node_modules/
16
16
  package-lock.json
17
17
  coverage/
18
+ public/
@@ -49,7 +49,8 @@ module Actions
49
49
  provider_type = provider.proxy_feature
50
50
  proxy = determine_proxy!(proxy_selector, provider_type, host)
51
51
  link!(proxy)
52
- input[:proxy_id] = proxy.id
52
+ template_invocation.smart_proxy_id = proxy.id
53
+ template_invocation.save!
53
54
 
54
55
  renderer = InputTemplateRenderer.new(template_invocation.template, host, template_invocation)
55
56
  script = renderer.render
@@ -75,6 +75,7 @@ module Actions
75
75
  end
76
76
 
77
77
  def on_planning_finished
78
+ trigger_remote_batch
78
79
  plan_event(Actions::TriggerProxyBatch::TriggerLastBatch, nil, step_id: input[:trigger_run_step_id])
79
80
  super
80
81
  end
@@ -3,6 +3,7 @@ module ForemanRemoteExecution
3
3
  def self.prepended(base)
4
4
  base.instance_eval do
5
5
  has_many :host_proxy_invocations, :dependent => :destroy
6
+ has_many :template_invocations, :dependent => :nullify
6
7
  end
7
8
  end
8
9
 
@@ -18,6 +18,7 @@ class TemplateInvocation < ApplicationRecord
18
18
  belongs_to :run_host_job_task, :class_name => 'ForemanTasks::Task'
19
19
  has_many :remote_execution_features, :through => :template
20
20
  has_many :template_invocation_events, :dependent => :destroy
21
+ belongs_to :smart_proxy, :class_name => '::SmartProxy', :inverse_of => :template_invocations
21
22
 
22
23
  validates_associated :input_values
23
24
  validate :provides_required_input_values
@@ -28,10 +28,10 @@ end
28
28
  </div>
29
29
  </div>
30
30
  <% if @host %>
31
- <% proxy_id = @template_invocation_task.input[:proxy_id] %>
31
+ <% proxy = @template_invocation.smart_proxy %>
32
32
  <h3>
33
33
  <%= _('Target: ') %><%= link_to(@host, current_host_details_path(@host)) %>
34
- <% if proxy_id && proxy = SmartProxy.find_by(id: proxy_id) %>
34
+ <% if proxy %>
35
35
  <%= _('using Smart Proxy') %> <%= link_to(proxy.name, smart_proxy_path(proxy)) %>
36
36
  <% end %>
37
37
  </h3>
@@ -0,0 +1,7 @@
1
+ class AddSmartProxyIdToTemplateInvocation < ActiveRecord::Migration[6.0]
2
+ def change
3
+ change_table :template_invocations do |t|
4
+ t.references :smart_proxy, foreign_key: true
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,16 @@
1
+ class MigrateSmartProxyIdsToTemplateInvocations < ActiveRecord::Migration[6.0]
2
+ def up
3
+ ForemanTasks::Link.joins(:task)
4
+ .where(resource_type: 'SmartProxy', task: { label: 'Actions::RemoteExecution::RunHostJob' })
5
+ .where.not(resource_id: nil)
6
+ .find_in_batches do |batch|
7
+ batch.group_by(&:resource_id).each do |resource_id, links|
8
+ template_invocation_ids = ForemanTasks::Link.where(resource_type: 'TemplateInvocation', task_id: links.map(&:task_id)).select(:resource_id)
9
+ TemplateInvocation.where(id: template_invocation_ids).update_all(smart_proxy_id: resource_id)
10
+ end
11
+ end
12
+ end
13
+
14
+ def down
15
+ end
16
+ end
@@ -1,3 +1,3 @@
1
1
  module ForemanRemoteExecution
2
- VERSION = '13.2.1'.freeze
2
+ VERSION = '13.2.2'.freeze
3
3
  end
@@ -61,14 +61,20 @@ describe('Hosts', () => {
61
61
  await act(async () => {
62
62
  fireEvent.click(screen.getByText('Host groups'));
63
63
  });
64
- fireEvent.click(select('host groups'));
64
+ await act(async () => {
65
+ fireEvent.click(select('host groups'));
66
+ });
65
67
  await act(async () => {
66
68
  fireEvent.click(screen.getByText('host_group1'));
67
69
  });
68
70
 
69
- fireEvent.click(
70
- screen.getByText('Host groups', { selector: '.pf-c-select__toggle-text' })
71
- );
71
+ await act(async () => {
72
+ fireEvent.click(
73
+ screen.getByText('Host groups', {
74
+ selector: '.pf-c-select__toggle-text',
75
+ })
76
+ );
77
+ });
72
78
  await act(async () => {
73
79
  fireEvent.click(screen.getByText('Host collections'));
74
80
  });
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_remote_execution
3
3
  version: !ruby/object:Gem::Version
4
- version: 13.2.1
4
+ version: 13.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Foreman Remote Execution team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-20 00:00:00.000000000 Z
11
+ date: 2024-07-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: deface
@@ -350,6 +350,8 @@ files:
350
350
  - db/migrate/20220822155946_add_time_to_pickup_to_job_invocation.rb
351
351
  - db/migrate/20221129170145_redefine_template_invocation_events_index.rb
352
352
  - db/migrate/20230816154510_drop_time_span_from_job_invocations.rb
353
+ - db/migrate/20240522093412_add_smart_proxy_id_to_template_invocation.rb
354
+ - db/migrate/20240522093413_migrate_smart_proxy_ids_to_template_invocations.rb
353
355
  - db/seeds.d/100-assign_features_with_templates.rb
354
356
  - db/seeds.d/20-permissions.rb
355
357
  - db/seeds.d/50-notification_blueprints.rb