def dump(archive, calc_id=0, user=None):
    """
    Dump the openquake database and all the complete calculations into a zip
    file. In a multiuser installation must be run as administrator.
    """
    t0 = time.time()
    assert archive.endswith('.zip'), archive
    getfnames = 'select ds_calc_dir || ".hdf5" from job where ?A'
    param = dict(status='complete')
    if calc_id:
        param['id'] = calc_id
    if user:
        param['user_name'] = user
    fnames = [f for f, in db(getfnames, param) if os.path.exists(f)]
    zipfiles(fnames, archive, 'w', safeprint)
    pending_jobs = db('select id, status, description from job '
                      'where status="executing"')
    if pending_jobs:
        safeprint('WARNING: there were calculations executing during the dump,'
                  ' they have been not copied')
        for job_id, status, descr in pending_jobs:
            safeprint('%d %s %s' % (job_id, status, descr))

    # this also checks that the copied db is not corrupted
    smart_save(db.path, archive, calc_id)

    dt = time.time() - t0
    safeprint('Archived %d calculations into %s in %d seconds'
              % (len(fnames), archive, dt))
def dump ( archive , calc_id = 0 , user = None ) : t0 = time . time ( ) assert archive . endswith ( '.zip' ) , archive getfnames = 'select ds_calc_dir || ".hdf5" from job where ?A' param = dict ( status = 'complete' ) if calc_id : param [ 'id' ] = calc_id if user : param [ 'user_name' ] = user fnames = [ f for f , in db ( getfnames , param ) if os . path . exists ( f ) ] zipfiles ( fnames , archive , 'w' , safeprint ) pending_jobs = db ( 'select id, status, description from job ' 'where status="executing"' ) if pending_jobs : safeprint ( 'WARNING: there were calculations executing during the dump,' ' they have been not copied' ) for job_id , status , descr in pending_jobs : safeprint ( '%d %s %s' % ( job_id , status , descr ) ) smart_save ( db . path , archive , calc_id ) dt = time . time ( ) - t0 safeprint ( 'Archived %d calculations into %s in %d seconds' % ( len ( fnames ) , archive , dt ) )
Dump the openquake database and all the complete calculations into a zip
    file. In a multiuser installation must be run as administrator.