Class: Pvectl::Utils::ResourceResolver
- Inherits:
-
Object
- Object
- Pvectl::Utils::ResourceResolver
- Defined in:
- lib/pvectl/utils/resource_resolver.rb
Overview
Utility for resolving VMID to VM/container type and node.
ResourceResolver auto-detects whether a given VMID belongs to a QEMU virtual machine or LXC container and retrieves its node location. Results are cached for efficiency when resolving multiple VMIDs.
Instance Method Summary collapse
-
#initialize(connection) ⇒ ResourceResolver
constructor
Creates a new ResourceResolver.
-
#resolve(vmid) ⇒ Hash?
Resolves a VMID to its resource information.
-
#resolve_all ⇒ Array<Hash>
Returns all resources in the cluster.
-
#resolve_multiple(vmids) ⇒ Array<Hash>
Resolves multiple VMIDs to their resource information.
Constructor Details
#initialize(connection) ⇒ ResourceResolver
Creates a new ResourceResolver.
25 26 27 28 |
# File 'lib/pvectl/utils/resource_resolver.rb', line 25 def initialize(connection) @connection = connection @cache = nil end |
Instance Method Details
#resolve(vmid) ⇒ Hash?
Resolves a VMID to its resource information.
35 36 37 38 39 |
# File 'lib/pvectl/utils/resource_resolver.rb', line 35 def resolve(vmid) vmid = vmid.to_i load_resources @cache[vmid] end |
#resolve_all ⇒ Array<Hash>
Returns all resources in the cluster.
53 54 55 56 |
# File 'lib/pvectl/utils/resource_resolver.rb', line 53 def resolve_all load_resources @cache.values end |
#resolve_multiple(vmids) ⇒ Array<Hash>
Resolves multiple VMIDs to their resource information.
45 46 47 48 |
# File 'lib/pvectl/utils/resource_resolver.rb', line 45 def resolve_multiple(vmids) load_resources vmids.map { |id| @cache[id.to_i] }.compact end |