virtualmaster 0.1.0 → 0.1.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.
- data/lib/vmaster/callbacks/demo_callback.rb +10 -1
- data/lib/vmaster/helpers.rb +2 -2
- data/lib/vmaster/server_commands.rb +18 -11
- data/lib/vmaster/version.rb +1 -1
- metadata +12 -12
@@ -10,7 +10,16 @@ callback :demo do
|
|
10
10
|
end
|
11
11
|
|
12
12
|
after :shutdown do
|
13
|
-
puts "That's all
|
13
|
+
puts "That's all for now"
|
14
14
|
end
|
15
|
+
|
16
|
+
after :reboot do
|
17
|
+
puts "It's raining init 6"
|
18
|
+
end
|
19
|
+
|
20
|
+
before :destroy do
|
21
|
+
puts "It's all going to shambles"
|
22
|
+
end
|
23
|
+
|
15
24
|
end
|
16
25
|
|
data/lib/vmaster/helpers.rb
CHANGED
@@ -61,10 +61,10 @@ module VirtualMaster
|
|
61
61
|
profile_list.first
|
62
62
|
end
|
63
63
|
|
64
|
-
def self.create_instance(name, image_id,
|
64
|
+
def self.create_instance(name, image_id, profile, realm)
|
65
65
|
api = VirtualMaster::CLI.api
|
66
66
|
|
67
|
-
api.create_instance(image_id, {:name => name, :
|
67
|
+
api.create_instance(image_id, {:name => name, :memory => profile[:memory], :storage => profile[:storage], :realm_id => realm})
|
68
68
|
end
|
69
69
|
end
|
70
70
|
end
|
@@ -71,17 +71,14 @@ command :create do |c|
|
|
71
71
|
|
72
72
|
abort "Image name '#{options.profile}' not recognized!" unless profile
|
73
73
|
|
74
|
-
hwp = VirtualMaster::Helpers.get_hw_profile(profile[:memory], profile[:storage])
|
75
|
-
abort "Internal error: hardware profile not available" unless hwp
|
76
|
-
|
77
74
|
# before :create callbacks
|
78
75
|
VirtualMaster::Callbacks.trigger_event(:create, :before, options.__hash__, nil)
|
79
76
|
|
80
77
|
say "Creating '#{profile_name}' instance (#{profile[:memory]} MB memory/#{profile[:storage]/1024} GB storage)"
|
81
|
-
|
78
|
+
|
82
79
|
realm = "#{options.zone}-#{options.level}"
|
83
|
-
|
84
|
-
instance = VirtualMaster::Helpers.create_instance(name, image_id,
|
80
|
+
|
81
|
+
instance = VirtualMaster::Helpers.create_instance(name, image_id, profile, realm) if options.interactive
|
85
82
|
|
86
83
|
# TODO handle exceptions (invalid image/profile, limits, etc.)
|
87
84
|
|
@@ -104,7 +101,7 @@ command :create do |c|
|
|
104
101
|
|
105
102
|
sleep(5)
|
106
103
|
end
|
107
|
-
|
104
|
+
|
108
105
|
puts
|
109
106
|
puts "Instance ready."
|
110
107
|
|
@@ -139,14 +136,19 @@ command :list do |c|
|
|
139
136
|
end
|
140
137
|
end
|
141
138
|
|
142
|
-
def instance_action(action, args)
|
139
|
+
def instance_action(action, options, args)
|
143
140
|
name = args.shift || abort('server name required')
|
144
141
|
|
145
142
|
instance = VirtualMaster::Helpers.get_instance(name)
|
146
|
-
|
143
|
+
|
147
144
|
abort "Invalid instance name!" if instance.nil?
|
148
|
-
|
145
|
+
|
146
|
+
VirtualMaster::Callbacks.trigger_event(action.to_sym, :before, options.__hash__, instance)
|
147
|
+
|
149
148
|
instance.send("#{action}!")
|
149
|
+
|
150
|
+
VirtualMaster::Callbacks.trigger_event(action.to_sym, :after, options.__hash__, instance)
|
151
|
+
|
150
152
|
end
|
151
153
|
|
152
154
|
%w{start reboot stop shutdown destroy}.each do |cmd|
|
@@ -166,8 +168,13 @@ end
|
|
166
168
|
c.description = "Remove server"
|
167
169
|
end
|
168
170
|
|
171
|
+
# generate options for callbacks
|
172
|
+
VirtualMaster::CLI.callbacks.each do |cb|
|
173
|
+
c.send :option, *(cb.to_option)
|
174
|
+
end
|
175
|
+
|
169
176
|
c.action do |args, options|
|
170
|
-
instance_action(c.name, args)
|
177
|
+
instance_action(c.name, options, args)
|
171
178
|
end
|
172
179
|
end
|
173
180
|
end
|
data/lib/vmaster/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: virtualmaster
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-04-
|
12
|
+
date: 2012-04-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: commander
|
16
|
-
requirement: &
|
16
|
+
requirement: &70352789585640 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 4.1.2
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70352789585640
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: deltacloud-client
|
27
|
-
requirement: &
|
27
|
+
requirement: &70352789585100 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 0.5.0
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70352789585100
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: terminal-table
|
38
|
-
requirement: &
|
38
|
+
requirement: &70352789584620 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.4.4
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70352789584620
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: net-ssh
|
49
|
-
requirement: &
|
49
|
+
requirement: &70352789583960 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 2.3.0
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70352789583960
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rspec
|
60
|
-
requirement: &
|
60
|
+
requirement: &70352789583320 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: '2'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70352789583320
|
69
69
|
description: Command line interface to Virtualmaster. Control your virtual infrastructure.
|
70
70
|
email:
|
71
71
|
- radim@laststation.net
|