Skip to content

Commit 6ed9cd1

Browse files
committed
Refactor obtaining and saving ip address
1 parent 861c67e commit 6ed9cd1

2 files changed

Lines changed: 14 additions & 4 deletions

File tree

lib/vmpooler/pool_manager.rb

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -445,16 +445,22 @@ def _clone_vm(pool_name, provider, dns_plugin, request_id = nil, pool_alias = ni
445445
start = Time.now
446446
provider.create_vm(pool_name, new_vmname)
447447
finish = format('%<time>.2f', time: Time.now - start)
448+
$logger.log('s', "[+] [#{pool_name}] '#{new_vmname}' cloned in #{finish} seconds")
449+
$metrics.timing("clone.#{pool_name}", finish)
450+
451+
$logger.log('d', "[~] [#{pool_name}] Obtaining IP for '#{new_vmname}'")
452+
ip_start = Time.now
453+
ip = provider.get_vm_ip_address(new_vmname, pool_name)
454+
ip_finish = format('%<time>.2f', time: Time.now - ip_start)
455+
$logger.log('s', "[+] [#{pool_name}] Obtained IP for '#{new_vmname}' in #{ip_finish} seconds")
448456

449457
@redis.with_metrics do |redis|
450458
redis.pipelined do |pipeline|
451459
pipeline.hset("vmpooler__clone__#{Date.today}", "#{pool_name}:#{new_vmname}", finish)
452460
pipeline.hset("vmpooler__vm__#{new_vmname}", 'clone_time', finish)
461+
pipeline.hset("vmpooler__vm__#{new_vmname}", 'ip', ip)
453462
end
454-
end
455-
$logger.log('s', "[+] [#{pool_name}] '#{new_vmname}' cloned in #{finish} seconds")
456-
457-
$metrics.timing("clone.#{pool_name}", finish)
463+
end
458464

459465
dns_plugin_class_name = get_dns_plugin_class_name_for_pool(pool_name)
460466
dns_plugin.create_or_replace_record(new_vmname) unless dns_plugin_class_name == 'dynamic-dns'

lib/vmpooler/providers/base.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,10 @@ def purge_unconfigured_resources(_allowlist)
261261
raise("#{self.class.name} does not implement purge_unconfigured_resources")
262262
end
263263

264+
def get_vm_ip_address(vm_name, pool_name)
265+
raise("#{self.class.name} does not implement get_vm_ip_address")
266+
end
267+
264268
# DEPRECATED if a provider does not implement the new method, it will hit this base class method
265269
# and return a deprecation message
266270
def purge_unconfigured_folders(_deprecated, _deprecated2, allowlist)

0 commit comments

Comments
 (0)