datacenter 0.4.0 → 0.5.1

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
- SHA1:
3
- metadata.gz: 2098304fc0285b30cbe84d111c637bc2f9ed0ca9
4
- data.tar.gz: 81dbb70a0d7e4a17dd5f1028ebccb97da5627e02
2
+ SHA256:
3
+ metadata.gz: 7df2e3acdef1d6f553a3fe126f1ddf14fad750b8487e863570290013aa581008
4
+ data.tar.gz: ac427c779cfa2da151e93e4a91c132c37cb84d57987a4eb2a0f8a3e6be51268a
5
5
  SHA512:
6
- metadata.gz: d72ca3f494c43436f9eda558deb0f24e0bd163e03581c51ff477db681d7347d4cd62a71681ca6ffd7154d3babb4a00d9ea59878678611d7f8db5330ebefd9350
7
- data.tar.gz: eabe4a509235bfb64d5dee6f2cfeeb36bac9ead2d6eeec759b11db7cedd60817f37a660c9ae509497fc0568b3ee7712b48f4b64f60efed690655c902548c2db5
6
+ metadata.gz: 7d7ff9313e9cc44d1c5929c37c6a834425afba664e66d5dd8289acf9800f5943845189a63b7a7b132e786ffcd711dec660ef8fb609ab02e3326cc077948834c6
7
+ data.tar.gz: e3c744abb248b137e6fbc8a2b46798e089e93cc37bf31f3119b5f3a32183d7a465922f293aa9cedb7a59b9deba2a587c8ba4ca39833aa17961241541538e5962
@@ -1 +1 @@
1
- ruby 2.0
1
+ ruby-2.7.0
@@ -1,13 +1,23 @@
1
1
  language: ruby
2
+
2
3
  rvm:
3
- - 1.9.3
4
- - 2.0
5
- - 2.1
6
4
  - 2.2
7
- - 2.3.0
8
- - jruby
5
+ - 2.3
6
+ - 2.4
7
+ - 2.5
8
+ - 2.6
9
+ - 2.7
10
+ - jruby-9.2.9.0
11
+ - ruby-head
12
+ - jruby-head
13
+
14
+ matrix:
15
+ fast_finish: true
16
+ allow_failures:
17
+ - rvm: ruby-head
18
+ - rvm: jruby-head
19
+
9
20
  before_install:
10
- - gem install bundler
11
21
  - sudo apt-get -y install openssh-server
12
22
  - ssh-keygen -q -t rsa -N "" -f ~/.ssh/id_rsa
