[Ovirt-devel] [PATCH server] Use fixed mount points and add timeouts to various calls.
Ian Main
imain at redhat.com
Thu May 28 15:19:07 UTC 2009
This patch uses fixed mount points necessary for migration to work
properly. Mount points are unique for each storage type.
This also uses the new :timeout keyword argument for various operations
that could take a while. This should fix the 'seq' timeout problem
we've been seeing. This requires the latest ruby-qpid which is now
in the ovirt repo.
Signed-off-by: Ian Main <imain at redhat.com>
---
src/task-omatic/task_storage.rb | 16 +++++++++-------
1 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/src/task-omatic/task_storage.rb b/src/task-omatic/task_storage.rb
index a2188d7..4961b83 100644
--- a/src/task-omatic/task_storage.rb
+++ b/src/task-omatic/task_storage.rb
@@ -129,7 +129,7 @@ class LibvirtPool
end
if @remote_pool == nil
- result = node.storagePoolDefineXML(@xml.to_s)
+ result = node.storagePoolDefineXML(@xml.to_s, :timeout => 60 * 2)
raise "Error creating pool: #{result.text}" unless result.status == 0
@remote_pool = session.object(:object_id => result.pool)
raise "Error finding newly created remote pool." unless @remote_pool
@@ -137,7 +137,7 @@ class LibvirtPool
# we need this because we don't want to "build" LVM pools, which would
# destroy existing data
if @build_on_start
- result = @remote_pool.build
+ result = @remote_pool.build(:timeout => 60 * 2)
raise "Error building pool: #{result.text}" unless result.status == 0
end
@remote_pool_defined = true
@@ -151,7 +151,7 @@ class LibvirtPool
if @remote_pool.state == "inactive"
# only try to start the pool if it is currently inactive; in all other
# states, assume it is already running
- result = @remote_pool.create
+ result = @remote_pool.create(:timeout => 60 * 2)
raise "Error defining pool: #{result.text}" unless result.status == 0
# Refresh qpid object with new properties.
@@ -195,7 +195,7 @@ class LibvirtPool
def self.factory(pool)
if pool[:type] == "IscsiStoragePool"
- return IscsiLibvirtPool.new(pool.ip_addr, pool[:target])
+ return IscsiLibvirtPool.new(pool.ip_addr, pool[:target], pool[:port]")
elsif pool[:type] == "NfsStoragePool"
return NFSLibvirtPool.new(pool.ip_addr, pool.export_path)
elsif pool[:type] == "LvmStoragePool"
@@ -220,8 +220,9 @@ class LibvirtPool
end
class IscsiLibvirtPool < LibvirtPool
- def initialize(ip_addr, target)
- super('iscsi')
+ def initialize(ip_addr, target, port)
+ mount = "#{ip_addr}-#{target}-#{port}"
+ super('iscsi', mount)
@type = 'iscsi'
@ipaddr = ip_addr
@@ -242,7 +243,8 @@ end
class NFSLibvirtPool < LibvirtPool
def initialize(ip_addr, export_path)
- super('netfs')
+ target = "#{ip_addr}-#{export_path.tr('/', '_')}"
+ super('netfs', target)
@type = 'netfs'
@host = ip_addr
--
1.6.0.6
More information about the ovirt-devel
mailing list