nephele 0.1.1 → 0.1.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.
data/Rakefile CHANGED
@@ -27,6 +27,12 @@ Jeweler::Tasks.new do |gem|
27
27
  gem.homepage = 'https://github.com/jodell/nephele'
28
28
  end
29
29
 
30
+ desc 'rubygems.org publishing'
31
+ task :push do
32
+ ver = "nephele-#{File.read('VERSION')}"
33
+ sh "gem build nephele.gemspec; gem push #{ver}.gem && rm #{ver}.gem"
34
+ end
35
+
30
36
  task :default => :'test:unit'
31
37
 
32
38
  task :tags do
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.1.2
data/bin/neph CHANGED
@@ -17,6 +17,7 @@ class Nephele::Runner < Optitron::CLI
17
17
  class_opt 'personality', 'comma-separated tuple of contents,targetfile to be placed at startup', :type => :string
18
18
  class_opt 'bootstrap', "optional bootstrapper URI, defaults to #{JODELL_CHEF_BOOTSTRAPPER}", :type => :string
19
19
  class_opt 'recipe', "run this recipe after bootstrapping", :type => :string
20
+ class_opt 'vpn-credential-file', 'specify a vpnpass file to seed the target vm', :type => :string
20
21
 
21
22
  desc 'Display a list of servers'
22
23
  def list
@@ -51,12 +52,17 @@ class Nephele::Runner < Optitron::CLI
51
52
  desc "Creates a node with name, image name, flavor"
52
53
  opt 'count', 'create foo, foo2, foo3, ...', :type => :numeric
53
54
  def create(name, image, flavor)
55
+ personality = Nephele::Rackspace::Util.personality(params['personality'] || :default)
56
+ if vpnfile = params['vpn-credential-file'] && !vpnfile.empty?
57
+ personality.delete_if { |k, v| v == '/root/.vpnpass' }
58
+ personality[vpnfile] = '/root/.vpnpass'
59
+ end
54
60
  (params['count'] || 1).to_i.times do |i|
55
61
  @node = service.create \
56
62
  :name => name + "#{params['count'] ? i + 1 : ''}",
57
63
  :image => Nephele::Rackspace.image_lookup(image),
58
64
  :flavor => flavor,
59
- :personality => Nephele::Rackspace::Util.personality(params['personality'] || :default)
65
+ :personality => personality
60
66
  end
61
67
  end
62
68
 
data/bin/nephele CHANGED
@@ -17,6 +17,7 @@ class Nephele::Runner < Optitron::CLI
17
17
  class_opt 'personality', 'comma-separated tuple of contents,targetfile to be placed at startup', :type => :string
18
18
  class_opt 'bootstrap', "optional bootstrapper URI, defaults to #{JODELL_CHEF_BOOTSTRAPPER}", :type => :string
19
19
  class_opt 'recipe', "run this recipe after bootstrapping", :type => :string
20
+ class_opt 'vpn-credential-file', 'specify a vpnpass file to seed the target vm', :type => :string
20
21
 
21
22
  desc 'Display a list of servers'
22
23
  def list
@@ -51,12 +52,17 @@ class Nephele::Runner < Optitron::CLI
51
52
  desc "Creates a node with name, image name, flavor"
52
53
  opt 'count', 'create foo, foo2, foo3, ...', :type => :numeric
53
54
  def create(name, image, flavor)
55
+ personality = Nephele::Rackspace::Util.personality(params['personality'] || :default)
56
+ if vpnfile = params['vpn-credential-file'] && !vpnfile.empty?
57
+ personality.delete_if { |k, v| v == '/root/.vpnpass' }
58
+ personality[vpnfile] = '/root/.vpnpass'
59
+ end
54
60
  (params['count'] || 1).to_i.times do |i|
55
61
  @node = service.create \
56
62
  :name => name + "#{params['count'] ? i + 1 : ''}",
57
63
  :image => Nephele::Rackspace.image_lookup(image),
58
64
  :flavor => flavor,
59
- :personality => Nephele::Rackspace::Util.personality(params['personality'] || :default)
65
+ :personality => personality
60
66
  end
61
67
  end
62
68
 
@@ -91,7 +91,8 @@ module Nephele::Rackspace::Util
91
91
  def personality(personality)
92
92
  if personality == :default
93
93
  { generate_key_file => '/root/.ssh/authorized_keys',
94
- known_hosts_file => '/root/.ssh/known_hosts' }
94
+ known_hosts_file => '/root/.ssh/known_hosts',
95
+ vpn_pass_file => '/root/.vpnpass' }
95
96
  else
