consolr 1.0.0 → 1.0.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.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/lib/consolr/version.rb +1 -1
  3. data/lib/consolr.rb +37 -43
  4. metadata +40 -59
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 9e0c169d293da7fe9f2a8abce0ccd0dbdfc3db67
4
+ data.tar.gz: 5c12285ad2711d4c6fb006c1f20e09178d828095
5
+ SHA512:
6
+ metadata.gz: 9df38b3ca9fcb823abe08870b3f2d5d41410feb979bac3fffd21fa6e7b99bf91f3d8ac1b52d794cecbbbde120e6b10bf61624be2972550791921c4deabea6b66
7
+ data.tar.gz: d33f272bf6a0667b95a072f791255607cf8ecb9d8aa1219c535cfc1b4cbeda84e294ede08fabee6b25e8f32d27ce44a3699ae31752757041fca4da0f2112fea9
@@ -1,3 +1,3 @@
1
1
  module Consolr
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
data/lib/consolr.rb CHANGED
@@ -1,6 +1,9 @@
1
+ $LOAD_PATH.unshift('./lib/')
2
+
1
3
  require 'collins_auth'
2
4
  require 'optparse'
3
5
  require 'yaml'
6
+ require 'consolr/version'
4
7
 
5
8
  module Consolr
6
9
  class Console
@@ -11,12 +14,12 @@ module Consolr
11
14
  config_file = [ENV['CONSOLR_CONFIG'],
12
15
  '~/.consolr.yml', '~/.consolr.yaml',
13
16
  '/etc/consolr.yml', '/etc/consolr.yaml',
14
- '/var/db/consolr.yml', '/var/db/consolr.yaml'].compact.find do |config_file|
15
- File.readable? config_file and File.size(config_file) > 0
17
+ '/var/db/consolr.yml', '/var/db/consolr.yaml'].compact.find do |conf|
18
+ File.readable?(File.expand_path(conf, __FILE__)) and File.size(File.expand_path(conf, __FILE__)) > 0
16
19
  end
17
20
 
18
21
  config_params = begin
19
- YAML.load(File.open(config_file))
22
+ YAML.load(File.open(File.expand_path(config_file, __FILE__)))
20
23
  rescue TypeError => e
21
24
  puts "-------"
22
25
  puts "Failed to load Configuration File ... "
@@ -72,24 +75,24 @@ module Consolr
72
75
 
73
76
  @options = {}
74
77
  @opt_parser = OptionParser.new do |opt|
75
- opt.banner = "Usage: consolr [OPTIONS]"
76
- opt.separator ""
77
- opt.separator "Options"
78
-
79
- opt.on("-c","--console","console into node via SOL") { options[:console] = true }
80
- opt.on("-d","--dangerous","list dangerous stuff") { options[:dangerous] = true }
81
- opt.on("-f","--force","force run dangerous actions") { options[:force] = true }
82
- opt.on("-h","--help","help") { exit 0 }
83
- opt.on("-H","--hostname ASSET","asset hostname") { |hostname| options[:hostname] = hostname }
84
- opt.on("-i","--identify","turn on chassis UID") { options[:identify] = true }
85
- opt.on("-k","--kick","kick if someone is hogging the console") { options[:kick] = true }
86
- opt.on("-l","--log LOG","System Event Log (SEL) [list|clear]") { |log| options[:log] = log }
87
- opt.on("-o","--on","turn on node") { options[:on] = true }
88
- opt.on("-r","--reboot","restart node") { options[:reboot] = true }
89
- opt.on("-s","--sdr","Sensor Data Repository (SDR)") { options[:sdr] = true }
90
- opt.on("-t","--tag ASSET","asset tag") { |tag| options[:tag] = tag }
91
- opt.on("-x","--off","turn off node") { options[:off] = true }
78
+ opt.banner = 'Usage: consolr [OPTIONS]'
79
+ opt.separator ''
80
+ opt.separator 'Options'
92
81
 
