Class: Pvectl::Commands::Get::Handlers::Subscription

Inherits:
Object
  • Object
show all
Includes:
ResourceHandler
Defined in:
lib/pvectl/commands/get/handlers/subscription.rb,
sig/pvectl/commands/get/handlers/subscription.rbs

Overview

Handler for pvectl get subscription.

Aggregates subscription records across cluster nodes via Repositories::Subscription. Supports filtering to a single node with --node.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ResourceHandler

#selector_class

Constructor Details

#initialize(repository: nil) ⇒ Subscription

Returns a new instance of Subscription.

Parameters:



20
21
22
# File 'lib/pvectl/commands/get/handlers/subscription.rb', line 20

def initialize(repository: nil)
  @repository = repository
end

Instance Attribute Details

#repositoryRepositories::Subscription (readonly)

Returns the value of attribute repository.



49
50
51
# File 'lib/pvectl/commands/get/handlers/subscription.rb', line 49

def repository
  @repository ||= build_repository
end

Instance Method Details

#build_repositoryRepositories::Subscription



53
54
55
56
57
58
# File 'lib/pvectl/commands/get/handlers/subscription.rb', line 53

def build_repository
  config_service = Pvectl::Config::Service.new
  config_service.load
  connection = Pvectl::Connection.new(config_service.current_config)
  Pvectl::Repositories::Subscription.new(connection)
end

#describe(name:, node: nil, args: [], vmid: nil) ⇒ Models::Subscription

Parameters:

  • name (String)

    node name to describe

  • name: (String)
  • node: (String, nil) (defaults to: nil)
  • args: (Array[String]) (defaults to: [])
  • vmid: (Array[String], nil) (defaults to: nil)

Returns:

Raises:



38
39
40
41
42
43
44
45
# File 'lib/pvectl/commands/get/handlers/subscription.rb', line 38

def describe(name:, node: nil, args: [], vmid: nil)
  raise ArgumentError, "Invalid node name" if name.nil? || name.empty?

  record = repository.get(name)
  raise Pvectl::ResourceNotFoundError, "Subscription not found for node: #{name}" if record.nil?

  record
end

#list(node: nil, name: nil, args: [], storage: nil, **_options) ⇒ Array<Models::Subscription>

Parameters:

  • node (String, nil) (defaults to: nil)

    limit to a single node

  • node: (String, nil) (defaults to: nil)
  • name: (String, nil) (defaults to: nil)
  • args: (Array[String]) (defaults to: [])
  • storage: (String, nil) (defaults to: nil)

Returns:



26
27
28
# File 'lib/pvectl/commands/get/handlers/subscription.rb', line 26

def list(node: nil, name: nil, args: [], storage: nil, **_options)
  repository.list(node: node)
end

#presenterPresenters::Subscription



31
32
33
# File 'lib/pvectl/commands/get/handlers/subscription.rb', line 31

def presenter
  Pvectl::Presenters::Subscription.new
end