inst-jobs-autoscaling 1.0.4 → 2.1.1

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: f7d2f6a38d87a869c628fcf44743f6f6921cf4eeab7a2f4efb531d884efe8b97
4
- data.tar.gz: a3fbda486e7586ec36d539e27bf6be30239c8ac96106553e20ca15cbdf88daff
3
+ metadata.gz: a07bdbafec7f5069b329b115ed62902cd2f96126cdfccfde21844640b9a0fa05
4
+ data.tar.gz: ae1ebb85e92176d2472402582aae3ef281603b49c6947f534a5b7fecc9a95dec
5
5
  SHA512:
6
- metadata.gz: 1f60ef4e60f881b61d1325735884e248dce4a252e9f2d985b451c0bb3b934af0627a4665f78e72de448788cbbaadd9d9cd2d5edd0d4f33fa24c845fc684094f7
7
- data.tar.gz: 4a15b8ee2fc114b5f7541f8cde0d0211f471a9634eafb4f37449f47709cc457f3bf4ac7061714796d1c70c1c9bb529734940f216c705ce8e8cb467fcf1305e17
6
+ metadata.gz: 37b0676e26ed10dd1cc820504c1e52228a1cc62680d75ee7947c48b1a84b9303e21350afe931470c10f6f2cf8bc5c994c408625be807a41b6443953a3d97c31c
7
+ data.tar.gz: d5aea5d2d1ed01128e53e6e1f72c18360ec832f9a6778fe12f36ddccbf2448ad65650a3bb5fca026c85fd949a3710c2f9056e22ad0fe48bb4911ea45dd6c85e6
data/Dockerfile CHANGED
@@ -1,11 +1,10 @@
1
- FROM instructure/ruby:2.4
2
-
3
- ADD Gemfile* *.gemspec /usr/src/app/
4
- ADD lib/jobs_autoscaling/version.rb /usr/src/app/lib/jobs_autoscaling/
5
- USER root
6
- RUN bundle install
7
- ADD . /usr/src/app/
8
- RUN chown -R docker:docker /usr/src/app
9
- USER docker
1
+ FROM instructure/ruby:2.6
2
+
3
+ COPY --chown=docker:docker Gemfile* *.gemspec /usr/src/app/
4
+ COPY --chown=docker:docker lib/jobs_autoscaling/version.rb /usr/src/app/lib/jobs_autoscaling/
5
+
6
+ RUN bundle install -j 4
7
+
8
+ COPY --chown=docker:docker . /usr/src/app/
10
9
 
11
10
  CMD ["rake"]
data/Jenkinsfile ADDED
@@ -0,0 +1,18 @@
1
+ #! /usr/bin/env groovy
2
+
3
+ pipeline {
4
+ agent { label 'docker' }
5
+
6
+ stages {
7
+ stage('Build') {
8
+ steps {
9
+ sh 'docker build -t inst-jobs-autoscaling .'
10
+ }
11
+ }
12
+ stage('Test') {
13
+ steps {
14
+ sh 'docker run --rm inst-jobs-autoscaling'
15
+ }
16
+ }
17
+ }
18
+ }
data/build.sh CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/bin/bash
2
2
  set -e
3
3
 
4
- docker-compose build
5
- docker-compose run --rm ci
4
+ docker build -t inst-jobs-autoscaling .
5
+ docker run --rm inst-jobs-autoscaling
@@ -18,11 +18,11 @@ Gem::Specification.new do |spec|
18
18
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency "inst-jobs", ">= 0.13.5"
21
+ spec.add_dependency "inst-jobs", "> 1.0", "< 4.0"
22
22
  spec.add_dependency "aws-sdk-autoscaling"
23
23
 
24
- spec.add_development_dependency "bundler", "~> 1.11"
25
- spec.add_development_dependency "rake", "~> 12.0"
24
+ spec.add_development_dependency "bundler", "> 1.11", "< 3"
25
+ spec.add_development_dependency "rake", "~> 13.0"
26
26
  spec.add_development_dependency "pry"
27
27
  spec.add_development_dependency "rspec", "~> 3.4.0"
28
28
  end
@@ -6,11 +6,11 @@ module JobsAutoscaling
6
6
  BUSY = :busy
7
7
 
8
8
  def initialize(action: )
9
- @action = action
9
+ @actions = Array(action)
10
10
  end
11
11
 
12
12
  def activate!
13
- Delayed::Worker.lifecycle.after(:work_queue_pop, &method(:work_queue_pop))
13
+ Delayed::Worker.lifecycle.after(:check_for_work, &method(:check_for_work))
14
14
  load_preexisting_jobs
15
15
  change_state(preexisting_jobs_running? ? BUSY : IDLE)
16
16
  end
