class NixAdm::ZFS::Pool
Public Class Methods
new(host, name)
click to toggle source
Calls superclass method
NixAdm::ZFS::Object::new
# File src/lib/nixadm/zfs.rb, line 74 def initialize(host, name) super end
Public Instance Methods
createFilesystem(name)
click to toggle source
# File src/lib/nixadm/zfs.rb, line 179 def createFilesystem(name) return @host.exec("zfs create #{@name}/#{name}") end
createVolume(name)
click to toggle source
# File src/lib/nixadm/zfs.rb, line 183 def createVolume(name) return @host.exec("zfs create -V 32K #{@name}/#{name}") end
filesystem(name)
click to toggle source
Given filesystem name, return corresponding Filesystem
object.
@param name Filesystem
name (excluding pool)
# File src/lib/nixadm/zfs.rb, line 122 def filesystem(name) data = filesystemNames() if not data.include?(name) return nil end return Filesystem.new(@host, self, name) end
filesystems()
click to toggle source
# File src/lib/nixadm/zfs.rb, line 78 def filesystems() data = filesystemNames() filter = [] data.each do |object| filter << Filesystem.new(@host, self, object[:name]) end return filter.sort end
object(name)
click to toggle source
Given object name, return corresponding ZFS
object.
@param name Object
name (excluding pool)
# File src/lib/nixadm/zfs.rb, line 148 def object(name) data = objectNames() if not data.include?(name) return nil end type = data[name] if type == 'volume' return Volume.new(@host, self, name) elsif type == 'filesystem' return Filesystem.new(@host, self, name) end return ZfsEntity.new(@host, self, name) end
objects()
click to toggle source
# File src/lib/nixadm/zfs.rb, line 100 def objects() data = objectNames() filter = [] data.each do |object| type = object[:type] if type == 'volume' filter << Volume.new(@host, self, object[:name]) elsif type == 'filesystem' filter << Filesystem.new(@host, self, object[:name]) else filter << ZfsEntity.new(@host, self, object[:name]) end end return filter.sort end
volume(name)
click to toggle source
volumes()
click to toggle source
# File src/lib/nixadm/zfs.rb, line 89 def volumes() data = volumeNames() filter = [] data.each do |object| filter << Volume.new(@host, self, object[:name]) end return filter.sort end
Private Instance Methods
filesystemNames()
click to toggle source
# File src/lib/nixadm/zfs.rb, line 207 def filesystemNames() return zfsEntities('filesystem') end
objectNames()
click to toggle source
# File src/lib/nixadm/zfs.rb, line 203 def objectNames() return zfsEntities('all') end
volumeNames()
click to toggle source
# File src/lib/nixadm/zfs.rb, line 211 def volumeNames() return zfsEntities('volume') end
zfsEntities(type)
click to toggle source
# File src/lib/nixadm/zfs.rb, line 189 def zfsEntities(type) data = objects(type) filter = {} data.each do |entry| e = entry[:name].split('/')[1..-1].join('/') if e.size > 0 filter[e] = entry[:type] end end return filter end