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