novawhiz 0.0.1 → 0.0.2

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 (2) hide show
  1. data/lib/novawhiz.rb +27 -0
  2. metadata +51 -53
data/lib/novawhiz.rb CHANGED
@@ -43,6 +43,7 @@ class NovaWhiz
43
43
  end
44
44
 
45
45
  def run_command(creds, cmd)
46
+ =begin
46
47
  Net::SSH::Simple.sync do
47
48
  r = ssh(
48
49
  creds[:ip],
@@ -55,6 +56,32 @@ class NovaWhiz
55
56
  puts r.stdout
56
57
  puts r.stderr
57
58
  end
59
+ =end
60
+
61
+ res = Net::SSH::Simple.sync do
62
+ ssh(creds[:ip], '/bin/sh', :user => creds[:user], :key_data => [creds[:key]]) do |e,c,d|
63
+ case e
64
+ when :start
65
+ c.send_data "#{cmd}\n"
66
+ c.eof!
67
+ when :stdout
68
+ # read the input line-wise (it *will* arrive fragmented!)
69
+ (@buf ||= '') << d
70
+ while line = @buf.slice!(/(.*)\r?\n/)
71
+ yield line if block_given?
72
+ end
73
+ when :stderr
74
+ (@buf ||= '') << d
75
+ while line = @buf.slice!(/(.*)\r?\n/)
76
+ yield line if block_given?
77
+ end
78
+ end
79
+ end
80
+ end
81
+ if res.exit_code != 0
82
+ raise "command #{cmd} failed on #{creds[:ip]}:\n#{res.stdout}\n#{res.stderr}"
83
+ end
84
+ res
58
85
  end
59
86
 
60
87
  # boot an instance and return creds
metadata CHANGED
@@ -1,77 +1,75 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: novawhiz
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.1
3
+ version: !ruby/object:Gem::Version
5
4
  prerelease:
5
+ version: 0.0.2
6
6
  platform: ruby
7
- authors:
8
- - tim miller
7
+ authors:
8
+ - tim miller
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-11 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: openstack
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
30
- - !ruby/object:Gem::Dependency
31
- name: net-ssh-simple
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ! '>='
36
- - !ruby/object:Gem::Version
37
- version: '0'
38
- type: :runtime
39
- prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
12
+
13
+ date: 2012-09-11 00:00:00 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: openstack
17
+ prerelease: false
18
+ requirement: &id001 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ type: :runtime
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
27
+ name: net-ssh-simple
28
+ prerelease: false
29
+ requirement: &id002 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: "0"
35
+ type: :runtime
36
+ version_requirements: *id002
46
37
  description: library and command line tool for simplifying openstack nova operations
47
38
  email: none@example.com
48
39
  executables: []
40
+
49
41
  extensions: []
42
+
50
43
  extra_rdoc_files: []
51
- files:
52
- - lib/novawhiz.rb
44
+
45
+ files:
46
+ - lib/novawhiz.rb
53
47
  homepage: http://rubygems.org/gems/novawhiz
54
48
  licenses: []
49
+
55
50
  post_install_message:
56
51
  rdoc_options: []
57
- require_paths:
58
- - lib
59
- required_ruby_version: !ruby/object:Gem::Requirement
52
+
53
+ require_paths:
54
+ - lib
55
+ required_ruby_version: !ruby/object:Gem::Requirement
60
56
  none: false
61
- requirements:
62
- - - ! '>='
63
- - !ruby/object:Gem::Version
64
- version: '0'
65
- required_rubygems_version: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: "0"
61
+ required_rubygems_version: !ruby/object:Gem::Requirement
66
62
  none: false
67
- requirements:
68
- - - ! '>='
69
- - !ruby/object:Gem::Version
70
- version: '0'
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: "0"
71
67
  requirements: []
68
+
72
69
  rubyforge_project:
73
70
  rubygems_version: 1.8.24
74
71
  signing_key:
75
72
  specification_version: 3
76
73
  summary: simplify nova operations
77
74
  test_files: []
75
+