foreman_remote_execution 1.6.5 → 1.6.6

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
- SHA1:
3
- metadata.gz: 709d81a29ef205492bc65e2605c5f83a0223ba37
4
- data.tar.gz: 73ff87cece4feeec31c6e5e7274c0b2300d7c636
2
+ SHA256:
3
+ metadata.gz: 50fc3a3d806569cd6ef1430201210365ab43135ff49037437b5ff7d5ae26e95c
4
+ data.tar.gz: 49444e24cc7ce4d174942869a87815c7f58ac1d824493df7cba3c5f592c0dc89
5
5
  SHA512:
6
- metadata.gz: 7d3649186aad83e9e165bd5453631610ba99f0b9fffcb324ccd195bcf1a8ffec96aaddd03a08fef6ae37059f13b22701be37e85c3d7745f3b8a8d8344658def4
7
- data.tar.gz: 78cb04ccfc0e5e3d4638901e264654b87210f3b23b42c1bb170d3bc70e16666d2b8e70bcd920d0839fb1823575f8c73784bca8324fa3f633a3f3a8bbe43a52d0
6
+ metadata.gz: 221de0ed7b0c41a9451b8fc5fa5d1cc2cea6ef25b969e9b28e166ac31c971da5fdbfe624cca3006832f7618cc6e63aff674264d5d6346e83847f7fdb46aa6969
7
+ data.tar.gz: 2aa565d2f95cb0704cbc73d49aa7806489fb497a5a73c3738cc23240b8fc582667b8427f892da6a8523baaf69970fba4d343b1751e29e125a84cbba262551ef6
data/.rubocop.yml CHANGED
@@ -108,3 +108,6 @@ Metrics/AbcSize:
108
108
 
109
109
  Style/FrozenStringLiteralComment:
110
110
  Enabled: false
111
+
112
+ Layout/EmptyLineAfterGuardClause:
113
+ Enabled: false
@@ -51,17 +51,17 @@ class JobInvocationsController < ApplicationController
51
51
  def show
52
52
  @job_invocation = resource_base.includes(:template_invocations => :run_host_job_task).find(params[:id])
53
53
  @auto_refresh = @job_invocation.task.try(:pending?)
54
- hosts_base = @job_invocation.targeting.hosts.authorized(:view_hosts, Host)
54
+ @resource_base = @job_invocation.targeting.hosts.authorized(:view_hosts, Host)
55
55
  # There's no need to do the joining if we're not filtering
56
56
  unless params[:search].nil?
57
- hosts_base = hosts_base.joins(:template_invocations)
58
- .where(:template_invocations => { :job_invocation_id => @job_invocation.id})
57
+ @resource_base = @resource_base.joins(:template_invocations)
58
+ .where(:template_invocations => { :job_invocation_id => @job_invocation.id})
59
59
  end
60
- @hosts = hosts_base.search_for(params[:search], :order => params[:order] || 'name ASC').paginate(:page => params[:page])
60
+ @hosts = resource_base_search_and_page
61
61
  end
62
62
 
63
63
  def index
64
- @job_invocations = resource_base.search_for(params[:search], :order => params[:order]).paginate(:page => params[:page]).with_task.order('job_invocations.id DESC')
64
+ @job_invocations = resource_base_search_and_page.with_task.order('job_invocations.id DESC')
65
65
  end
66
66
 
67
67
  # refreshes the form
@@ -169,6 +169,25 @@ module RemoteExecutionHelper
169
169
  end
170
170
  end
171
171
 
