ops_team 1.9.0 → 1.11.0.pre.rc2

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: 6748a5f3f6c8e89731bd41488a8173dff6d2198dbd4498f02311b50aafa762e9
4
- data.tar.gz: eb846d4e60073e8c575d11d51cca4f2d1de64cdae84698a5ef432d3723b7f0bf
3
+ metadata.gz: 35716d2bf91784127a89404ce9bc1a17b3a2998af4d247a96b530e05dac9ef57
4
+ data.tar.gz: 6621e93166e7a950f6ce0727ce050ef2b9bd3b71a4ea019ca8a0e57060702f78
5
5
  SHA512:
6
- metadata.gz: ad9dd5ec65d37be0852049d68d73e98e7469dbc06db976b9c76b1cad39a0c1b65ccbc67dcc43d57453b0ab15061ba27ee5b655955394e4406eb4e73955ee0ea4
7
- data.tar.gz: f05344a3215f9b015ec0d3890b7fd378263205908fb357e10cdd13a8c2489e40cb77b59b0c963b0f6ae8d3061380915153dd4405765c4535cdd0f8e966538dff
6
+ metadata.gz: e028c88f7c61166dde9b13bd759989563bbbbbcf6e965a231f9c3d96027699183aaf0f957bf956c8c14af3f6b8008a05cd38b47f1a743766e67b56206d22202e
7
+ data.tar.gz: '005046085d18c29d476275dbb2bef159872b495c8bfd963130b46d2d38884d26bef2929ff7340b3a948fda2fd7e666c4a4ad635dcd817082da1bb3b2dbe219a8'
data/bin/ops CHANGED
@@ -28,4 +28,4 @@ end
28
28
  require_relative "../loader"
29
29
  require 'ops'
30
30
 
31
- Ops.new(ARGV, config_file: options[:file]).run
31
+ exit Ops.new(ARGV, config_file: options[:file]).run
@@ -0,0 +1,68 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'require_all'
4
+ require_rel "../../dependencies"
5
+
6
+ require 'builtin'
7
+ require 'builtins/helpers/dependency_handler'
8
+ require 'output'
9
+
10
+ module Builtins
11
+ module Common
12
+ class UpDown < Builtin
13
+ class << self
14
+ def description
15
+ "attempts to meet dependencies listed in ops.yml"
16
+ end
17
+ end
18
+
19
+ def run
20
+ meet_dependencies
21
+
22
+ return true unless fail_on_error?
23
+
24
+ deps_to_meet.all?(&:success?)
25
+ end
26
+
27
+ private
28
+
29
+ def meet_dependencies
30
+ deps_to_meet.each do |dependency|
31
+ Output.status("[#{dependency.type}] #{dependency.name}")
32
+
33
+ meet_dependency(dependency)
34
+ end
35
+ end
36
+
37
+ def meet_dependency(dependency)
38
+ handle_dependency(dependency) if !dependency.met? || dependency.always_act?
39
+
40
+ if dependency.success?
41
+ Output.okay
42
+ else
43
+ Output.failed
44
+ Output.error("Error meeting #{dependency.type} dependency '#{dependency.name}':")
45
+ Output.out(dependency.output)
46
+ end
47
+ end
48
+
49
+ def deps_to_meet
50
+ @deps_to_meet ||= dependency_handler.dependencies.select(&:should_meet?)
51
+ end
52
+
53
+ def dependency_handler
54
+ Helpers::DependencyHandler.new(dependencies)
55
+ end
56
+
57
+ def dependencies
58
+ return @config["dependencies"] if @args.empty?
59
+
60
+ @config["dependencies"].select { |dep, _names| @args.include?(dep) }
61
+ end
62
+
63
+ def fail_on_error?
64
+ Options.get("up.fail_on_error") || false
65
+ end
66
+ end
67
+ end
68
+ end
@@ -25,6 +25,8 @@ module Builtins
25
25
  timer_task.shutdown if task_complete?
26
26
  end
27
27
  Output.out("\rCountdown complete after #{sleep_seconds}s.")
28
+
29
+ true
28
30
  end
29
31
 
30
32
  private
data/lib/builtins/down.rb CHANGED
@@ -3,50 +3,12 @@
3
3
  require 'require_all'
4
4
  require_rel "../dependencies"
5
5
 
6
- require 'builtin'
7
- require 'builtins/helpers/dependency_handler'
6
+ require 'builtins/common/up_down'
8
7
 
9
8
  module Builtins
10
- class Down < Builtin
11
- class << self
12
- def description
13
- "stops dependent services listed in ops.yml"
14
- end
15
- end
16
-
17
- def run
18
- # TODO: return a success/failure status to the caller
19
- unmeet_dependencies
20
- end
21
-
22
- private
23
-
24
- def dependency_handler
25
- Helpers::DependencyHandler.new(@config["dependencies"])
26
- end
27
-
28
- def unmeet_dependencies
29
- dependency_handler.dependencies.each do |dependency|
30
- # don't even output anything for dependencies that shouldn't be considered on this machine
31
- next unless dependency.should_meet?
32
-
33
- Output.status("[#{dependency.type}] #{dependency.name}")
34
-
35
- unmeet_dependency(dependency)
36
- end
37
- end
38
-
39
- def unmeet_dependency(dependency)
40
- # TODO: make this simpler, and factor in `should_meet?` above, too
41
- dependency.unmeet if dependency.met? || dependency.always_act?
42
-
43
- if dependency.success?
44
- Output.okay
45
- else
46
- Output.failed
47
- Output.error("Error unmeeting #{dependency.type} dependency '#{dependency.name}':")
48
- Output.out(dependency.output)
49
- end
9
+ class Down < Common::UpDown
10
+ def handle_dependency(dependency)
11
+ dependency.unmeet
50
12
  end
