F rage4 bulk update endpoint (#3917)

Add new api endpoint to fog for bulk updates of priority in rage4 class
This commit is contained in:
Tameem Iftikhar 2016-09-27 11:26:14 -04:00 committed by Joshua Gross
parent 66f448784f
commit 5cb43829c0
3 changed files with 51 additions and 0 deletions

View File

@ -27,6 +27,7 @@ module Fog
request :list_geo_regions
request :create_record
request :update_record
request :bulk_update_records
request :list_records
request :delete_record
request :set_record_failover

View File

@ -0,0 +1,38 @@
module Fog
module DNS
class Rage4
class Real
# Updates existing records in bulk
# ==== Parameters
# * zone_id <~Integer> Need to specify the zone id
# * options <~Hash> Options should contain the body for the post
# in the following format.
# data = [{:id=><record_id>, :priority=>2}, {:id=><record_id>, :priority=>2}]
# options => { :body => data.to_json }
# ==== Returns
# * response<~Excon::Response>:
# * body<~Hash>:
# * 'status'<~Boolean>
# * 'id'<~Integer>
# * 'error'<~String>
# https://secure.rage4.com//rapi/SetRecordState/<zone_id>/
def bulk_update_records(zone_id, options = {})
path = "/rapi/SetRecordState/#{zone_id}"
body = options[:body] if options[:body].present?
request(
:expects => 200,
:method => 'POST',
:body => body,
:path => path,
:headers => {
'Content-Type' => "application/json; charset=UTF-8",
},
)
end
end
end
end
end

View File

@ -107,6 +107,18 @@ Shindo.tests('Fog::DNS[:rage4] | DNS requests', ['rage4', 'dns']) do
end
test("bulk_update_records") do
pending if Fog.mocking?
data = { :id => @record_id, :priority => 1 }
response = Fog::DNS[:rage4].bulk_update_records(@zone_id, { :body => data.to_json } )
returns(200) { response.status }
returns(true) {response.body['status']}
returns(@domain_id) {response.body['id']}
returns("") {response.body['error'] }
end
test("show_current_usage") do
pending if Fog.mocking?