172
+ # we assume that a line_set will always end with a line break. Sometimes however, the lines can
173
+ # be cut in the middle. This methods makes sure the cut line ends up in on line set
174
+ def normalize_line_sets(line_sets)
175
+ previous_line_break = true
176
+ line_sets.each_with_index do |line_set, index|
177
+ # if previous line_set was missing break, add the first line from next set
178
+ unless previous_line_break
179
+ first_line_pattern = /\A.*\n/
180
+ first_line = line_set['output'][first_line_pattern]
181
+ if first_line
182
+ line_sets[index - 1]['output'] << first_line
183
+ line_set['output'].sub!(first_line_pattern, '')
184
+ end
185
+ end
186
+ previous_line_break = line_set['output'] =~ /\n\Z/
187
+ end
188
+ line_sets
189
+ end
190
+
172
191
  def time_in_words_span(time)
173
192
  if time.nil?
174
193
  _('N/A')
@@ -6,6 +6,7 @@
6
6
  <thead>
7
7
  <tr>
8
8
  <th><%= sort :description, :as => _('Description') %></th>
9
+ <th class="col-md-1"><%= _('Search Query') %></th>
9
10
  <th class="col-md-1"><%= _('Status') %></th>
10
11
  <th class="col-md-1"><%= _('Succeeded') %></th>
11
12
  <th class="col-md-1"><%= _('Failed') %></th>
@@ -19,6 +20,7 @@
19
20
  <% @job_invocations.each do |invocation| %>
20
21
  <tr>
21
22
  <td><%= link_to_if_authorized invocation_description(invocation), hash_for_job_invocation_path(invocation).merge(:auth_object => invocation, :permission => :view_job_invocations, :authorizer => authorizer) %></td>
23
+ <td><%= trunc_with_tooltip(invocation&.targeting&.search_query, 15) %></td>
22
24
  <td><%= link_to_invocation_task_if_authorized(invocation) %></td>
23
25
  <td><%= invocation_result(invocation, :success_count) %></td>
24
26
  <td><%= invocation_result(invocation, :failed_count) %></td>
@@ -1,4 +1,4 @@
1
- <% output_line_set['output'].gsub("\r\n", "\n").split("\n", -1).each do |line| %>
1
+ <% output_line_set['output'].gsub("\r\n", "\n").sub(/\n\Z/, '').split("\n", -1).each do |line| %>
2
2
  <%= content_tag :div, :class => 'line ' + output_line_set['output_type'], :data => { :timestamp => output_line_set['timestamp'] } do %>
3
3
 
4
4
  <%= content_tag(:span, (@line_counter += 1).to_s.rjust(4).gsub(' ', '&nbsp;').html_safe + ':', :class => 'counter', :title => (output_line_set['timestamp'] && Time.at(output_line_set['timestamp']))) %>
@@ -36,7 +36,7 @@
36
36
  <%= link_to_function(_('Scroll to bottom'), '$("html, body").animate({ scrollTop: $(document).height() }, "slow");', :class => 'pull-right scroll-link-bottom') %>
37
37
 
38
38
  <div class="printable">
39
- <%= render :partial => 'output_line_set', :collection => @line_sets %>
39
+ <%= render :partial => 'output_line_set', :collection => normalize_line_sets(@line_sets) %>
40
40
  </div>
41
41
 
42
42
  <%= link_to_function(_('Scroll to top'), '$("html, body").animate({ scrollTop: 0 }, "slow");', :class => 'pull-right scroll-link-top') %>
@@ -1,6 +1,8 @@
1
1
  class AddJobTemplateToTemplate < ActiveRecord::Migration[4.2]
2
2
  def change
3
- add_column :templates, :job_name, :string, :limit => 255
4
- add_column :templates, :provider_type, :string, :limit => 255
3
+ change_table :templates, :bulk => true do |t|
4
+ t.column :job_name, :string, :limit => 255
5
+ t.column :provider_type, :string, :limit => 255
6
+ end
5
7
  end
6
8
  end
@@ -1,6 +1,8 @@
1
1
  class AddConcurrencyOptionsToJobInvocation < ActiveRecord::Migration[4.2]
2
2
  def change
