Class: Pvectl::Selectors::Volume

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

Overview

Selector for filtering virtual disk volumes.

Extends Base with volume-specific field extraction. Supports: format, storage, node, content, resource_type, name.

Examples:

Filter raw volumes only

selector = Volume.parse("format=raw")
raw_vols = selector.apply(all_volumes)

Filter volumes on a specific storage and node

selector = Volume.parse("storage=local-lvm,node=pve1")
filtered = selector.apply(all_volumes)

Constant Summary collapse

SUPPORTED_FIELDS =
%w[format storage node content resource_type name].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(volumes) ⇒ Array<Models::Volume>

Applies selector to volume collection.

Parameters:

Returns:



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

def apply(volumes)
  return volumes if empty?

  volumes.select { |vol| matches?(vol) }
end