ops_team 0.8.4 → 0.8.10

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: 9ac7f508035cd849eeac7d3277f3eeb3a1de9537e31201f0a2dbcbafc6b0765b
4
- data.tar.gz: 2198752b9d2c9e6858a1c472befe4ba6d44475697b9c2f4882a4eef93c5e42ad
3
+ metadata.gz: caa9b859d0dac66be5cc981ed872b591a6c174a5c70dabdf145d415681960831
4
+ data.tar.gz: '08beac67a93906cb88db284977d1a10863820de5fd73369fb782f530cc8ec601'
5
5
  SHA512:
6
- metadata.gz: 2579177f0edf6061b22b4cdb532943b90ac6077a0f265c5c5a4e3c844a0e742446bbf2f14d899df3d80582e175fff7380f83c5d94c0da004ff587ad76f7f82d9
7
- data.tar.gz: 3b4f2a6bc2b604214ad96587430e90031ce529fe2cc03685e33d17bbbf41def8f88f2bba0679a0fe1657f12ec13fed7656f649bdca68d56f2f1e3c7fdac82931
6
+ metadata.gz: 472f261d6d94bc4024576b2a322fe69bd10b53b5892efbcc89027a825723901c9a1aede0cc393cd8fae372dba49bdeb95c703b912f4d83ecf6711de8f3541caa
7
+ data.tar.gz: 2a3a3ae0d383b40bec9cfaa79d705520f46b885f510aaab3833e763114a9c10a8b90af5a6c6285942e53057508643da93ad32f629fc4812819e24e44969ba750
data/Gemfile CHANGED
@@ -7,6 +7,7 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
7
7
  gem "bcrypt_pbkdf"
8
8
  gem "colorize"
9
9
  gem "ed25519"
10
+ gem "ejson"
10
11
  gem "net-ssh"
11
12
  gem "require_all"
12
13
 
@@ -17,7 +17,7 @@ class Action
17
17
  end
18
18
 
19
19
  def to_s
20
- "#{command} #{@args.join(' ')}"
20
+ "#{command} #{@args.join(' ')}".strip
21
21
  end
22
22
 
23
23
  def alias
@@ -8,7 +8,7 @@ module Dependencies
8
8
  class Sshkey < Dependency
9
9
  DEFAULT_KEY_SIZE = 2048
10
10
  DEFAULT_KEY_ALGO = "rsa"
11
- DEFAULT_KEY_LIFETIME_S = 600
11
+ DEFAULT_KEY_LIFETIME_S = 3600
12
12
 
13
13
  def met?
14
14
  # we always need to at least update the key lifetime in the agent
@@ -21,7 +21,7 @@ module Dependencies
21
21
  FileUtils.mkdir_p(dir_name) unless File.directory?(dir_name)
22
22
 
23
23
  generate_key unless File.exist?(priv_key_name) && File.exist?(pub_key_name)
24
- add_key if success? && ENV["SSH_AUTH_SOCK"]
24
+ add_key if success? && should_add_key?
25
25
  end
26
26
 
27
27
  def unmeet
@@ -35,19 +35,25 @@ module Dependencies
35
35
  private
36
36
 
37
37
  def generate_key
38
- execute("ssh-keygen -b #{key_size} -t #{key_algo} -f #{priv_key_name} -q -N '#{passphrase}'")
38
+ Output.warn("\nNo passphrase set for SSH key '#{priv_key_name}'") if passphrase.nil? || passphrase.empty?
39
+
40
+ execute("ssh-keygen -b #{opt_key_size} -t #{opt_key_algo} -f #{priv_key_name} -q -N '#{passphrase}'")
39
41
  end
40
42
 
41
43
  def add_key
42
44
  Net::SSH::Authentication::Agent.connect.add_identity(
43
45
  unencrypted_key,
44
46
  key_comment,
45
- lifetime: key_lifetime
47
+ lifetime: opt_key_lifetime
46
48
  )
47
49
  end
48
50
 
51
+ def should_add_key?
52
+ ENV["SSH_AUTH_SOCK"] && opt_add_keys?
53
+ end
54
+
49
55
  def unencrypted_key