82
+ opt.on('-c', '--console', 'console into node via SOL') { options[:console] = true }
83
+ opt.on('-d', '--dangerous', 'list dangerous stuff') { options[:dangerous] = true }
84
+ opt.on('-f', '--force', 'force run dangerous actions') { options[:force] = true }
85
+ opt.on('-H', '--hostname ASSET', 'asset hostname') { |hostname| options[:hostname] = hostname }
86
+ opt.on('-i', '--identify', 'turn on chassis UID') { options[:identify] = true }
87
+ opt.on('-k', '--kick', 'kick if someone is hogging the console') { options[:kick] = true }
88
+ opt.on('-l', '--log LOG', 'System Event Log (SEL) [list|clear]') { |log| options[:log] = log }
89
+ opt.on('-o', '--on', 'turn on node') { options[:on] = true }
90
+ opt.on('-r', '--reboot', 'restart node') { options[:reboot] = true }
91
+ opt.on('-s', '--sdr', 'Sensor Data Repository (SDR)') { options[:sdr] = true }
92
+ opt.on('-t', '--tag ASSET', 'asset tag') { |tag| options[:tag] = tag }
93
+ opt.on('-x', '--off', 'turn off node') { options[:off] = true }
94
+ opt.on_tail('-h', '--help', 'help') { puts opt; exit 0 }
95
+ opt.on_tail('-v', '--version', 'version') { puts Consolr::VERSION; exit 0 }
93
96
  end
94
97
  end
95
98
 
@@ -100,7 +103,7 @@ module Consolr
100
103
 
101
104
  def start
102
105
  @opt_parser.parse! # extract from ARGV[]
