diff --git a/lib/fog/proxmox/compute/models/servers.rb b/lib/fog/proxmox/compute/models/servers.rb index 006f6a0..483bb0a 100644 --- a/lib/fog/proxmox/compute/models/servers.rb +++ b/lib/fog/proxmox/compute/models/servers.rb @@ -53,10 +53,16 @@ def get(id) status_data = service.get_server_status path_params config_data = service.get_server_config path_params rescue StandardError => e - if e.respond_to?('response') && e.response.respond_to?('data') && e.response.data.has_key?(:reason_phrase) && e.response.data[:reason_phrase].end_with?('does not exist') - raise(Fog::Errors::NotFound) + if e.respond_to?('response') && e.response.respond_to?('data') && e.response.data.has_key?(:body) + begin + json = JSON.parse(e.response.body) + if json['message']&.include?('does not exist') + raise(Fog::Errors::NotFound) + end + rescue StandardError + raise e + end end - raise(e) else data = status_data.merge(config_data).merge(node: node_id, vmid: id)