Class: Pvectl::Selectors::Disk

Inherits:
Base
  • Object
show all
Defined in:
lib/pvectl/selectors/disk.rb

Overview

Selector for filtering physical disks.

Extends Base with disk-specific field extraction. Supports: type, health, used, node, gpt, mounted.

Examples:

Filter SSDs only

selector = Disk.parse("type=ssd")
ssds = selector.apply(all_disks)

Filter healthy disks on a specific node

selector = Disk.parse("health=PASSED,node=pve1")
filtered = selector.apply(all_disks)

Constant Summary collapse

SUPPORTED_FIELDS =
%w[type health used node gpt mounted].freeze

Instance Attribute Summary

Attributes inherited from Base

#conditions

Instance Method Summary collapse

Methods inherited from Base

#empty?, #initialize, #matches?, parse, parse_all

Constructor Details

This class inherits a constructor from Pvectl::Selectors::Base

Instance Method Details

#apply(disks) ⇒ Array<Models::PhysicalDisk>

Applies selector to disk collection.

Parameters:

Returns:



25
26
27
28
29
# File 'lib/pvectl/selectors/disk.rb', line 25

def apply(disks)
  return disks if empty?

  disks.select { |disk| matches?(disk) }
end