@@ -148,16 +148,18 @@ def fetch_datafile_config
148
148
end
149
149
150
150
def request_config
151
- @logger . log (
152
- Logger ::DEBUG ,
153
- "Fetching datafile from #{ @datafile_url } "
154
- )
155
- begin
156
- headers = { }
157
- headers [ 'Content-Type' ] = 'application/json'
158
- headers [ 'If-Modified-Since' ] = @last_modified if @last_modified
159
- headers [ 'Authorization' ] = "Bearer #{ @access_token } " unless @access_token . nil?
151
+ @logger . log ( Logger ::DEBUG , "Fetching datafile from #{ @datafile_url } " )
152
+ headers = { }
153
+ headers [ 'Content-Type' ] = 'application/json'
154
+ headers [ 'If-Modified-Since' ] = @last_modified if @last_modified
155
+ headers [ 'Authorization' ] = "Bearer #{ @access_token } " unless @access_token . nil?
156
+
157
+ # Cleaning headers before logging to avoid exposing authorization token
158
+ cleansed_headers = { }
159
+ headers . each { |key , value | cleansed_headers [ key ] = key == 'Authorization' ? '********' : value }
160
+ @logger . log ( Logger ::DEBUG , "Datafile request headers: #{ cleansed_headers } " )
160
161
162
+ begin
161
163
response = Helpers ::HttpUtils . make_request (
162
164
@datafile_url , :get , nil , headers , Helpers ::Constants ::CONFIG_MANAGER [ 'REQUEST_TIMEOUT' ]
163
165
)
@@ -169,6 +171,9 @@ def request_config
169
171
return nil
170
172
end
171
173
174
+ response_code = response . code . to_i
175
+ @logger . log ( Logger ::DEBUG , "Datafile response status code #{ response_code } " )
176
+
172
177
# Leave datafile and config unchanged if it has not been modified.
173
178
if response . code == '304'
174
179
@logger . log (
@@ -178,9 +183,14 @@ def request_config
178
183
return
179
184
end
180
185
181
- @last_modified = response [ Helpers ::Constants ::HTTP_HEADERS [ 'LAST_MODIFIED' ] ]
182
-
183
- config = DatafileProjectConfig . create ( response . body , @logger , @error_handler , @skip_json_validation ) if response . body
186
+ if response_code >= 200 && response_code < 400
187
+ @logger . log ( Logger ::DEBUG , 'Successfully fetched datafile, generating Project config' )
188
+ config = DatafileProjectConfig . create ( response . body , @logger , @error_handler , @skip_json_validation )
189
+ @last_modified = response [ Helpers ::Constants ::HTTP_HEADERS [ 'LAST_MODIFIED' ] ]
190
+ @logger . log ( Logger ::DEBUG , "Saved last modified header value from response: #{ @last_modified } ." )
191
+ else
192
+ @logger . log ( Logger ::DEBUG , "Datafile fetch failed, status: #{ response . code } , message: #{ response . message } " )
193
+ end
184
194
185
195
config
186
196
end
0 commit comments