3
- add_column :job_invocations, :concurrency_level, :integer, :null => true
4
- add_column :job_invocations, :time_span, :integer, :null => true
3
+ change_table :job_invocations, :bulk => true do |t|
4
+ t.column :concurrency_level, :integer, :null => true
5
+ t.column :time_span, :integer, :null => true
6
+ end
5
7
  end
6
8
  end
@@ -1,6 +1,8 @@
1
1
  class AddSecretsToJobInvocations < ActiveRecord::Migration[4.2]
2
2
  def change
3
- add_column :job_invocations, :password, :string
4
- add_column :job_invocations, :key_passphrase, :string
3
+ change_table :job_invocations, :bulk => true do |t|
4
+ t.column :password, :string
5
+ t.column :key_passphrase, :string
6
+ end
5
7
  end
6
8
  end
@@ -1,3 +1,3 @@
1
1
  module ForemanRemoteExecution
2
- VERSION = '1.6.5'.freeze
2
+ VERSION = '1.6.6'.freeze
3
3
  end
@@ -13,7 +13,7 @@ module Api
13
13
  test 'should get index' do
14
14
  get :index, params: { :template_id => @template.id }
15
15
  input_sets = ActiveSupport::JSON.decode(@response.body)
16
- assert !input_sets.empty?, 'Should respond with input sets'
16
+ assert_not input_sets.empty?, 'Should respond with input sets'
17
17
  assert_response :success
18
18
  end
19
19
 
@@ -21,7 +21,7 @@ module Api
21
21
  get :show, params: { :template_id => @template.to_param, :id => @input_set.to_param }
22
22
  assert_response :success
23
23
  input_set = ActiveSupport::JSON.decode(@response.body)
24
- assert !input_set.empty?
24
+ assert_not input_set.empty?
25
25
  assert_equal input_set['target_template_name'], @foreign_template.name
26
26
  end
27
27
 
@@ -51,7 +51,7 @@ module Api
51
51
  test 'should destroy' do
52
52
  delete :destroy, params: { :template_id => @template.to_param, :id => @input_set.to_param }
53
53
  assert_response :ok
54
- refute ForeignInputSet.exists?(@input_set.id)
54
+ assert_not ForeignInputSet.exists?(@input_set.id)
55
55
  end
56
56
  end
57
57
  end
@@ -16,7 +16,7 @@ module Api
16
16
  test 'should get index' do
17
17
  get :index
18
18
  invocations = ActiveSupport::JSON.decode(@response.body)
19
- refute_empty invocations, 'Should response with invocation'
19
+ assert_not_empty invocations, 'Should response with invocation'
20
20
  assert_response :success
21
21
  end
22
22
 
@@ -24,7 +24,7 @@ module Api
24
24
  get :show, params: { :id => @invocation.id }
25
25
  assert_response :success
26
26
  template = ActiveSupport::JSON.decode(@response.body)
27
- refute_empty template
27
+ assert_not_empty template
28
28
  assert_equal template['job_category'], @invocation.job_category
29
29
  end
30
30
 
@@ -10,7 +10,7 @@ module Api
10
10
  test 'should get index' do
11
11
  get :index
12
12
  templates = ActiveSupport::JSON.decode(@response.body)
13
- assert !templates.empty?, 'Should response with template'
13
+ assert_not templates.empty?, 'Should response with template'
14
14
  assert_response :success
15
15
  end
16
16
 
@@ -20,7 +20,7 @@ module Api
20
20
  @template.save!
21
21
  get :index, params: { :organization_id => @organization.id }
22
22
  templates = ActiveSupport::JSON.decode(@response.body)
23
- assert !templates.empty?, 'Should respond with template'
23
+ assert_not templates.empty?, 'Should respond with template'
24
24
  assert_response :success
25
25
  end
26
26
 
@@ -28,10 +28,10 @@ module Api
28
28
  get :show, params: { :id => @template.to_param }
29
29
  assert_response :success
