From 747c7f24b18c58131022c85e40e98c6016e3e9e1 Mon Sep 17 00:00:00 2001 From: Carlos Sanchez Date: Fri, 15 Nov 2013 12:30:09 +0100 Subject: [PATCH] [aws|dns] Don't set mock changes to INSYNC immediately, only after some timeout --- lib/fog/aws/requests/dns/change_resource_record_sets.rb | 2 +- lib/fog/aws/requests/dns/create_hosted_zone.rb | 2 +- lib/fog/aws/requests/dns/get_change.rb | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/fog/aws/requests/dns/change_resource_record_sets.rb b/lib/fog/aws/requests/dns/change_resource_record_sets.rb index 9444089bd..8e4c2f9b7 100644 --- a/lib/fog/aws/requests/dns/change_resource_record_sets.rb +++ b/lib/fog/aws/requests/dns/change_resource_record_sets.rb @@ -180,7 +180,7 @@ module Fog if errors.empty? change = { :id => change_id, - :status => 'INSYNC', + :status => 'PENDING', :submitted_at => Time.now.utc.iso8601 } self.data[:changes][change[:id]] = change diff --git a/lib/fog/aws/requests/dns/create_hosted_zone.rb b/lib/fog/aws/requests/dns/create_hosted_zone.rb index bbd05fd18..b8324b1e0 100644 --- a/lib/fog/aws/requests/dns/create_hosted_zone.rb +++ b/lib/fog/aws/requests/dns/create_hosted_zone.rb @@ -82,7 +82,7 @@ module Fog } change = { :id => Fog::AWS::Mock.change_id, - :status => 'INSYNC', + :status => 'PENDING', :submitted_at => Time.now.utc.iso8601 } self.data[:changes][change[:id]] = change diff --git a/lib/fog/aws/requests/dns/get_change.rb b/lib/fog/aws/requests/dns/get_change.rb index bfb605841..e82dd35aa 100644 --- a/lib/fog/aws/requests/dns/get_change.rb +++ b/lib/fog/aws/requests/dns/get_change.rb @@ -43,9 +43,11 @@ module Fog if change response.status = 200 + submitted_at = Time.parse(change[:submitted_at]) response.body = { 'Id' => change[:id], - 'Status' => 'INSYNC', # TODO do some logic here + # set as insync after some time + 'Status' => (submitted_at + (Fog.timeout/4).to_i) < Time.now ? 'INSYNC' : change[:status], 'SubmittedAt' => change[:submitted_at] } response