#
# (c) Jan Gehring <jan.gehring@gmail.com>
#
# vim: set ts=2 sw=2 tw=0:
# vim: set expandtab:

package Rex::Inventory::Hal::Object::Volume;

use strict;
use warnings;
use Data::Dumper;

use Rex::Inventory::Hal::Object;
use base qw(Rex::Inventory::Hal::Object);

__PACKAGE__->has(
  [

    { key => "block.device",  accessor => "dev", },
    { key => "volume.size",   accessor => "size", },
    { key => "volume.fstype", accessor => "fstype" },
    { key => "volume.uuid",   accessor => "uuid" },

  ]
);

sub new {
  my $that  = shift;
  my $proto = ref($that) || $that;
  my $self  = {@_};

  bless( $self, $proto );

  return $self;
}

sub is_parition {

  my ($self) = @_;
  return $self->get('volume.is_partition') eq "true" ? 1 : 0;

}

sub is_mounted {

  my ($self) = @_;
  return $self->get('volume.is_mounted') eq "true" ? 1 : 0;

}

sub is_cdrom {

  my ($self) = @_;
  if ( grep { /^storage\.cdrom$/ } $self->get('info.capabilities') ) {
    return 1;
  }

}

sub is_volume {

  my ($self) = @_;
  if ( grep { !/^false$/ } $self->get('block.is_volume') ) {
    return 1;
  }

}

sub is_floppy {

  my ($self) = @_;
  if ( grep { /^floppy$/ } $self->get('storage.drive_type') ) {
    return 1;
  }

}

1;
