def generate_schemata(remote_url, username, password, latest=True, download=False, to="schemata.tar", debug=False): """ Generate sync data from remote server remote_url: url of remote server (ip:port) username, password: credentials for logging in """ status = rest_util.login(remote_url, username, password) if not status: print "Sorry. Your credentials were not accepted." sys.exit() url = 'http://%s/api/xforms/?format=sync' % remote_url if latest: xmlns_buffer = rest_util.get_field_as_bz2(FormDefModel, 'target_namespace', debug) print "Generating latest remote schemata..." else: xmlns_buffer = '' print "Generating all remote submissions archive..." response = rest_util.request(url, username, password, xmlns_buffer) print "Generated" if download: fout = open(to, 'w+b') fout.write(response.read()) fout.close() print "Schemata downloaded to %s" % to return response
def generate_submissions(remote_url, username, password, latest=True, debug=False, download=False, to='submissions.tar'): """ Generate sync data from remote server remote_url: url of remote server (ip:port) username, password: credentials for logging in """ status = rest_util.login(remote_url, username, password) if not status: print "Sorry. Your credentials were not accepted." sys.exit() url = 'http://%s/api/submissions/' % remote_url if latest: MD5_buffer = rest_util.get_field_as_bz2(Submission, 'checksum', debug) response = rest_util.request(url, username, password, MD5_buffer) print "Generated latest remote submissions" else: response = urllib2.urlopen(url) print "Generated all remote submissions archive" if download: fout = open(to, 'w+b') fout.write(response.read()) fout.close() print "Submissions downloaded to %s" % to else: # Check for status messages # (i think tar payloads always begin 'BZ'...) response = response.read(255) if response[:2] != "BZ": print response return response