30
30
  template = ActiveSupport::JSON.decode(@response.body)
31
- assert !template.empty?
31
+ assert_not template.empty?
32
32
  assert_equal template['name'], @template.name
33
- refute_nil template['created_at']
34
- refute_nil template['updated_at']
33
+ assert_not_nil template['created_at']
34
+ assert_not_nil template['updated_at']
35
35
  end
36
36
 
37
37
  test 'should create valid' do
@@ -74,7 +74,7 @@ module Api
74
74
  test 'should destroy' do
75
75
  delete :destroy, params: { :id => @template.to_param }
76
76
  assert_response :ok
77
- refute JobTemplate.exists?(@template.id)
77
+ assert_not JobTemplate.exists?(@template.id)
78
78
  end
79
79
 
80
80
  test 'should clone template' do
@@ -13,7 +13,7 @@ module Api
13
13
  test 'should get index' do
14
14
  get :index
15
15
  remote_execution_features = ActiveSupport::JSON.decode(@response.body)
16
- refute remote_execution_features.empty?, 'Should respond with input sets'
16
+ assert_not remote_execution_features.empty?, 'Should respond with input sets'
17
17
  assert_response :success
18
18
  end
19
19
 
@@ -21,7 +21,7 @@ module Api
21
21
  get :show, params: { :id => @remote_execution_feature.to_param }
22
22
  assert_response :success
23
23
  remote_execution_feature = ActiveSupport::JSON.decode(@response.body)
24
- refute remote_execution_feature.empty?
24
+ assert_not remote_execution_feature.empty?
25
25
  assert_equal remote_execution_feature['name'], @remote_execution_feature.name
26
26
  end
27
27
 
@@ -0,0 +1,26 @@
1
+ require 'test_plugin_helper'
2
+
3
+ class RemoteExecutionHelperTest < ActionView::TestCase
4
+ describe '#normalize_line_sets' do
5
+ let :line_sets do
6
+ [{"output_type"=>"stdout", "output"=>"one", "timestamp"=>1},
7
+ {"output_type"=>"stdout", "output"=>"\r\ntwo\r\n", "timestamp"=>2},
8
+ {"output_type"=>"stdout", "output"=>"\r\nthr", "timestamp"=>3},
9
+ {"output_type"=>"stdout", "output"=>"ee\r\nfour\r\n", "timestamp"=>4},
10
+ {"output_type"=>"stdout", "output"=>"\r\n\r\n", "timestamp"=>5},
11
+ {"output_type"=>"stdout", "output"=>"five\r\n", "timestamp"=>6},
12
+ {"output_type"=>"stdout", "output"=>"Exit status: 0", "timestamp"=>7}]
13
+ end
14
+
15
+ it 'ensures the line sets end with new line' do
16
+ new_line_sets = normalize_line_sets(line_sets)
17
+ new_line_sets.map { |s| s['output'] }.must_equal(["one\r\n",
18
+ "two\r\n",
19
+ "\r\nthree\r\n",
20
+ "four\r\n",
21
+ "\r\n\r\n",
22
+ "five\r\n",
23
+ "Exit status: 0"])
24
+ end
25
+ end
26
+ end
@@ -54,7 +54,7 @@ module ForemanRemoteExecution
54
54
 
55
55
  it 'creates a new status' do
56
56
  subject.finalize
57
- refute_nil host.execution_status_object
57
+ assert_not_nil host.execution_status_object
58
58
  end
59
59
  end
60
60
  end
@@ -50,15 +50,15 @@ module ForemanRemoteExecution
50
50
  context 'targeting resolving' do
51
51
  it 'resolves dynamic targeting in plan' do
52
52
  targeting.targeting_type = 'dynamic_query'
53
- refute targeting.resolved?
53
+ assert_not targeting.resolved?
54
54
  delayed
55
- refute targeting.resolved?
55
+ assert_not targeting.resolved?
56
56
  planned
