Sha256: d704dbf9835fcc1e669256a6362ea3fd5c136b601ac35341b27e57669f2d29e6

Contents?: true

Size: 1.29 KB

Versions: 1

Compression:

Stored size: 1.29 KB

Contents

# LinuxAdmin Partition Representation
#
# Copyright (C) 2013 Red Hat Inc.
# Licensed under the MIT License

require 'fileutils'

class LinuxAdmin
  class Partition < LinuxAdmin
    attr_accessor :id
    attr_accessor :partition_type
    attr_accessor :fs_type
    attr_accessor :start_sector
    attr_accessor :end_sector
    attr_accessor :size
    attr_accessor :disk
    attr_accessor :mount_point

    def initialize(args={})
      @id      = args[:id]
      @size    = args[:size]
      @disk    = args[:disk]
      @fs_type = args[:fs_type]
      @start_sector   = args[:start_sector]
      @end_sector     = args[:end_sector]
      @partition_type = args[:partition_type]
    end

    def path
      "#{disk.path}#{id}"
    end

    def format_to(filesystem)
      run(cmd(:mke2fs),
          :params => { '-t' => filesystem, nil => self.path})
      @fs_type = filesystem
    end

    def mount(mount_point=nil)
      @mount_point = mount_point
      @mount_point  =
        "/mnt/#{disk.path.split(File::SEPARATOR).last}#{id}" if mount_point.nil?
      FileUtils.mkdir(@mount_point) unless File.directory?(@mount_point)

      run(cmd(:mount),
          :params => { nil => [self.path, @mount_point] })
    end

    def umount
      run(cmd(:umount),
          :params => { nil => [@mount_point] })
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
linux_admin-0.1.3 lib/linux_admin/partition.rb