Class: Pvectl::Selectors::Vm

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

Overview

Selector for filtering VMs.

Extends Base with VM-specific field extraction. Supports: status, tags, pool, name, template.

Examples:

Filter running VMs

selector = Vm.parse("status=running")
running_vms = selector.apply(all_vms)

Filter by multiple criteria

selector = Vm.parse("status=running,tags=prod")
filtered = selector.apply(all_vms)

Filter by name pattern

selector = Vm.parse("name=~web-*")
web_vms = selector.apply(all_vms)

Constant Summary collapse

SUPPORTED_FIELDS =
%w[status tags pool name template].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(vms) ⇒ Array<Models::Vm>

Applies selector to VM collection.

Parameters:

Returns:



29
30
31
32
33
# File 'lib/pvectl/selectors/vm.rb', line 29

def apply(vms)
  return vms if empty?

  vms.select { |vm| matches?(vm) }
end