57
57
  targeting.hosts.must_include(host)
58
58
  end
59
59
 
60
60
  it 'resolves the hosts on static targeting in delay' do
61
- refute targeting.resolved?
61
+ assert_not targeting.resolved?
62
62
  delayed
63
63
  targeting.hosts.must_include(host)
64
64
  # Verify Targeting#resolve_hosts! won't be hit again
@@ -73,7 +73,7 @@ class InputTemplateRendererTest < ActiveSupport::TestCase
73
73
  end
74
74
 
75
75
  it 'cannot render the content' do
76
- refute result
76
+ assert_not result
77
77
  renderer.error_message.wont_be_nil
78
78
  renderer.error_message.wont_be_empty
79
79
  end
@@ -125,7 +125,7 @@ class InputTemplateRendererTest < ActiveSupport::TestCase
125
125
  it 'handles circular references in templates' do
126
126
  renderer.invocation = FactoryBot.build(:template_invocation, :template => template_without_inputs)
127
127
  renderer.template = template_without_inputs
128
- refute renderer.render
128
+ assert_not renderer.render
129
129
  renderer.error_message.must_include 'Recursive rendering of templates detected'
130
130
  end
131
131
 
@@ -335,7 +335,7 @@ class InputTemplateRendererTest < ActiveSupport::TestCase
335
335
 
336
336
  describe 'rendering' do
337
337
  it 'can\'t render the content without host since we don\'t have facts' do
338
- refute result
338
+ assert_not result
339
339
  end
340
340
 
341
341
  it 'registers an error' do
@@ -349,7 +349,7 @@ class InputTemplateRendererTest < ActiveSupport::TestCase
349
349
 
350
350
  describe 'rendering' do
351
351
  it 'can\'t render the content without host since we don\'t have fact value' do
352
- refute result
352
+ assert_not result
353
353
  end
354
354
 
355
355
  it 'registers an error' do
@@ -371,7 +371,7 @@ class InputTemplateRendererTest < ActiveSupport::TestCase
371
371
  describe 'rendering' do
372
372
  it 'can\'t render the content without host since we don\'t have fact value' do
373
373
  fact # let is lazy
374
- refute result
374
+ assert_not result
375
375
  end
376
376
 
377
377
  it 'registers an error' do
@@ -433,7 +433,7 @@ class InputTemplateRendererTest < ActiveSupport::TestCase
433
433
 
434
434
  describe 'rendering' do
435
435
  it 'can\'t render the content without host since we don\'t have host so no classification' do
436
- refute result
436
+ assert_not result
437
437
  end
438
438
 
439
439
  it 'registers an error' do
@@ -451,7 +451,7 @@ class InputTemplateRendererTest < ActiveSupport::TestCase
451
451
 
452
452
  describe 'rendering' do
453
453
  it 'can\'t render the content without host since we don\'t have variable value in classification' do
454
- refute result
454
+ assert_not result
455
455
  end
456
456
 
457
457
  it 'registers an error' do
@@ -542,7 +542,7 @@ class InputTemplateRendererTest < ActiveSupport::TestCase
542
542
 
543
543
  describe 'rendering' do
544
544
  it 'can\'t render the content without host since we don\'t have host so no classification' do
545
- refute result
545
+ assert_not result
546
546
  end
547
547
 
548
548
  it 'registers an error' do
@@ -557,7 +557,7 @@ class InputTemplateRendererTest < ActiveSupport::TestCase
557
557
 
558
558
  describe 'rendering' do
559
559
  it 'can\'t render the content without host since we don\'t have puppet parameter in classification' do
560
- refute result
560
+ assert_not result
561
561
  end
562
562
 
563
563
  it 'registers an error' do
@@ -131,7 +131,7 @@ class JobInvocationComposerTest < ActiveSupport::TestCase
131
131
 
132
132
  it 'returns false if there is one provider' do
