Class: Xen::Vbd

Inherits:
Object
  • Object
show all
Defined in:
lib/xen/config_file.rb

Overview

Virtual Block Device

We’re only supporting Logical Volumes. No loopback devices.

wiki.xensource.com/xenwiki/XenStorage

Example

disk        = [ 'phy:xendisks/example-disk,sda1,w', 
                'phy:xendisks/example-swap,sda2,w',
                'phy:assets/example-assets,sdb1,w' ]

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, volume_group, domu, mode = 'w') ⇒ Vbd

Returns a new instance of Vbd.



135
136
137
# File 'lib/xen/config_file.rb', line 135

def initialize(name, volume_group, domu, mode='w')
  @name, @volume_group, @domu, @mode = name, volume_group, domu, mode
end

Instance Attribute Details

#domuObject

Returns the value of attribute domu.



134
135
136
# File 'lib/xen/config_file.rb', line 134

def domu
  @domu
end

#modeObject

Returns the value of attribute mode.



134
135
136
# File 'lib/xen/config_file.rb', line 134

def mode
  @mode
end

#nameObject

Returns the value of attribute name.



134
135
136
# File 'lib/xen/config_file.rb', line 134

def name
  @name
end

#volume_groupObject

Returns the value of attribute volume_group.



134
135
136
# File 'lib/xen/config_file.rb', line 134

def volume_group
  @volume_group
end

Class Method Details

.from_str(value) ⇒ Object



139
140
141
142
143
# File 'lib/xen/config_file.rb', line 139

def self.from_str(value)
  dom0, domu, mode = value.split(',')
  volume_group, name = dom0.split(/[\/:]/).slice(-2, 2)
  new(name, volume_group, domu, mode)
end

Instance Method Details

#pathObject



149
150
151
# File 'lib/xen/config_file.rb', line 149

def path
  "/dev/#{volume_group}/#{name}"
end

#sizeObject



145
146
147
# File 'lib/xen/config_file.rb', line 145

def size
  Xen::Command.lv_size(@volume_group, @name)
end

#to_strObject



153
154
155
# File 'lib/xen/config_file.rb', line 153

def to_str
  "phy:#{volume_group}/#{name},#{domu},#{mode}"
end