datacenter 0.4.0 → 0.5.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
- 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