50
- Net::SSH::KeyFactory.load_private_key(priv_key_name, passphrase)
56
+ Net::SSH::KeyFactory.load_private_key(priv_key_name, passphrase.empty? ? nil : passphrase)
51
57
  end
52
58
 
53
59
  def key_comment
@@ -67,23 +73,40 @@ module Dependencies
67
73
  "#{priv_key_name}.pub"
68
74
  end
69
75
 
70
- def key_size
76
+ def opt_key_size
71
77
  Options.get("sshkey.key_size") || DEFAULT_KEY_SIZE
72
78
  end
73
79
 
74
- def key_algo
80
+ def opt_key_algo
75
81
  DEFAULT_KEY_ALGO
76
82
  end
77
83
 
78
84
  def passphrase
79
- `echo #{configured_passphrase}`.chomp
85
+ `echo #{opt_passphrase}`.chomp
86
+ end
87
+
88
+ def opt_passphrase
89
+ @opt_passphrase ||= begin
90
+ return "$#{Options.get('sshkey.passphrase_var')}" if Options.get("sshkey.passphrase_var")
91
+
92
+ output_passphrase_warning if Options.get("sshkey.passphrase")
93
+
94
+ Options.get("sshkey.passphrase")
95
+ end
96
+ end
97
+
98
+ def output_passphrase_warning
99
+ Output.warn(
100
+ "\n'options.sshkey.passphrase' is deprecated and will be removed in a future release. " \
101
+ "Use 'options.sshkey.passphrase_var' instead."
102
+ )
80
103
  end
81
104
 
82
- def configured_passphrase
83
- Options.get("sshkey.passphrase")
105
+ def opt_add_keys?
106
+ Options.get("sshkey.add_keys").nil? ? true : Options.get("sshkey.add_keys")
84
107
  end
85
108
 
86
- def key_lifetime
109
+ def opt_key_lifetime
87
110
  Options.get("sshkey.key_lifetime") || DEFAULT_KEY_LIFETIME_S
88
111
  end
89
112
  end
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'ops_team'
5
- s.version = '0.8.4'
5
+ s.version = '0.8.10'
6
6
  s.authors = [
7
7
  'nickthecook@gmail.com'
8
8
  ]
9
- s.date = '2020-05-29'
9
+ s.date = '2020-08-11'
10
10
  s.summary = 'ops_team handles basic operations tasks for your project, driven by YAML config'
11
11
  s.homepage = 'https://github.com/nickthecook/ops'
12
12
  s.files = Dir[
@@ -25,6 +25,7 @@ Gem::Specification.new do |s|
25
25
  s.add_runtime_dependency 'bcrypt_pbkdf', '~> 1.0', '>= 1.0.1'
26
26
  s.add_runtime_dependency 'colorize', '~> 0.8', '>= 0.8.1'
27
27
  s.add_runtime_dependency 'ed25519', '~> 1.2', '>= 1.2.4'
28
+ s.add_runtime_dependency 'ejson', '~> 1.2', '>= 1.2.1'
28
29
  s.add_runtime_dependency 'net-ssh', '~> 6.1', '>= 6.1.0'
29
30
  s.add_runtime_dependency 'require_all', '~> 1.1', '>= 1.1.6'
30
31
  s.license = 'GPL-3.0-only'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ops_team
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.4
4
+ version: 0.8.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - nickthecook@gmail.com
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-29 00:00:00.000000000 Z
11
+ date: 2020-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bcrypt_pbkdf
@@ -70,6 +70,26 @@ dependencies:
70
70
  - - ">="
71
71
  - !ruby/object:Gem::Version
72
72
  version: 1.2.4
73
+ - !ruby/object:Gem::Dependency
74
+ name: ejson
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '1.2'
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 1.2.1
83
+ type: :runtime
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.2'
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 1.2.1
73
93
  - !ruby/object:Gem::Dependency
74
94
  name: net-ssh
75
95
  requirement: !ruby/object:Gem::Requirement