133
133
  composer.stubs(:available_provider_types => [ 'SSH' ])
134
- refute composer.needs_provider_type_selection?
134
+ assert_not composer.needs_provider_type_selection?
135
135
  end
136
136
  end
137
137
 
@@ -440,7 +440,7 @@ class JobInvocationComposerTest < ActiveSupport::TestCase
440
440
  composer.job_invocation.expects(:valid?).returns(false)
441
441
  composer.targeting.expects(:valid?).returns(false)
442
442
  composer.pattern_template_invocations.each { |invocation| invocation.expects(:valid?).returns(false) }
443
- refute composer.valid?
443
+ assert_not composer.valid?
444
444
  end
445
445
  end
446
446
 
@@ -621,7 +621,7 @@ class JobInvocationComposerTest < ActiveSupport::TestCase
621
621
  assert composer.save!
622
622
  assert_equal bookmark, composer.job_invocation.targeting.bookmark
623
623
  assert_equal composer.job_invocation.targeting.user, User.current
624
- refute_empty composer.job_invocation.pattern_template_invocations
624
+ assert_not_empty composer.job_invocation.pattern_template_invocations
625
625
  end
626
626
  end
627
627
 
@@ -636,7 +636,7 @@ class JobInvocationComposerTest < ActiveSupport::TestCase
636
636
  it 'creates invocation with a search query' do
637
637
  assert composer.save!
638
638
  assert_equal 'some hosts', composer.job_invocation.targeting.search_query
639
- refute_empty composer.job_invocation.pattern_template_invocations
639
+ assert_not_empty composer.job_invocation.pattern_template_invocations
640
640
  end
641
641
  end
642
642
 
@@ -772,7 +772,7 @@ class JobInvocationComposerTest < ActiveSupport::TestCase
772
772
 
773
773
  it 'accepts the params' do
774
774
  composer.save!
775
- refute composer.job_invocation.new_record?
775
+ assert_not composer.job_invocation.new_record?
776
776
  end
777
777
  end
778
778
 
@@ -55,8 +55,8 @@ class JobInvocationTest < ActiveSupport::TestCase
55
55
  job_invocation.pattern_template_invocations.first.reload
56
56
  end
57
57
 
58
- it { refute job_invocation.reload.pattern_template_invocations.empty? }
59
- it { refute job_invocation.reload.pattern_template_invocations.first.input_values.empty? }
58
+ it { assert_not job_invocation.reload.pattern_template_invocations.empty? }
59
+ it { assert_not job_invocation.reload.pattern_template_invocations.first.input_values.empty? }
60
60
 
61
61
  it "can look up templates not belonging to user's organization" do
62
62
  organization = job_invocation.pattern_template_invocations.first.template.organizations.first
@@ -73,7 +73,7 @@ class JobInvocationTest < ActiveSupport::TestCase
73
73
  it 'validates required inputs have values' do
74
74
  assert job_invocation.valid?
75
75
  @input_value.destroy
76
- refute job_invocation.reload.valid?
76
+ assert_not job_invocation.reload.valid?
77
77
  end
78
78
 
79
79
  describe 'descriptions' do
@@ -179,7 +179,7 @@ class JobInvocationTest < ActiveSupport::TestCase
179
179
 
180
180
  it 'returns false if task state is pending' do
181
181
  job_invocation.task.expects(:pending?).returns(true)
182
- refute job_invocation.finished?
182
+ assert_not job_invocation.finished?
183
183
  end
184
184
 
185
185
  it 'returns true if task is not pending' do
@@ -14,7 +14,7 @@ class JobTemplateEffectiveUserTest < ActiveSupport::TestCase
14
14
  end
15
15
 
16
16
  it 'does not use the current user' do
17
- refute effective_user.current_user?
17
+ assert_not effective_user.current_user?
18
18
  end
19
19
  end
20
20
 
