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

Given volume name, return corresponding Volume object.

@param name Volume name (excluding pool)

# File src/lib/nixadm/zfs.rb, line 135
def volume(name)
  data = volumeNames()

  if not data.include?(name)
    return nil
  end

  return Volume.new(@host, self, name)
end
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