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 +6 -0
- data/VERSION +1 -1
- data/bin/neph +7 -1
- data/bin/nephele +7 -1
- data/lib/nephele/rackspace.rb +8 -3
- data/nephele.gemspec +2 -2
- metadata +52 -52
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
|
+
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 =>
|
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 =>
|
65
|
+
:personality => personality
|
60
66
|
end
|
61
67
|
end
|
62
68
|
|
data/lib/nephele/rackspace.rb
CHANGED
@@ -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(
|
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.
|
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-
|
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:
|
4
|
+
hash: 31
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.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-
|
18
|
+
date: 2011-04-12 00:00:00 -05:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
|
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
|
-
|
33
|
+
requirement: *id001
|
34
|
+
name: rake
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
|
-
|
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
|
-
|
47
|
+
requirement: *id002
|
48
|
+
name: cloudservers
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
|
-
|
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
|
-
|
61
|
+
requirement: *id003
|
62
|
+
name: awesome_print
|
63
63
|
- !ruby/object:Gem::Dependency
|
64
|
-
|
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
|
-
|
75
|
+
requirement: *id004
|
76
|
+
name: optitron
|
77
77
|
- !ruby/object:Gem::Dependency
|
78
|
-
|
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
|
-
|
89
|
+
requirement: *id005
|
90
|
+
name: wirble
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
|
-
|
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
|
-
|
103
|
+
requirement: *id006
|
104
|
+
name: shoulda
|
105
105
|
- !ruby/object:Gem::Dependency
|
106
|
-
|
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
|
-
|
117
|
+
requirement: *id007
|
118
|
+
name: mocha
|
119
119
|
- !ruby/object:Gem::Dependency
|
120
|
-
|
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
|
-
|
131
|
+
requirement: *id008
|
132
|
+
name: autotest
|
133
133
|
- !ruby/object:Gem::Dependency
|
134
|
-
|
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
|
-
|
145
|
+
requirement: *id009
|
146
|
+
name: autotest-fsevent
|
147
147
|
- !ruby/object:Gem::Dependency
|
148
|
-
|
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
|
-
|
159
|
+
requirement: *id010
|
160
|
+
name: autotest-growl
|
161
161
|
- !ruby/object:Gem::Dependency
|
162
|
-
|
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
|
-
|
173
|
+
requirement: *id011
|
174
|
+
name: bundler
|
175
175
|
- !ruby/object:Gem::Dependency
|
176
|
-
|
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
|
-
|
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:
|