inferno_core 0.1.1 → 0.1.3.pre2

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: 4fe39c8c3dfc7f0f12192e065746ab203836ebf93a9f2f6a22a847d0d95fe0a2
4
- data.tar.gz: 9b10445ccde6d340c35b39450f2cebef2b589b4473b4fe9a9c36ced3c7b20630
3
+ metadata.gz: e9600a6e94a1bcd029d0bbce4f3640cae2d277cee01faf89545d3ffcd3906393
4
+ data.tar.gz: 8f9904f1c6580f1767924392e29c05388c6283204fe057cbc8600f929b3a8f57
5
5
  SHA512:
6
- metadata.gz: a64d50d36b4269fe2449b2e6a25947cd04a1fc963c7fb4ffdfb0bd417d304ec5a5149bdb5cd69bd761ab4471378d13b1dc60d8c961ba6f1729d739c3ad553337
7
- data.tar.gz: 18a78ac99ac8fe75f6d1715272d6be64c51ae930c1a40cf5453c8aaefcd460739b4b6d817a776576898ffba02df449f07fbd1c7fc3468302b5d7b62f3f64e766
6
+ metadata.gz: 4bedf3e5026184977b81b8986da99b6a8d3b6c8f835543dc4783bd8f9d2e0f413b7ae1b1309062e5f57e97778c31242732aa30725faac9c5de46209e8c0ee161
7
+ data.tar.gz: 177a0b5f06d5a8dd6d636d496a74766f5f186047d10e79361c96d3be237fb45c2cc05065ca41d5dc739919d594ad094fb910b1b3a89d02bf074cfc227259399c
@@ -21,6 +21,8 @@ module Inferno
21
21
  return
22
22
  end
23
23
 
24
+ # TODO: This test run shouldn't be created until after the inputs
25
+ # and runnable are validated
24
26
  test_run = repo.create(create_params(params).merge(status: 'queued'))
25
27
  missing_inputs = test_run.runnable.missing_inputs(params[:inputs])
26
28
 
@@ -0,0 +1,39 @@
1
+ module Inferno
2
+ module Web
3
+ module Controllers
4
+ module TestRuns
5
+ class Destroy < Controller
6
+ include Import[
7
+ test_runs_repo: 'repositories.test_runs',
8
+ results_repo: 'repositories.results'
9
+ ]
10
+
11
+ def call(params)
12
+ test_run = test_runs_repo.find(params[:id])
13
+
14
+ if test_run.nil? || ['done', 'cancelling'].include?(test_run.status)
15
+ # If it doesn't exist, already finished, or currently being cancelled
16
+ self.status = 204
17
+ return
18
+ end
19
+
20
+ test_run_is_waiting = (test_run.status == 'waiting')
21
+ test_runs_repo.mark_as_cancelling(params[:id])
22
+
23
+ if test_run_is_waiting
24
+ waiting_result = results_repo.find_waiting_result(test_run_id: test_run.id)
25
+ results_repo.cancel_waiting_result(waiting_result.id, 'Test cancelled by user')
26
+ Jobs.perform(Jobs::ResumeTestRun, test_run.id)
27
+ end
28
+
29
+ self.status = 204
30
+ rescue StandardError => e
31
+ Application['logger'].error(e.full_message)
32
+ self.body = { errors: e.message }.to_json
33
+ self.status = 500
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -7,7 +7,7 @@ module Inferno
7
7
 
8
8
  Router = Hanami::Router.new(namespace: Inferno::Web::Controllers) do
9
9
  namespace 'api' do
10
- resources 'test_runs', only: [:create, :show] do
10
+ resources 'test_runs', only: [:create, :show, :destroy] do
11
11
  resources 'results', only: [:index]
12
12
  end
13
13
 
@@ -13,6 +13,10 @@ module Inferno
13
13
  return @config if new_configuration.blank?
14
14
 
15
15
  @config.apply(new_configuration)
16
+
17
+ children.each { |child| child.config(new_configuration) }
18
+
19
+ @config
16
20
  end
17
21
 
18
22
  # @private
@@ -53,7 +53,7 @@ module Inferno
53
53
 
54
54
  # Set the url of the validator service
55
55
  #
56
- # @param url [String]
56
+ # @param validator_url [String]
57
57
  def url(validator_url = nil)
58
58
  @url = validator_url if validator_url
59
59
 
@@ -31,7 +31,7 @@ module Inferno
31
31
  instance_variable_set(:"@#{name}", value)
32
32
  end
33
33
 
34
- self.token_retrieval_time = DateTime.now if token_retrieval_time.blank?
34
+ self.token_retrieval_time = DateTime.now if access_token.present? && token_retrieval_time.blank?
35
35
  end
36
36
 
37
37
  # @api private
@@ -456,12 +456,13 @@ module Inferno
456
456
 
457
457
  # @private
458
458
  def required_inputs(prior_outputs = [])
459
- required_inputs = inputs.select do |input|
460
- !input_definitions[input][:optional] && !prior_outputs.include?(input)
461
- end
462
- required_inputs.map! { |input_identifier| input_definitions[input_identifier][:name] }
459
+ required_inputs =
460
+ inputs
461
+ .reject { |input| input_definitions[input][:optional] }
462
+ .map { |input| config.input_name(input) }
463
+ .reject { |input| prior_outputs.include?(input) }
463
464
  children_required_inputs = children.flat_map { |child| child.required_inputs(prior_outputs) }
464
- prior_outputs.concat(outputs)
465
+ prior_outputs.concat(outputs.map { |output| config.output_name(output) })
465
466
  (required_inputs + children_required_inputs).flatten.uniq
466
467
  end
467
468
 
@@ -32,7 +32,7 @@ module Inferno
32
32
  # @return [String, nil] identfier for a waiting `TestRun`
33
33
  # @!attribute wait_timeout
34
34
  class TestRun < Entity
35
- STATUS_OPTIONS = ['queued', 'running', 'waiting', 'done'].freeze
35
+ STATUS_OPTIONS = ['queued', 'running', 'waiting', 'cancelling', 'done'].freeze
36
36
  ATTRIBUTES = [
37
37
  :id,
38
38
  :test_session_id,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "main.js": "/public/bundle.js",
3
- "main.png": "/public/e09b16f5cb645eb05f90c8f38f3409fb.png",
4
3
  "217.bundle.js": "/public/217.bundle.js",
5
- "inferno_logo.png": "/public/e09b16f5cb645eb05f90c8f38f3409fb.png"
4
+ "inferno_logo.png": "/public/e09b16f5cb645eb05f90c8f38f3409fb.png",
5
+ "inferno_icon.png": "/public/72a5cd989e6aea904540824ec865a0f8.png"
6
6
  }