51
13
  end
52
14
  end
data/lib/builtins/up.rb CHANGED
@@ -3,57 +3,13 @@
3
3
  require 'require_all'
4
4
  require_rel "../dependencies"
5
5
 
6
- require 'builtin'
7
- require 'builtins/helpers/dependency_handler'
6
+ require 'builtins/common/up_down'
8
7
  require 'output'
9
8
 
10
9
  module Builtins
11
- class Up < Builtin
12
- class << self
13
- def description
14
- "attempts to meet dependencies listed in ops.yml"
15
- end
16
- end
17
-
18
- def run
19
- # TODO: return a success/failure status to the caller
20
- meet_dependencies
21
- end
22
-
23
- private
24
-
25
- def dependency_handler
26
- Helpers::DependencyHandler.new(deps_to_meet)
27
- end
28
-
29
- def meet_dependencies
30
- dependency_handler.dependencies.each do |dependency|
31
- # don't even output anything for dependencies that shouldn't be considered on this machine
32
- next unless dependency&.should_meet?
33
-
34
- Output.status("[#{dependency.type}] #{dependency.name}")
35
-
36
- meet_dependency(dependency)
37
- end
38
- end
39
-
40
- def meet_dependency(dependency)
41
- # TODO: make this simpler, and factor in `should_meet?` above, too
42
- dependency.meet if !dependency.met? || dependency.always_act?
43
-
44
- if dependency.success?
45
- Output.okay
46
- else
47
- Output.failed
48
- Output.error("Error meeting #{dependency.type} dependency '#{dependency.name}':")
49
- Output.out(dependency.output)
50
- end
51
- end
52
-
53
- def deps_to_meet
54
- return @config["dependencies"] if @args.empty?
55
-
56
- return @config["dependencies"].select { |dep, names| @args.include?(dep) }
10
+ class Up < Common::UpDown
11
+ def handle_dependency(dependency)
12
+ dependency.meet
57
13
  end
58
14
  end
59
15
  end
@@ -31,19 +31,17 @@ module Dependencies
31
31
  private
32
32
 
33
33
  def up_command
34
- @up_command ||= @definition.is_a?(Hash) ? @config["up"] : name
34
+ @up_command ||= @definition.is_a?(Hash) ? @config&.dig("up") : name
35
35
  end
36
36
 
37
37
  def down_command
38
- @down_command ||= @config["down"]
38
+ @down_command ||= @config && @config&.dig("down") || nil
39
39
  end
40
40
 
41
41
  def parse_definition
42
- return @definition, {} if @definition.is_a?(String)
43
42
  return @definition.first if @definition.is_a?(Hash)
44
43
 
45
- raise CustomConfigError, "Expected custom dependency @definition '#{@definition}' " \
46
- "to be a String or a Hash; received #{@definition.class}."
44
+ [@definition.to_s, {}]
47
45
  end
48
46
  end
49
47
  end
data/lib/runner.rb CHANGED
@@ -9,7 +9,9 @@ require 'environment'
9
9
 
10
10
  class Runner
11
11
  class UnknownActionError < StandardError; end
12
+
12
13
  class ActionConfigError < StandardError; end
14
+
13
15
  class NotAllowedInEnvError < StandardError; end
14
16
 
15
17
  def initialize(action_name, args, config, config_path)
data/ops_team.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'ops_team'
5
- s.version = '1.9.0'
5
+ s.version = '1.11.0-rc2'
6
6
  s.authors = [
7
7
  'nickthecook@gmail.com'
8
8
  ]
@@ -16,6 +16,7 @@ Gem::Specification.new do |s|
16
16
  'etc/*',
17
17
  'lib/builtins/*',
18
18
  'lib/builtins/helpers/*',
19
+ 'lib/builtins/common/*',
19
20
  'lib/dependencies/*',
20
21
  'lib/dependencies/helpers/*',
21
22
  'loader.rb',
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ops_team
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.0
4
+ version: 1.11.0.pre.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - nickthecook@gmail.com
@@ -172,6 +172,7 @@ files:
172
172
  - lib/builtin.rb
173
173
  - lib/builtins/background.rb
174
174
  - lib/builtins/background_log.rb
175
+ - lib/builtins/common/up_down.rb
175
176
  - lib/builtins/countdown.rb
176
177
  - lib/builtins/down.rb
177
178
  - lib/builtins/env.rb
@@ -223,9 +224,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
223
224
  version: '2.5'
224
225
  required_rubygems_version: !ruby/object:Gem::Requirement
225
226
  requirements:
226
- - - ">="
227
+ - - ">"
227
228
  - !ruby/object:Gem::Version
228
- version: '0'
229
+ version: 1.3.1
229
230
  requirements: []
230
231
  rubygems_version: 3.0.3.1
231
232
  signing_key: