lib/gooddata/models/model.rb in gooddata-0.6.6 vs lib/gooddata/models/model.rb in gooddata-0.6.7
- old
+ new
@@ -106,14 +106,15 @@
# kick the load
pull = { 'pullIntegration' => File.basename(dir) }
link = project.md.links('etl')['pull']
task = GoodData.post link, pull
- # TODO: Refactor the task status out
- while GoodData.get(task['pullTask']['uri'])['taskStatus'] == 'RUNNING' || GoodData.get(task['pullTask']['uri'])['taskStatus'] == 'PREPARED'
- sleep 30
+
+ res = GoodData.poll_on_response(task['pullTask']['uri']) do |body|
+ body['taskStatus'] == 'RUNNING' || body['taskStatus'] == 'PREPARED'
end
- if GoodData.get(task['pullTask']['uri'])['taskStatus'] == 'ERROR'
+
+ if res['taskStatus'] == 'ERROR'
s = StringIO.new
GoodData.download_from_user_webdav(File.basename(dir) + '/upload_status.json', s)
js = MultiJson.load(s.string)
fail "Load Failed with error #{JSON.pretty_generate(js)}"
end