exercism-config 0.76.0 → 0.80.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 382f12024996ba4f2a1485f87a77de080f1e472a2d7e46eee1cdbf0eb2893036
4
- data.tar.gz: f8f5d09624c88131b6d1ba0183b26e4ecd355d9b3c48b85bef4f2fa5bc815529
3
+ metadata.gz: 9028a8ef38a64c4fbc99ebf5830082b4d01eb5fcd57f3ba3c71be173abacb50c
4
+ data.tar.gz: 704f3be682e8151296104648540bb0153fe5725449593d2702c807ea41dbc3b3
5
5
  SHA512:
6
- metadata.gz: d8ce0815630303f05a29ee780512f7177fb0ec4eb8f6ffcbd88aa2e9a33b08fbfef972311a5b8aaba928596a8aabe189a38c5f8850bd18ba8ef8d660c4c6a342
7
- data.tar.gz: e99dd955ba1143efbf1f8ac76257df59e386fc27cdd050b6508c9bb37ef4121f7098b8bdaa66d736158f9a911cf1a666c60d4893e33955540c32bfab07e8aee0
6
+ metadata.gz: 9e688f9269fd4408fb898d9b516783a4cac653a5729bd702bbeccf84e4bec5e239a915c8ca5acd68ca0dc43dc204b8f955efa18583ac1845b68f07952ff5985c
7
+ data.tar.gz: 5c8340deea246d5588a82a167c33f64219590d7d1168b4839ceec89486109666db6683018e74294bb7d52ca4fd678fb7292fbec5adfe11b24f260c59182e9acc
data/README.md CHANGED
@@ -23,6 +23,7 @@ Exercism.config.mysql_port
23
23
  Exercism.config.spi_url
24
24
  Exercism.config.tooling_orchestrator_url
25
25
  Exercism.config.language_server_url
26
+ Exercism.config.opensearch_host
26
27
 
27
28
  # Secrets
28
29
  Exercism.secrets.github_access_token
@@ -37,6 +38,7 @@ Exercism.dynamodb_client
37
38
  Exercism.s3_client
38
39
  Exercism.ecr_client
39
40
  Exercism.octokit_client
41
+ Exercism.opensearch_client
40
42
  ```
41
43
 
42
44
  ## Explanation
@@ -40,5 +40,6 @@ Gem::Specification.new do |spec|
40
40
  # own Gemfile when using this.
41
41
  spec.add_development_dependency 'aws-sdk-ecr'
42
42
  spec.add_development_dependency 'aws-sdk-s3'
43
+ spec.add_development_dependency 'elasticsearch', '6.8.3'
43
44
  spec.add_development_dependency 'redis'
44
45
  end
@@ -5,9 +5,11 @@ module Exercism
5
5
 
6
6
  extend Mandate::Memoize
7
7
 
8
- def self.create!(type, submission_uuid, language, exercise, extra = {})
8
+ def self.create!(type, submission_uuid, language, exercise,
9
+ run_in_background: false,
10
+ **data)
9
11
  job_id = SecureRandom.uuid.tr('-', '')
10
- data = extra.merge(
12
+ data.merge!(
11
13
  id: job_id,
12
14
  submission_uuid: submission_uuid,
13
15
  type: type,
@@ -16,13 +18,14 @@ module Exercism
16
18
  created_at: Time.now.utc.to_i
17
19
  )
18
20
 
21
+ queue_key = run_in_background ? key_for_queued_for_background_processing : key_for_queued
19
22
  redis = Exercism.redis_tooling_client
20
23
  redis.multi do
21
24
  redis.set(
22
25
  "job:#{job_id}",
23
26
  data.to_json
24
27
  )
25
- redis.rpush(key_for_queued, job_id)
28
+ redis.rpush(queue_key, job_id)
26
29
  redis.set("submission:#{submission_uuid}:#{type}", job_id)
27
30
  end
28
31
  new(job_id, data)
@@ -164,7 +167,7 @@ module Exercism
164
167
  Exercism.config.aws_tooling_jobs_bucket
165
168
  end
166
169
 
167
- %w[queued locked executed cancelled].each do |key|
170
+ %w[queued queued_for_background_processing locked executed cancelled].each do |key|
168
171
  ToolingJob.singleton_class.class_eval do
169
172
  define_method "key_for_#{key}" do
170
173
  Exercism.env.production? ? key : "#{Exercism.env}:#{key}"
@@ -69,4 +69,21 @@ module Exercism
69
69
  c.auto_paginate = true
70
70
  end
71
71
  end
72
+
73
+ def self.opensearch_client
74
+ require 'elasticsearch'
75
+
76
+ # For now, we're using the ElasticSearch client, but this needs to be
77
+ # changed to the OpenSearch client once it becomes available
78
+ Elasticsearch::Client.new(
79
+ url: ENV.fetch("OPENSEARCH_HOST", config.opensearch_host),
80
+ user: ENV.fetch("OPENSEARCH_USER", Exercism.env.production? ? nil : "admin"),
81
+ password: ENV.fetch("OPENSEARCH_PASSWORD", Exercism.env.production? ? nil : "admin"),
82
+ transport_options: {
83
+ ssl: {
84
+ verify: Exercism.env.production?
85
+ }
86
+ }
87
+ )
88
+ end
72
89
  end
@@ -1,3 +1,3 @@
1
1
  module ExercismConfig
2
- VERSION = '0.76.0'.freeze
2
+ VERSION = '0.80.0'.freeze
3
3
  end
data/settings/ci.yml CHANGED
@@ -37,6 +37,9 @@ efs_repositories_mount_point: "/tmp/exercism/efs/repos"
37
37
  github_organization: fake-exercism
38
38
  github_bot_username: exercism-bot
39
39
 
40
+ # OpenSearch
41
+ opensearch_host: https://127.0.0.1:9200
42
+
40
43
  # Extra things not used in development, but here
41
44
  # so that this file can provide a reference
42
45
  website_assets_host:
data/settings/docker.yml CHANGED
@@ -37,6 +37,9 @@ efs_repositories_mount_point: "/tmp/exercism/efs/repos"
37
37
  github_organization: fake-exercism
38
38
  github_bot_username: exercism-bot
39
39
 
40
+ # OpenSearch
41
+ opensearch_host: https://opensearch:9200
42
+
40
43
  # Extra things not used in development, but here
41
44
  # so that this file can provide a reference
42
45
  website_assets_host:
data/settings/local.yml CHANGED
@@ -37,6 +37,9 @@ efs_repositories_mount_point: "/tmp/exercism/efs/repos"
37
37
  github_organization: fake-exercism
38
38
  github_bot_username: exercism-bot
39
39
 
40
+ # OpenSearch
41
+ opensearch_host: https://localhost:9200
42
+
40
43
  # Extra things not used in development, but here
41
44
  # so that this file can provide a reference
42
45
  website_assets_host:
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: exercism-config
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.76.0
4
+ version: 0.80.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Walker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-28 00:00:00.000000000 Z
11
+ date: 2021-12-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-dynamodb
@@ -150,6 +150,20 @@ dependencies:
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: elasticsearch
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - '='
158
+ - !ruby/object:Gem::Version
159
+ version: 6.8.3
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '='
165
+ - !ruby/object:Gem::Version
166
+ version: 6.8.3
153
167
  - !ruby/object:Gem::Dependency
154
168
  name: redis
155
169
  requirement: !ruby/object:Gem::Requirement