13
- - cp $HOME/.ssh/id_rsa.pub $HOME/.ssh/authorized_keys
23
+ - cp $HOME/.ssh/id_rsa.pub $HOME/.ssh/authorized_keys
data/Gemfile CHANGED
@@ -1,6 +1,4 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in datacenter.gemspec
4
- gemspec
5
-
6
- gem 'coveralls', require: false
4
+ gemspec
data/README.md CHANGED
@@ -1,10 +1,9 @@
1
1
  # Datacenter
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/datacenter.png)](https://rubygems.org/gems/datacenter)
4
- [![Build Status](https://travis-ci.org/gabynaiman/datacenter.png?branch=master)](https://travis-ci.org/gabynaiman/datacenter)
5
- [![Coverage Status](https://coveralls.io/repos/gabynaiman/datacenter/badge.png?branch=master)](https://coveralls.io/r/gabynaiman/datacenter?branch=master)
6
- [![Code Climate](https://codeclimate.com/github/gabynaiman/datacenter.png)](https://codeclimate.com/github/gabynaiman/datacenter)
7
- [![Dependency Status](https://gemnasium.com/gabynaiman/datacenter.png)](https://gemnasium.com/gabynaiman/datacenter)
3
+ [![Gem Version](https://badge.fury.io/rb/datacenter.svg)](https://rubygems.org/gems/datacenter)
4
+ [![Build Status](https://travis-ci.org/gabynaiman/datacenter.svg?branch=master)](https://travis-ci.org/gabynaiman/datacenter)
5
+ [![Coverage Status](https://coveralls.io/repos/gabynaiman/datacenter/badge.svg?branch=master)](https://coveralls.io/r/gabynaiman/datacenter?branch=master)
6
+ [![Code Climate](https://codeclimate.com/github/gabynaiman/datacenter.svg)](https://codeclimate.com/github/gabynaiman/datacenter)
8
7
 
9
8
  Manage and monitor servers and processes
10
9
 
data/Rakefile CHANGED
@@ -3,17 +3,23 @@ require 'rake/testtask'
3
3
 
4
4
  Rake::TestTask.new(:spec) do |t|
5
5
  t.libs << 'spec'
6
- t.pattern = 'spec/**/*_spec.rb'
6
+ t.libs << 'lib'
7
+ t.pattern = ENV['DIR'] ? File.join(ENV['DIR'], '**', '*_spec.rb') : 'spec/**/*_spec.rb'
7
8
  t.verbose = false
8
9
  t.warning = false
10
+ t.loader = nil if ENV['TEST']
11
+ ENV['TEST'], ENV['LINE'] = ENV['TEST'].split(':') if ENV['TEST'] && !ENV['LINE']
12
+ t.options = ''
13
+ t.options << "--name=/#{ENV['NAME']}/ " if ENV['NAME']
14
+ t.options << "-l #{ENV['LINE']} " if ENV['LINE'] && ENV['TEST']
9
15
  end
10
16
 
11
- desc 'Console'
17
+ task default: :spec
18
+
19
+ desc 'Pry console'
12
20
  task :console do
13
- require 'pry'
14
21
  require 'datacenter'
22
+ require 'pry'
15
23
  ARGV.clear
16
24
  Pry.start
17
25
  end
18
-
19
- task default: :spec
@@ -18,13 +18,14 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_dependency 'net-ssh', '~> 2.9.2'
21
+ spec.add_dependency 'net-ssh', '~> 5.2'
22
22
  spec.add_dependency 'class_config'
23
23
 
24
- spec.add_development_dependency 'bundler', '~> 1.3'
25
- spec.add_development_dependency 'rake'
26
- spec.add_development_dependency 'minitest', '~> 4.7'
27
- spec.add_development_dependency 'turn', '~> 0.9'
28
- spec.add_development_dependency 'simplecov'
29
- spec.add_development_dependency 'pry-nav'
24
+ spec.add_development_dependency 'rake', '~> 13.0'
25
+ spec.add_development_dependency 'minitest', '~> 5.0', '< 5.11'
26
+ spec.add_development_dependency 'minitest-colorin', '~> 0.1'
27
+ spec.add_development_dependency 'minitest-line', '~> 0.6'
28
+ spec.add_development_dependency 'simplecov', '~> 0.12'
29
+ spec.add_development_dependency 'coveralls', '~> 0.8'
30
+ spec.add_development_dependency 'pry-nav', '~> 0.2'
30
31
  end
@@ -10,4 +10,9 @@ module Datacenter
10
10
  attr_config :process_cache_expiration, 2
11
11
  end
12
12
 
13
- Dir.glob(File.expand_path('datacenter/**/*.rb', File.dirname(__FILE__))).sort.each { |f| require f }
13
+ Dir.glob(File.expand_path('datacenter/**/*.rb', File.dirname(__FILE__))).sort.each { |f| require f }
14
+
15
+ if RUBY_ENGINE == 'jruby'
16
+ Net::SSH::Transport::Algorithms::ALGORITHMS.values.each { |algs| algs.reject! { |a| a =~ /^ecd(sa|h)-sha2/ } }
17
+ Net::SSH::KnownHosts::SUPPORTED_TYPE.reject! { |t| t =~ /^ecd(sa|h)-sha2/ }
18
+ end
@@ -9,8 +9,9 @@ module Datacenter
9
9
 
10
10
  def ips
11
11
  shell.run('ifconfig')
12
- .scan(/inet addr:(([0-9]*\.){3}[0-9]*)/)
13
- .map { |s| s[0] }
12
+ .split("\n")
13
+ .select { |l| l.strip.start_with? 'inet ' }
14
+ .map { |l| l.match(/(([0-9]+\.){3}[0-9]+)/).to_s }
14
15
  end
15
16
 
16
17
  def name
@@ -29,7 +29,16 @@ module Datacenter
29
29
  end
30
30
 
31
31
  def alive?
32
- alive = !shell.run("ps -p #{pid} | grep #{pid}").empty?
32
+ command = %Q{
33
+ if [ -d "#{proc_dir}" ]; then
34
+ echo -n "true"
35
+ else
36
+ echo -n "false"
37
+ fi
38
+ }
39
+
40
+ alive = shell.run(command) == 'true'
41
+
33
42
  Datacenter.logger.info(self.class) { "pid: #{pid} - ALIVE: #{alive}" } if !alive
34
43
  alive
35
44
  end
@@ -62,8 +71,12 @@ module Datacenter
62
71
  end
63
72
  end
64
73
 
74
+ def proc_dir
75
+ File.join '/proc', pid.to_s
76
+ end
77
+
65
78
  def proc_file(name)
66
- filename = File.join '/proc', pid.to_s, name.to_s
79
+ filename = File.join proc_dir, name.to_s
67
80
  shell.run "cat #{filename}"
68
81
  end
69
82
 
@@ -28,7 +28,7 @@ module Datacenter
28
28
  err: options[:err] || StringIO.new
29
29
  }
30
30
 
31
- if RUBY_ENGINE == 'jruby'
31
+ if RUBY_ENGINE == 'jruby' && JRUBY_VERSION < '9.0.0.0'
32
32
  run_system command, opts
33
33
  else
34
34
  run_open3 command, opts
@@ -7,7 +7,7 @@ module Datacenter
7
7
  end
8
8
 
9
9
  def open
10
- @session ||= Net::SSH.start *args
10
+ @session ||= Net::SSH.start(*args)
11
11
  end
12
12
 
13
13
  def close
@@ -26,7 +26,7 @@ module Datacenter
26
26
  end
27
27
 
28
28
  def self.open(*args)
29
- shell = new *args
29
+ shell = new(*args)
30
30
  shell.open
31
31
  yield shell
32
32
  ensure
@@ -1,3 +1,3 @@
1
1
  module Datacenter
2
- VERSION = '0.4.0'
2
+ VERSION = '0.5.1'
3
3
  end
@@ -40,7 +40,7 @@
40
40
  RX bytes:110494415 (110.4 MB) TX bytes:21453491 (21.4 MB)
41
41
 
42
42
  lo Link encap:Local Loopback
43
- inet addr:127.0.0.1 Mask:255.0.0.0
43
+ inet 127.0.0.1 Mask:255.0.0.0
44
44
  inet6 addr: ::1/128 Scope:Host
45
45
  UP LOOPBACK RUNNING MTU:16436 Metric:1
46
46
  RX packets:24200 errors:0 dropped:0 overruns:0 frame:0
@@ -154,4 +154,10 @@
154
154
  VmLib: 27732 kB
155
155
  VmPTE: 556 kB
156
156
  VmSwap: 0 kB
157
- Threads: 4
157
+ Threads: 4
158
+
159
+ "\n if [ -d \"/proc/-22803\" ]; then \n echo -n \"true\"\n else\n echo -n \"false\"\n fi\n ": |
160
+ false
161
+
162
+ "\n if [ -d \"/proc/22803\" ]; then \n echo -n \"true\"\n else\n echo -n \"false\"\n fi\n ": |
163
+ true
@@ -1,8 +1,5 @@
1
1
  require 'simplecov'
2
2
  require 'coveralls'
3
3
 
4
- SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
5
- SimpleCov::Formatter::HTMLFormatter,
6
- Coveralls::SimpleCov::Formatter
7
- ]
4
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new [SimpleCov::Formatter::HTMLFormatter, Coveralls::SimpleCov::Formatter]
8
5
  SimpleCov.start
@@ -1,16 +1,10 @@
1
1
  require 'coverage_helper'
2
2
  require 'minitest/autorun'
3
- require 'turn'
3
+ require 'minitest/colorin'
4
4
  require 'yaml'
5
5
  require 'datacenter'
6
6
  require 'pry-nav'
7
7
 
8
- Turn.config do |c|
9
- c.format = :pretty
10
- c.natural = true
11
- c.ansi = true
12
- end
13
-
14
8
  class Module
15
9
  include Minitest::Spec::DSL
16
10
  end
@@ -4,7 +4,7 @@ describe Datacenter::Shell do
4
4
 
5
5
  module SharedExpamples
6
6
 
7
- let(:shell) { shell_class.new *shell_args }
7
+ let(:shell) { shell_class.new(*shell_args) }
8
8
 
9
9
  it 'Success' do
10
10
  filename = File.join '/tmp', Time.now.to_i.to_s
metadata CHANGED
@@ -1,127 +1,147 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datacenter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gabriel Naiman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-13 00:00:00.000000000 Z
11
+ date: 2020-08-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-ssh
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.9.2
19
+ version: '5.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 2.9.2
26
+ version: '5.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: class_config
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: bundler
42
+ name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.3'
47
+ version: '13.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.3'
54
+ version: '13.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rake
56
+ name: minitest
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '5.0'
62
+ - - "<"
63
+ - !ruby/object:Gem::Version
64
+ version: '5.11'
62
65
  type: :development
63
66
  prerelease: false
64
67
  version_requirements: !ruby/object:Gem::Requirement
65
68
  requirements:
66
- - - '>='
69
+ - - "~>"
67
70
  - !ruby/object:Gem::Version
68
- version: '0'
71
+ version: '5.0'
72
+ - - "<"
73
+ - !ruby/object:Gem::Version
74
+ version: '5.11'
69
75
  - !ruby/object:Gem::Dependency
70
- name: minitest
76
+ name: minitest-colorin
71
77
  requirement: !ruby/object:Gem::Requirement
72
78
  requirements:
73
- - - ~>
79
+ - - "~>"
74
80
  - !ruby/object:Gem::Version
75
- version: '4.7'
81
+ version: '0.1'
76
82
  type: :development
77
83
  prerelease: false
78
84
  version_requirements: !ruby/object:Gem::Requirement
79
85
  requirements:
80
- - - ~>
86
+ - - "~>"
81
87
  - !ruby/object:Gem::Version
82
- version: '4.7'
88
+ version: '0.1'
83
89
  - !ruby/object:Gem::Dependency
84
- name: turn
90
+ name: minitest-line
85
91
  requirement: !ruby/object:Gem::Requirement
86
92
  requirements:
87
- - - ~>
93
+ - - "~>"
88
94
  - !ruby/object:Gem::Version
89
- version: '0.9'
95
+ version: '0.6'
90
96
  type: :development
91
97
  prerelease: false
92
98
  version_requirements: !ruby/object:Gem::Requirement
93
99
  requirements:
94
- - - ~>
100
+ - - "~>"
95
101
  - !ruby/object:Gem::Version
96
- version: '0.9'
102
+ version: '0.6'
97
103
  - !ruby/object:Gem::Dependency
98
104
  name: simplecov
99
105
  requirement: !ruby/object:Gem::Requirement
100
106
  requirements:
101
- - - '>='
107
+ - - "~>"
102
108
  - !ruby/object:Gem::Version
103
- version: '0'
109
+ version: '0.12'
104
110
  type: :development
105
111
  prerelease: false
106
112
  version_requirements: !ruby/object:Gem::Requirement
107
113
  requirements:
108
- - - '>='
114
+ - - "~>"
109
115
  - !ruby/object:Gem::Version
110
- version: '0'
116
+ version: '0.12'
117
+ - !ruby/object:Gem::Dependency
118
+ name: coveralls
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '0.8'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '0.8'
111
131
  - !ruby/object:Gem::Dependency
112
132
  name: pry-nav
113
133
  requirement: !ruby/object:Gem::Requirement
114
134
  requirements:
115
- - - '>='
135
+ - - "~>"
116
136
  - !ruby/object:Gem::Version
117
- version: '0'
137
+ version: '0.2'
118
138
  type: :development
119
139
  prerelease: false
120
140
  version_requirements: !ruby/object:Gem::Requirement
121
141
  requirements:
122
- - - '>='
142
+ - - "~>"
123
143
  - !ruby/object:Gem::Version
124
- version: '0'
144
+ version: '0.2'
125
145
  description: Manage and monitor servers and processes
126
146
  email:
127
147
  - gabynaiman@gmail.com
@@ -129,11 +149,11 @@ executables: []
129
149
  extensions: []
130
150
  extra_rdoc_files: []
131
151
  files:
132
- - .coveralls.yml
133
- - .gitignore
134
- - .ruby-gemset
135
- - .ruby-version
136
- - .travis.yml
152
+ - ".coveralls.yml"
153
+ - ".gitignore"
154
+ - ".ruby-gemset"
155
+ - ".ruby-version"
156
+ - ".travis.yml"
137
157
  - Gemfile
138
158
  - LICENSE.txt
139
159
  - README.md
@@ -166,17 +186,16 @@ require_paths:
166
186
  - lib
167
187
  required_ruby_version: !ruby/object:Gem::Requirement
168
188
  requirements:
169
- - - '>='
189
+ - - ">="
170
190
  - !ruby/object:Gem::Version
171
191
  version: '0'
172
192
  required_rubygems_version: !ruby/object:Gem::Requirement
173
193
  requirements:
174
- - - '>='
194
+ - - ">="
175
195
  - !ruby/object:Gem::Version
176
196
  version: '0'
177
197
  requirements: []
178
- rubyforge_project:
179
- rubygems_version: 2.4.8
198
+ rubygems_version: 3.1.2
180
199
  signing_key:
181
200
  specification_version: 4
182
201
  summary: Manage and monitor servers and processes