def gf_transfer(event_dir, version=1, pdl_config=None, dry_run=False, status='UPDATE'): """ Transfer ground failure results to dev server. Args: event_dir (str): Path to event directory. version (int): Version number of ground-failure run. pdl_config (str): Path to PDL config file. dry_run (bool): True suppresss transfer but data is assesmbled for the transfer. status (str): Status of ground-failure product being sent to comcat. Default is "UPDATE" but can also be "WARNING" so that the product page displays the warning banner. Returns: tuple: - Success: bool for whether transfer was successful. - feed: link to json feed for product. """ print('Preparing directory to transfer %s...' % event_dir) pdl.prepare_pdl_directory(event_dir) if pdl_config is None: print('PDL directory prepared, no pdl_config ' 'provided so no files were sent') return (True, None, None) else: # Transfer if not dry_run: print('Transferring...') else: print('Constructing PDL command...') log = pdl.transfer(event_dir, version, pdl_config, dryrun=dry_run, status=status) if log['rc'] is True and dry_run is False: print('Successful PDL transfer.') success = True elif log['rc'] is True and dry_run is True: print("Dry run complete, no transfer attempted.") success = True else: print('PDL transfer failed.') print(log['so'].decode()) success = False return success
def test_zhu2015_web(tmpdir): shakegrid = os.path.join(datadir, 'loma_prieta', 'grid.xml') pathcmd = """ gfail --set-default-paths \ -d %s/loma_prieta/model_inputs \ -o [TMPOUT] \ -c %s/defaultconfigfiles/models \ -m %s/defaultconfigfiles/mapconfig.ini \ -md %s/loma_prieta/mapping_inputs """ % (datadir, upone, upone, datadir) # Make a copy of current defaults default_file = os.path.join(os.path.expanduser("~"), ".gfail_defaults") if os.path.exists(default_file): shutil.copy(default_file, default_file + '_bak') try: try: p = os.path.join(str(tmpdir.name), "sub") except: p = os.path.join(str(tmpdir), "sub") if not os.path.exists(p): os.makedirs(p) else: shutil.rmtree(p) os.makedirs(p) # Clear paths rc, so, se = get_command_output('gfail -reset') np.testing.assert_equal(True, rc, 'gfail reset failed') # Modify paths pathcmd = pathcmd.replace('[TMPOUT]', p) rc, so, se = get_command_output(pathcmd) np.testing.assert_equal(True, rc, 'gfail path modification failed') with open(default_file, "a") as f: f.write("popfile = %s" % os.path.join(datadir, 'loma_prieta/lspop2016_lp.flt')) # Run model conf = os.path.join(datadir, 'test_conf') runcmd = "gfail %s %s -w --hdf5 -ext" % (conf, shakegrid) rc, so, se = get_command_output(runcmd) np.testing.assert_equal(True, rc, se.decode()) # event_dir = os.path.join(p, '19891018000415') # # Make png # cmd = 'create_png -e %s' % event_dir # rc1, so1, se1 = get_command_output(cmd) # np.testing.assert_equal(True, rc1, se1.decode()) # # Make info # cmd = 'create_info -e %s' % event_dir # rc2, so2, se2 = get_command_output(cmd) # np.testing.assert_equal(True, rc2, se2.decode()) # Make PDL directory # pdldir = os.path.join(p, '19891018000415') pdldir = p pdl.prepare_pdl_directory(pdldir) # Transfer dry run pdl_out = pdl.transfer(pdldir, 1, 'None', dryrun=True) except Exception as e: # So that defaults are put back even if something goes wrong print(e) # Put defaults back if os.path.exists(default_file + '_bak'): shutil.copy(default_file + '_bak', default_file) # remove backup os.remove(default_file + '_bak') # Then do test assert pdl_out['rc'] is True # Remove tempfile shutil.rmtree(p)