novawhiz 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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
+