@@ -13,11 +13,11 @@ class JobTemplateTest < ActiveSupport::TestCase
13
13
  it 'has a unique name' do
14
14
  template1 = FactoryBot.create(:job_template)
15
15
  template2 = FactoryBot.build(:job_template, :name => template1.name)
16
- refute template2.valid?
16
+ assert_not template2.valid?
17
17
  end
18
18
 
19
19
  it 'needs a job_category' do
20
- refute job_template.valid?
20
+ assert_not job_template.valid?
21
21
  end
22
22
 
23
23
  it 'does not need a job_category if it is a snippet' do
@@ -29,7 +29,7 @@ class JobTemplateTest < ActiveSupport::TestCase
29
29
  job_template.job_category = 'Miscellaneous'
30
30
  job_template.foreign_input_sets << FactoryBot.build(:foreign_input_set, :target_template => template_with_inputs)
31
31
  job_template.foreign_input_sets << FactoryBot.build(:foreign_input_set, :target_template => template_with_inputs)
32
- refute job_template.valid?
32
+ assert_not job_template.valid?
33
33
  job_template.errors.full_messages.first.must_include 'Duplicated inputs detected: ["command"]'
34
34
  end
35
35
  end
@@ -213,7 +213,7 @@ class JobTemplateTest < ActiveSupport::TestCase
213
213
 
214
214
  it 'will not overwrite by default' do
215
215
  existing
216
- refute JobTemplate.import_raw!(updated)
216
+ assert_not JobTemplate.import_raw!(updated)
217
217
  end
218
218
 
219
219
  let(:synced_template) do
@@ -60,7 +60,7 @@ class RemoteExecutionFeatureTest < ActiveSupport::TestCase
60
60
  feature.must_be :persisted?
61
61
  feature.label.must_equal 'new_feature_that_does_not_exist'
62
62
  feature.name.must_equal 'name'
63
- refute feature.host_action_button
63
+ assert_not feature.host_action_button
64
64
  end
65
65
 
66
66
  it 'creates a feature with host action flag' do
@@ -12,7 +12,7 @@ class TargetingTest < ActiveSupport::TestCase
12
12
  describe '#resolved?' do
13
13
  context 'resolved_at is nil' do
14
14
  before { targeting.resolved_at = nil }
15
- it { refute targeting.resolved? }
15
+ it { assert_not targeting.resolved? }
16
16
  end
17
17
 
18
18
  context 'resolved_at is set' do
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: 1.6.5
4
+ version: 1.6.6
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: 2018-11-22 00:00:00.000000000 Z
11
+ date: 2018-12-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: deface
@@ -360,6 +360,7 @@ files:
360
360
  - test/functional/api/v2/template_invocations_controller_test.rb
361
361
  - test/functional/job_invocations_controller_test.rb
362
362
  - test/functional/job_templates_controller_test.rb
363
+ - test/helpers/remote_execution_helper_test.rb
363
364
  - test/test_plugin_helper.rb
364
365
  - test/unit/actions/run_host_job_test.rb
365
366
  - test/unit/actions/run_hosts_job_test.rb
@@ -408,7 +409,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
408
409
  version: '0'
409
410
  requirements: []
410
411
  rubyforge_project:
411
- rubygems_version: 2.6.11
412
+ rubygems_version: 2.7.3
412
413
  signing_key:
413
414
  specification_version: 4
414
415
  summary: A plugin bringing remote execution to the Foreman, completing the config
@@ -424,6 +425,7 @@ test_files:
424
425
  - test/functional/api/v2/template_invocations_controller_test.rb
425
426
  - test/functional/job_invocations_controller_test.rb
426
427
  - test/functional/job_templates_controller_test.rb
428
+ - test/helpers/remote_execution_helper_test.rb
427
429
  - test/test_plugin_helper.rb
428
430
  - test/unit/actions/run_host_job_test.rb
429
431
  - test/unit/actions/run_hosts_job_test.rb