From 67aed63360b44faef2679fda021d8875957a29b6 Mon Sep 17 00:00:00 2001 From: Jan Orel Date: Wed, 22 Apr 2020 14:38:34 +0200 Subject: [PATCH] M #-: Fix VM state for az/ec2/one/packet drivers (#4582) --- src/vmm_mad/remotes/az/az_driver.rb | 22 ++++++++--------- src/vmm_mad/remotes/ec2/ec2_driver.rb | 18 +++++++------- src/vmm_mad/remotes/one/opennebula_driver.rb | 8 +++--- src/vmm_mad/remotes/packet/packet_driver.rb | 26 ++++++++++---------- 4 files changed, 37 insertions(+), 37 deletions(-) diff --git a/src/vmm_mad/remotes/az/az_driver.rb b/src/vmm_mad/remotes/az/az_driver.rb index 48edc774ad..ec723034c9 100755 --- a/src/vmm_mad/remotes/az/az_driver.rb +++ b/src/vmm_mad/remotes/az/az_driver.rb @@ -80,6 +80,15 @@ class AzureDriver IMAGE_PUBLISHER IMAGE_OFFER IMAGE_SKU IMAGE_VERSION ] + STATE_MAP = { + 'starting' => 'RUNNING', + 'running' => 'RUNNING', + 'stopping' => 'POWEROFF', + 'stopped' => 'POWEROFF', + 'deallocating' => 'POWEROFF', + 'deallocated' => 'POWEROFF' + } + DEFAULTS = { :rgroup_name_format => 'one-%s-%s', :cache_expire => 120 @@ -636,17 +645,8 @@ class AzureDriver @rgroup_name, i.name ) az_state = az_inst_view.statuses[-1].code.split('/').last - case az_state - when 'running', 'starting' - # return VM_STATE[:active] - 'RUNNING' - when 'suspended', 'stopping' - # return VM_STATE[:paused] - 'SHUTDOWN' - else - # return VM_STATE[:unknown] - 'UNKNOWN' - end + + STATE_MAP[az_state] || 'UNKNOWN' end def get_cpu_num(instance) diff --git a/src/vmm_mad/remotes/ec2/ec2_driver.rb b/src/vmm_mad/remotes/ec2/ec2_driver.rb index efb2a97c47..203170c76f 100755 --- a/src/vmm_mad/remotes/ec2/ec2_driver.rb +++ b/src/vmm_mad/remotes/ec2/ec2_driver.rb @@ -243,6 +243,13 @@ class EC2Driver :cache_expire => 120 } + STATE_MAP = { + 'pending' => 'RUNNING', + 'running' => 'RUNNING', + 'shutting-down' => 'POWEROFF', + 'terminated' => 'POWEROFF' + } + # -------------------------------------------------------------------------- # EC2 constructor, loads credentials and endpoint # @param [String] name of host in OpenNebula @@ -607,16 +614,9 @@ class EC2Driver # Return state of the instance (ONE state) def vm_state(instance) if !instance.exists? - 'DELETED' + 'UNKNOWN' else - case instance.state.name - when 'pending', 'running' - 'RUNNING' - when 'shutting-down', 'terminated' - 'SHUTDOWN' - else - 'UNKNOWN' - end + STATE_MAP[instance.state.name] || 'UNKNOWN' end end diff --git a/src/vmm_mad/remotes/one/opennebula_driver.rb b/src/vmm_mad/remotes/one/opennebula_driver.rb index a8aca5a837..d869cf8624 100755 --- a/src/vmm_mad/remotes/one/opennebula_driver.rb +++ b/src/vmm_mad/remotes/one/opennebula_driver.rb @@ -224,16 +224,16 @@ class One2OneDriver when 'ACTIVE' case vm.lcm_state_str when /_FAILURE$/ || 'UNKNOWN' - 'FAILED' + 'FAILURE' else 'RUNNING' end when 'STOPPED' || 'SUSPENDED' - 'STOPPED' + 'SUSPENDED' when 'DONE' || 'POWEROFF' || 'UNDEPLOYED' - 'DONE' + 'POWEROFF' when 'FAILED' || 'CLONING_FAILURE' - 'FAILED' + 'FAILURE' else 'UNKNOWN' end diff --git a/src/vmm_mad/remotes/packet/packet_driver.rb b/src/vmm_mad/remotes/packet/packet_driver.rb index ec8d1caee2..e113aac798 100644 --- a/src/vmm_mad/remotes/packet/packet_driver.rb +++ b/src/vmm_mad/remotes/packet/packet_driver.rb @@ -73,6 +73,17 @@ class PacketDriver :billing_cycle => 'BILLING_CYCLE' } + STATE_MAP = { + :pending => 'RUNNING', + :provisioning => 'RUNNING', + :powering_on => 'RUNNING', + :active => 'RUNNING', + :rebooting => 'RUNNING', + :powering_off => 'POWEROFF', + :inactive => 'POWEROFF', + :failed => 'FAILURE' + } + DEFAULTS = { :cache_expire => 120 } @@ -316,20 +327,9 @@ class PacketDriver def vm_state(device) if device.nil? - 'DELETED' + 'UNKNOWN' else - case device.state - when :pending, :provisioning, :powering_on - 'BOOT' - when :active, :rebooting - 'RUNNING' - when :powering_off, :inactive - 'SHUTDOWN' - when :failed - 'SHUTDOWN' - else - 'UNKNOWN' - end + STATE_MAP[device.state] || 'UNKNOWN' end end