96
97
  acc = {}
97
98
  personality.split(',').each_slice(2) { |(k, v)| acc[k] = v }
@@ -103,14 +104,18 @@ module Nephele::Rackspace::Util
103
104
  '/tmp/nephele_key_file'.tap do |file| File.open(file, 'w') { |f| f << my_default_key }; end
104
105
  end
105
106
 
106
- def my_default_key
107
- File.read(File.expand_path('~/.ssh/id_dsa.pub'))
107
+ def my_default_key(keyfile = File.expand_path('~/.ssh/id_dsa.pub'))
108
+ File.read(keyfile)
108
109
  end
109
110
 
110
111
  def known_hosts_file
111
112
  '/tmp/known_hosts.nephele'.tap do |file| File.open(file, 'w') { |f| f << known_hosts }; end
112
113
  end
113
114
 
115
+ def vpn_pass_file(passfile = File.expand_path('~/.vpnpass'))
116
+ File.exists?(passfile) && passfile
117
+ end
118
+
114
119
  # Github
115
120
  def known_hosts
116
121
  <<-EoS
data/nephele.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{nephele}
8
- s.version = "0.1.1"
8
+ s.version = "0.1.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jeffrey O'Dell"]
12
- s.date = %q{2011-04-11}
12
+ s.date = %q{2011-04-12}
13
13
  s.description = %q{Light administration utility for popular cloud services}
14
14
  s.email = %q{jeffrey.odell@gmail.com}
15
15
  s.executables = ["neph", "nephele"]
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nephele
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 31
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 1
10
- version: 0.1.1
9
+ - 2
10
+ version: 0.1.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jeffrey O'Dell
@@ -15,13 +15,11 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-04-11 00:00:00 -05:00
18
+ date: 2011-04-12 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- name: rake
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
22
+ version_requirements: &id001 !ruby/object:Gem::Requirement
25
23
  none: false
26
24
  requirements:
27
25
  - - ">="
@@ -30,12 +28,12 @@ dependencies:
30
28
  segments:
31
29
  - 0
32
30
  version: "0"
31
+ prerelease: false
33
32
  type: :runtime
34
- version_requirements: *id001
33
+ requirement: *id001
34
+ name: rake
35
35
  - !ruby/object:Gem::Dependency
36
- name: cloudservers
37
- prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
36
+ version_requirements: &id002 !ruby/object:Gem::Requirement
39
37
  none: false
40
38
  requirements:
41
39
  - - ">="
@@ -44,12 +42,12 @@ dependencies:
44
42
  segments:
45
43
  - 0
46
44
  version: "0"
45
+ prerelease: false
47
46
  type: :runtime
48
- version_requirements: *id002
47
+ requirement: *id002
48
+ name: cloudservers
49
49
  - !ruby/object:Gem::Dependency
50
- name: awesome_print
51
- prerelease: false
52
- requirement: &id003 !ruby/object:Gem::Requirement
50
+ version_requirements: &id003 !ruby/object:Gem::Requirement
53
51
  none: false
54
52
  requirements:
55
53
  - - ">="
@@ -58,12 +56,12 @@ dependencies:
58
56
  segments:
59
57
  - 0
60
58
  version: "0"
59
+ prerelease: false
61
60
  type: :runtime
62
- version_requirements: *id003
61
+ requirement: *id003
62
+ name: awesome_print
63
63
  - !ruby/object:Gem::Dependency
64
- name: optitron
65
- prerelease: false
66
- requirement: &id004 !ruby/object:Gem::Requirement
64
+ version_requirements: &id004 !ruby/object:Gem::Requirement
67
65
  none: false
68
66
  requirements:
69
67
  - - ">="
@@ -72,12 +70,12 @@ dependencies:
72
70
  segments:
73
71
  - 0
74
72
  version: "0"
73
+ prerelease: false
75
74
  type: :runtime
76
- version_requirements: *id004
75
+ requirement: *id004
76
+ name: optitron
77
77
  - !ruby/object:Gem::Dependency
78
- name: wirble
79
- prerelease: false
80
- requirement: &id005 !ruby/object:Gem::Requirement
78
+ version_requirements: &id005 !ruby/object:Gem::Requirement
81
79
  none: false
82
80
  requirements:
83
81
  - - ">="
@@ -86,12 +84,12 @@ dependencies:
86
84
  segments:
87
85
  - 0
88
86
  version: "0"
