Class: Pvectl::Selectors::Container

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

Overview

Selector for filtering containers.

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

Examples:

Filter running containers

selector = Container.parse("status=running")
running_containers = selector.apply(all_containers)

Filter by multiple criteria

selector = Container.parse("status=running,tags=prod")
filtered = selector.apply(all_containers)

Filter by name pattern

selector = Container.parse("name=~web-*")
web_containers = selector.apply(all_containers)

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(containers) ⇒ Array<Models::Container>

Applies selector to container collection.

Parameters:

Returns:



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

def apply(containers)
  return containers if empty?

  containers.select { |ct| matches?(ct) }
end