lib/solusvm/base.rb in solusvm-0.5.1 vs lib/solusvm/base.rb in solusvm-0.6.0

- old
+ new

@@ -24,10 +24,11 @@ end http.start do |http| request = Net::HTTP::Get.new("#{api_endpoint.path}?#{options.to_query}") response = http.request(request) + handle_errors(response.body) @returned_parameters = parse_response(response.body) log_messages(options) end successful? end @@ -36,10 +37,22 @@ def parse_response(body) body = "<solusrequest>#{body}</solusrequest>" XmlSimple.xml_in(body, 'ForceArray' => false) end + # Look for known error messages + def handle_errors(body) + case body.downcase + when /invalid ipaddress/i + raise "This IP is not authorized to use the API" + when /Invalid id or key/i + raise "Invalid ID or key" + when /Node not found/i + raise "Node does not exist" + end + end + # Returns true when a request has been successful # # my_class = MyClass.new # my_class.create_server('example.com') # my_class.successful? # => true @@ -78,6 +91,6 @@ unless VALID_SERVER_TYPES.include?(type) raise SolusvmError, "Invalid Virtual Server type: #{type}" end end end -end \ No newline at end of file +end