xen-ruby 0.7.1.1 → 0.7.2

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.7.1.1
1
+ 0.7.2
@@ -1,5 +1,5 @@
1
1
  require 'log/logger'
2
-
2
+ require 'system/exception'
3
3
  # This class is for executing any system command. All ruby implemented system commands like ` ` or system() are
4
4
  # not strong and effectivly enough.
5
5
  # You have the opportunity to set a command_level, you own failure message and an expected_exit_status.
@@ -44,8 +44,12 @@ module System
44
44
 
45
45
  def log
46
46
  case @command_level
47
- when LEVEL_WARN: logger.warn(error_message)
48
- when LEVEL_FATAL: logger.fatal(error_message)
47
+ when LEVEL_WARN:
48
+ logger.warn(error_message)
49
+ raise System::Exception::WarningException.new(error_message, command, exit_status)
50
+ when LEVEL_FATAL:
51
+ logger.fatal(error_message)
52
+ raise System::Exception::CriticalException.new(error_message, command, exit_status)
49
53
  end
50
54
  end
51
55
 
@@ -0,0 +1,38 @@
1
+ module System
2
+ module Exception
3
+ class CriticalException < ::Exception
4
+ def initialize(message, command, exit)
5
+ @message = message
6
+ @command = command
7
+ @exit = exit
8
+ end
9
+
10
+ def to_s
11
+ <<EOF
12
+ #{@message}
13
+
14
+ Command (#{@command}) exiting with code #{@exit}
15
+
16
+ EOF
17
+ end
18
+ end
19
+
20
+ class WarningException < ::Exception
21
+ def initialize(message, command, exit)
22
+ @message = message
23
+ @command = command
24
+ @exit = exit
25
+ end
26
+
27
+ def to_s
28
+ <<EOF
29
+ #{@message}
30
+
31
+ Command (#{@command}) exiting with code #{@exit}
32
+
33
+ EOF
34
+ end
35
+ end
36
+
37
+ end
38
+ end
@@ -19,7 +19,7 @@ module Xen
19
19
 
20
20
  # Gets all running instances on dom0
21
21
  def all
22
- get_all = System::Command.new("sudo xm list" , :command_level => 1)
22
+ get_all = System::Command.new("sudo xm list" , :command_level => 2)
23
23
  get_all.execute
24
24
  return [] unless get_all.exit_status == 0
25
25
 
@@ -30,7 +30,8 @@ module Xen
30
30
  # ==Params:
31
31
  # => +name+: Name of instance
32
32
  def find_by_name(name)
33
- find = System::Command.new("sudo xm list #{name}", :command_level => 1)
33
+ find = System::Command.new("sudo xm list #{name}", :command_level => 1,
34
+ :message => "Can't find running domU with name: #{name}")
34
35
  find.execute
35
36
  instance_from_output(find.output.split("\n").last) if find.exit_status == 0
36
37
  end
@@ -63,7 +64,7 @@ module Xen
63
64
  --arch=#{attributes[:arch]} --dist=#{attributes[:dist]} --force &
64
65
  cmd
65
66
 
66
- create_image = System::Command.new(command, :command_level => 2)
67
+ create_image = System::Command.new(command, :command_level => 2, :message => "Can't create #{attributes[:name]} domU.")
67
68
  attributes.merge(:password => password.output.strip)
68
69
  create_image.execute
69
70
  end
@@ -111,41 +112,46 @@ module Xen
111
112
  end
112
113
 
113
114
  def start
114
- start = System::Command.new("sudo xm create #{name}.cfg", :command_level => 2)
115
+ start = System::Command.new("sudo xm create #{name}.cfg", :command_level => 2, :message => "Can't start #{name} domU")
115
116
  start.execute
116
117
  end
117
118
 
118
119
 
119
120
  def reboot
120
- reboot = System::Command.new("sudo xm reboot #{dom_id}", :command_level => 2)
121
+ reboot = System::Command.new("sudo xm reboot #{dom_id}", :command_level => 2, :message => "Can't reboot #{name} domU")
121
122
  reboot.execute
122
123
  end
123
124
 
124
125
  def shutdown
125
- shutdown = System::Command.new("sudo xm shutdown #{dom_id}", :command_level => 2)
126
+ shutdown = System::Command.new("sudo xm shutdown #{dom_id}", :command_level => 2, :message => "Can't shutdown #{name} domU")
126
127
  shutdown.execute
127
128
  end
128
129
 
129
130
  def migrate(destination)
130
- migrate = System::Command.new("sudo xm migrate --live #{name} #{destination}", :command_level => 2)
131
+ migrate = System::Command.new("sudo xm migrate --live #{name} #{destination}",
132
+ :command_level => 2,
133
+ :message => "Can't migrate #{name} domU to #{destination}")
131
134
  migrate.execute
132
135
  end
133
136
 
134
137
  def destroy
135
- destroy = System::Command.new("sudo xm destroy #{dom_id}", :command_level => 1)
138
+ destroy = System::Command.new("sudo xm destroy #{dom_id}", :command_level => 2,
139
+ :message => "Can't destroy #{name} domU")
136
140
  destroy.execute
137
141
  end
138
142
 
139
143
  def pause
140
144
  unless paused?
141
- pause = System::Command.new("sudo xm pause #{dom_id}", :command_level => 1)
145
+ pause = System::Command.new("sudo xm pause #{dom_id}", :command_level => 1,
146
+ :message => "Can't pause #{name} domU")
142
147
  pause.execute
143
148
  end
144
149
  end
145
150
 
146
151
  def unpause
147
152
  if paused?
148
- unpause = System::Command.new("sudo xm unpause #{dom_id}", :command_level => 1)
153
+ unpause = System::Command.new("sudo xm unpause #{dom_id}", :command_level => 1,
154
+ :message => "Can't unpause #{name} domU")
149
155
  unpause.execute
150
156
  end
151
157
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{xen-ruby}
8
- s.version = "0.7.1.1"
8
+ s.version = "0.7.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Heiko Kr\303\244mer", "Clemens Kofler"]
12
- s.date = %q{2011-05-06}
12
+ s.date = %q{2011-05-23}
13
13
  s.description = %q{simple gem to controle xen dom0}
14
14
  s.email = %q{kraemer@avarteq.de}
15
15
  s.extra_rdoc_files = [
@@ -25,6 +25,7 @@ Gem::Specification.new do |s|
25
25
  "VERSION",
26
26
  "lib/log/logger.rb",
27
27
  "lib/system/command.rb",
28
+ "lib/system/exception.rb",
28
29
  "lib/xen/instance.rb",
29
30
  "lib/xen/server.rb",
30
31
  "lib/xen/util.rb",
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xen-ruby
3
3
  version: !ruby/object:Gem::Version
4
- hash: 113
4
+ hash: 7
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 7
9
- - 1
10
- - 1
11
- version: 0.7.1.1
9
+ - 2
10
+ version: 0.7.2
12
11
  platform: ruby
13
12
  authors:
14
13
  - "Heiko Kr\xC3\xA4mer"
@@ -17,7 +16,7 @@ autorequire:
17
16
  bindir: bin
18
17
  cert_chain: []
19
18
 
20
- date: 2011-05-06 00:00:00 Z
19
+ date: 2011-05-23 00:00:00 Z
21
20
  dependencies:
22
21
  - !ruby/object:Gem::Dependency
23
22
  version_requirements: &id001 !ruby/object:Gem::Requirement
@@ -111,6 +110,7 @@ files:
111
110
  - VERSION
112
111
  - lib/log/logger.rb
113
112
  - lib/system/command.rb
113
+ - lib/system/exception.rb
114
114
  - lib/xen/instance.rb
115
115
  - lib/xen/server.rb
116
116
  - lib/xen/util.rb