@@ -34,11 +34,7 @@ module JobsAutoscaling
34
34
  @process_mtime_map.any?
35
35
  end
36
36
 
37
- def work_queue_pop(work_queue, _worker_config)
38
- unless work_queue.respond_to?(:all_workers_idle?)
39
- return
40
- end
41
-
37
+ def check_for_work(work_queue)
42
38
  new_state = work_queue.all_workers_idle? && !preexisting_jobs_running? ? IDLE : BUSY
43
39
  if new_state != @worker_state
44
40
  change_state(new_state)
@@ -47,7 +43,9 @@ module JobsAutoscaling
47
43
 
48
44
  def change_state(new_state)
49
45
  @worker_state = new_state
50
- @action.public_send(new_state)
46
+ @actions.each do |action|
47
+ action.public_send(new_state)
48
+ end
51
49
  end
52
50
  end
53
51
  end
@@ -1,3 +1,3 @@
1
1
  module JobsAutoscaling
2
- VERSION = "1.0.4"
2
+ VERSION = "2.1.1"
3
3
  end
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inst-jobs-autoscaling
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 2.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Palmer
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-06-06 00:00:00.000000000 Z
11
+ date: 2021-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: inst-jobs
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - ">"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ - - "<"
18
21
  - !ruby/object:Gem::Version
19
- version: 0.13.5
22
+ version: '4.0'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - ">="
27
+ - - ">"
28
+ - !ruby/object:Gem::Version
29
+ version: '1.0'
30
+ - - "<"
25
31
  - !ruby/object:Gem::Version
26
- version: 0.13.5
32
+ version: '4.0'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: aws-sdk-autoscaling
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -42,30 +48,36 @@ dependencies:
42
48
  name: bundler
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
- - - "~>"
51
+ - - ">"
46
52
  - !ruby/object:Gem::Version
47
53
  version: '1.11'
54
+ - - "<"
55
+ - !ruby/object:Gem::Version
56
+ version: '3'
48
57
  type: :development
49
58
  prerelease: false
50
59
  version_requirements: !ruby/object:Gem::Requirement
51
60
  requirements:
52
- - - "~>"
61
+ - - ">"
53
62
  - !ruby/object:Gem::Version
54
63
  version: '1.11'
64
+ - - "<"
65
+ - !ruby/object:Gem::Version
66
+ version: '3'
55
67
  - !ruby/object:Gem::Dependency
56
68
  name: rake
57
69
  requirement: !ruby/object:Gem::Requirement
58
70
  requirements:
59
71
  - - "~>"
60
72
  - !ruby/object:Gem::Version
61
- version: '12.0'
73
+ version: '13.0'
62
74
  type: :development
63
75
  prerelease: false
64
76
  version_requirements: !ruby/object:Gem::Requirement
65
77
  requirements:
66
78
  - - "~>"
67
79
  - !ruby/object:Gem::Version
68
- version: '12.0'
80
+ version: '13.0'
69
81
  - !ruby/object:Gem::Dependency
70
82
  name: pry
71
83
  requirement: !ruby/object:Gem::Requirement
@@ -94,7 +106,7 @@ dependencies:
94
106
  - - "~>"
95
107
  - !ruby/object:Gem::Version
96
108
  version: 3.4.0
97
- description:
109
+ description:
98
110
  email:
99
111
  - brianp@instructure.com
100
112
  executables: []
@@ -105,13 +117,13 @@ files:
105
117
  - ".rspec"
106
118
  - Dockerfile
107
119
  - Gemfile
120
+ - Jenkinsfile
108
121
  - LICENSE.txt
109
122
  - README.md
110
123
  - Rakefile
111
124
  - bin/console
112
125
  - bin/setup
113
126
  - build.sh
114
- - docker-compose.yml
115
127
  - inst-jobs-autoscaling.gemspec
116
128
  - lib/jobs_autoscaling.rb
117
129
  - lib/jobs_autoscaling/aws_action.rb
@@ -122,7 +134,7 @@ homepage: https://github.com/instructure/inst-jobs-autoscaling
122
134
  licenses:
123
135
  - MIT
124
136
  metadata: {}
125
- post_install_message:
137
+ post_install_message:
126
138
  rdoc_options: []
127
139
  require_paths:
128
140
  - lib
@@ -137,9 +149,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
149
  - !ruby/object:Gem::Version
138
150
  version: '0'
139
151
  requirements: []
140
- rubyforge_project:
141
- rubygems_version: 2.7.3
142
- signing_key:
152
+ rubygems_version: 3.2.24
153
+ signing_key:
143
154
  specification_version: 4
144
155
  summary: AWS ASG autoscaling for inst-jobs
145
156
  test_files: []
data/docker-compose.yml DELETED
@@ -1,2 +0,0 @@
1
- ci:
2
- build: .