103
- abort("Please pass either the asset tag or hostname" if options[:tag].nil? and options[:hostname].nil?
106
+ abort("Please pass either the asset tag or hostname") if options[:tag].nil? and options[:hostname].nil?
104
107
 
105
108
  abort("Cannot find #{@ipmitool_exec}") unless File.exist?(@ipmitool_exec)
106
109
 
@@ -142,36 +145,27 @@ module Consolr
142
145
  puts "Cannot run dangerous commands on #{@node.hostname} (#{@node.tag} - #{@node.status})"
143
146
  abort dangerous_body
144
147
  end
145
-
148
+
146
149
  case
147
150
  when options[:console]
148
- puts "--> Opening SOL session (type ~~. to quit)"
149
- puts self.ipmitool_cmd("sol activate")
150
-
151
+ puts '--> Opening SOL session (type ~~. to quit)'
152
+ puts ipmitool_cmd('sol activate')
151
153
  when options[:kick]
152
- puts self.ipmitool_cmd("sol deactivate")
153
-
154
+ puts ipmitool_cmd('sol deactivate')
154
155
  when options[:identify]
155
- puts self.ipmitool_cmd("chassis identify")
156
-
156
+ puts ipmitool_cmd('chassis identify')
157
157
  when options[:sdr]
158
- puts self.ipmitool_cmd("sdr elist all")
159
-
160
- when options[:log] == "list"
161
- puts self.ipmitool_cmd("sel list")
162
-
163
- when options[:log] == "clear"
164
- puts self.ipmitool_cmd("sel clear")
165
-
158
+ puts ipmitool_cmd('sdr elist all')
159
+ when options[:log] == 'list'
160
+ puts ipmitool_cmd('sel list')
161
+ when options[:log] == 'clear'
162
+ puts ipmitool_cmd('sel clear')
166
163
  when options[:on]
167
- puts self.ipmitool_cmd("power on")
168
-
164
+ puts ipmitool_cmd('power on')
169
165
  when options[:off]
170
- puts self.ipmitool_cmd("power off")
171
-
166
+ puts ipmitool_cmd('power off')
172
167
  when options[:reboot]
173
- puts self.ipmitool_cmd("power cycle")
174
-
168
+ puts ipmitool_cmd('power cycle')
175
169
  else
176
170
  begin
177
171
  raise OptionParser::MissingArgument, "specify an action"
metadata CHANGED
@@ -1,52 +1,43 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: consolr
3
- version: !ruby/object:Gem::Version
4
- hash: 23
5
- prerelease: false
6
- segments:
7
- - 1
8
- - 0
9
- - 0
10
- version: 1.0.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.1
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Will Richard
14
8
  - Sashidhar Guntury
15
9
  autorequire:
16
10
  bindir: bin
17
11
  cert_chain: []
18
-
19
- date: 2015-07-20 00:00:00 -04:00
20
- default_executable:
21
- dependencies:
22
- - !ruby/object:Gem::Dependency
12
+ date: 2015-07-28 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
23
15
  name: collins_auth
24
- prerelease: false
25
- requirement: &id001 !ruby/object:Gem::Requirement
26
- none: false
27
- requirements:
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
28
18
  - - ~>
29
- - !ruby/object:Gem::Version
30
- hash: 31
31
- segments:
32
- - 0
33
- - 1
34
- - 2
19
+ - !ruby/object:Gem::Version
35
20
  version: 0.1.2
36
21
  type: :runtime
37
- version_requirements: *id001
38
- description: Consolr is a utility which speaks to Collins on our behalf and retrieves the address, username and password to connect to that node over IPMI. Passing different flags, we can performs a variety of taks on the node over IPMI. There are safeguards in place to prevent potentially catastrophic actions being performed on nodes.
39
- email:
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ~>
26
+ - !ruby/object:Gem::Version
27
+ version: 0.1.2
28
+ description: Consolr is a utility which speaks to Collins on our behalf and retrieves
29
+ the address, username and password to connect to that node over IPMI. Passing different
30
+ flags, we can performs a variety of taks on the node over IPMI. There are safeguards
31
+ in place to prevent potentially catastrophic actions being performed on nodes.
32
+ email:
40
33
  - will@tumblr.com
41
34
  - sashi@tumblr.com
42
35
  - collins-sm@googlegroups.com
43
- executables:
36
+ executables:
44
37
  - consolr
45
38
  extensions: []
46
-
47
39
  extra_rdoc_files: []
48
-
49
- files:
40
+ files:
50
41
  - Gemfile
51
42
  - LICENSE
52
43
  - README.md
@@ -54,39 +45,29 @@ files:
54
45
  - consolr.gemspec
55
46
  - lib/consolr.rb
56
47
  - lib/consolr/version.rb
57
- has_rdoc: true
58
48
  homepage: https://github.com/tumblr/collins/tree/master/support/ruby/consolr
59
- licenses:
49
+ licenses:
60
50
  - Apache 2.0
51
+ metadata: {}
61
52
  post_install_message:
62
53
  rdoc_options: []
63
-
64
- require_paths:
54
+ require_paths:
65
55
  - lib
66
- required_ruby_version: !ruby/object:Gem::Requirement
67
- none: false
68
- requirements:
69
- - - ">="
70
- - !ruby/object:Gem::Version
71
- hash: 3
72
- segments:
73
- - 0
74
- version: "0"
75
- required_rubygems_version: !ruby/object:Gem::Requirement
76
- none: false
77
- requirements:
78
- - - ">="
79
- - !ruby/object:Gem::Version
80
- hash: 3
81
- segments:
82
- - 0
83
- version: "0"
56
+ required_ruby_version: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - '>='
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ required_rubygems_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
84
66
  requirements: []
85
-
86
67
  rubyforge_project:
87
- rubygems_version: 1.3.7
68
+ rubygems_version: 2.0.14
88
69
  signing_key:
89
- specification_version: 3
90
- summary: consolr is a pure ruby wrapper over IPMI to allow Out of Band communiation with nodes.
70
+ specification_version: 4
71
+ summary: consolr is a pure ruby wrapper over IPMI to allow Out of Band communiation
72
+ with nodes.
91
73
  test_files: []
92
-