87
+ prerelease: false
89
88
  type: :development
90
- version_requirements: *id005
89
+ requirement: *id005
90
+ name: wirble
91
91
  - !ruby/object:Gem::Dependency
92
- name: shoulda
93
- prerelease: false
94
- requirement: &id006 !ruby/object:Gem::Requirement
92
+ version_requirements: &id006 !ruby/object:Gem::Requirement
95
93
  none: false
96
94
  requirements:
97
95
  - - ">="
@@ -100,12 +98,12 @@ dependencies:
100
98
  segments:
101
99
  - 0
102
100
  version: "0"
101
+ prerelease: false
103
102
  type: :development
104
- version_requirements: *id006
103
+ requirement: *id006
104
+ name: shoulda
105
105
  - !ruby/object:Gem::Dependency
106
- name: mocha
107
- prerelease: false
108
- requirement: &id007 !ruby/object:Gem::Requirement
106
+ version_requirements: &id007 !ruby/object:Gem::Requirement
109
107
  none: false
110
108
  requirements:
111
109
  - - ">="
@@ -114,12 +112,12 @@ dependencies:
114
112
  segments:
115
113
  - 0
116
114
  version: "0"
115
+ prerelease: false
117
116
  type: :development
118
- version_requirements: *id007
117
+ requirement: *id007
118
+ name: mocha
119
119
  - !ruby/object:Gem::Dependency
120
- name: autotest
121
- prerelease: false
122
- requirement: &id008 !ruby/object:Gem::Requirement
120
+ version_requirements: &id008 !ruby/object:Gem::Requirement
123
121
  none: false
124
122
  requirements:
125
123
  - - ">="
@@ -128,12 +126,12 @@ dependencies:
128
126
  segments:
129
127
  - 0
130
128
  version: "0"
129
+ prerelease: false
131
130
  type: :development
132
- version_requirements: *id008
131
+ requirement: *id008
132
+ name: autotest
133
133
  - !ruby/object:Gem::Dependency
134
- name: autotest-fsevent
135
- prerelease: false
136
- requirement: &id009 !ruby/object:Gem::Requirement
134
+ version_requirements: &id009 !ruby/object:Gem::Requirement
137
135
  none: false
138
136
  requirements:
139
137
  - - ">="
@@ -142,12 +140,12 @@ dependencies:
142
140
  segments:
143
141
  - 0
144
142
  version: "0"
143
+ prerelease: false
145
144
  type: :development
146
- version_requirements: *id009
145
+ requirement: *id009
146
+ name: autotest-fsevent
147
147
  - !ruby/object:Gem::Dependency
148
- name: autotest-growl
149
- prerelease: false
150
- requirement: &id010 !ruby/object:Gem::Requirement
148
+ version_requirements: &id010 !ruby/object:Gem::Requirement
151
149
  none: false
152
150
  requirements:
153
151
  - - ">="
@@ -156,12 +154,12 @@ dependencies:
156
154
  segments:
157
155
  - 0
158
156
  version: "0"
157
+ prerelease: false
159
158
  type: :development
160
- version_requirements: *id010
159
+ requirement: *id010
160
+ name: autotest-growl
161
161
  - !ruby/object:Gem::Dependency
162
- name: bundler
163
- prerelease: false
164
- requirement: &id011 !ruby/object:Gem::Requirement
162
+ version_requirements: &id011 !ruby/object:Gem::Requirement
165
163
  none: false
166
164
  requirements:
167
165
  - - ">="
@@ -170,12 +168,12 @@ dependencies:
170
168
  segments:
171
169
  - 0
172
170
  version: "0"
171
+ prerelease: false
173
172
  type: :development
174
- version_requirements: *id011
173
+ requirement: *id011
174
+ name: bundler
175
175
  - !ruby/object:Gem::Dependency
176
- name: jeweler
177
- prerelease: false
178
- requirement: &id012 !ruby/object:Gem::Requirement
176
+ version_requirements: &id012 !ruby/object:Gem::Requirement
179
177
  none: false
180
178
  requirements:
181
179
  - - ~>
@@ -186,8 +184,10 @@ dependencies:
186
184
  - 5
187
185
  - 2
188
186
  version: 1.5.2
187
+ prerelease: false
189
188
  type: :development
190
- version_requirements: *id012
189
+ requirement: *id012
190
+ name: jeweler
191
191
  description: Light administration utility for popular cloud services
192
192
  email: jeffrey.odell@gmail.com
193
193
  executables: