def reset_vessel_timeout(): # resets each vessel's timeout to the original values before file upload for longname in seash_global_variables.vesselinfo: thisvesselhandle = seash_global_variables.vesselinfo[longname]['handle'] thisvesselhandledict = fastnmclient.nmclient_get_handle_info(thisvesselhandle) thisvesselhandledict['timeout'] = seash_global_variables.globalseashtimeout fastnmclient.nmclient_set_handle_info(thisvesselhandle,thisvesselhandledict)
def reset_vessel_timeout(): # resets each vessel's timeout to the original values before file upload for longname in seash_global_variables.vesselinfo: thisvesselhandle = seash_global_variables.vesselinfo[longname][ 'handle'] thisvesselhandledict = fastnmclient.nmclient_get_handle_info( thisvesselhandle) thisvesselhandledict[ 'timeout'] = seash_global_variables.globalseashtimeout fastnmclient.nmclient_set_handle_info(thisvesselhandle, thisvesselhandledict)
def set_upload_timeout(filedata): filesize = len(filedata) est_upload_time = filesize / seash_global_variables.globaluploadrate # sets the new timeout if necessary if est_upload_time > seash_global_variables.globalseashtimeout: for longname in seash_global_variables.vesselinfo: thisvesselhandle = seash_global_variables.vesselinfo[longname]['handle'] thisvesselhandledict = fastnmclient.nmclient_get_handle_info(thisvesselhandle) thisvesselhandledict['timeout'] = est_upload_time fastnmclient.nmclient_set_handle_info(thisvesselhandle,thisvesselhandledict)
def set_upload_timeout(filedata): filesize = len(filedata) est_upload_time = filesize / seash_global_variables.globaluploadrate # sets the new timeout if necessary if est_upload_time > seash_global_variables.globalseashtimeout: for longname in seash_global_variables.vesselinfo: thisvesselhandle = seash_global_variables.vesselinfo[longname][ 'handle'] thisvesselhandledict = fastnmclient.nmclient_get_handle_info( thisvesselhandle) thisvesselhandledict['timeout'] = est_upload_time fastnmclient.nmclient_set_handle_info(thisvesselhandle, thisvesselhandledict)
def savestate(statefn, handleinfo, host, port, expnum, filename, cmdargs, defaulttarget, defaultkeyname, autosave, currentkeyname): # obtain the handle info dictionary for longname in seash_global_variables.vesselinfo.keys(): vessel_handle = seash_global_variables.vesselinfo[longname]['handle'] handleinfo[longname] = fastnmclient.nmclient_get_handle_info( vessel_handle) state = {} state['targets'] = seash_global_variables.targets state['keys'] = seash_global_variables.keys state['vesselinfo'] = seash_global_variables.vesselinfo state['nextid'] = seash_global_variables.nextid state['handleinfo'] = handleinfo state['host'] = host state['port'] = port state['expnum'] = expnum state['filename'] = filename state['cmdargs'] = cmdargs state['defaulttarget'] = defaulttarget state['defaultkeyname'] = defaultkeyname state['autosave'] = autosave state['globalseashtimeout'] = seash_global_variables.globalseashtimeout state['globaluploadrate'] = seash_global_variables.globaluploadrate # serialize states and encrypt if seash_global_variables.keys.has_key(defaultkeyname): cypher = rsa_encrypt( serialize_serializedata(state), seash_global_variables.keys[currentkeyname]['publickey']) else: raise seash_exceptions.UserError("The keyname '" + defaultkeyname + "' is not loaded.") # writing encrypted serialized states to file # Exceptions are caught outside of the method try: state_obj = open(statefn, 'w') state_obj.write(cypher) finally: state_obj.close()
def savestate(statefn, handleinfo, host, port, expnum, filename, cmdargs, defaulttarget, defaultkeyname, autosave, currentkeyname): # obtain the handle info dictionary for longname in seash_global_variables.vesselinfo.keys(): vessel_handle = seash_global_variables.vesselinfo[longname]['handle'] handleinfo[longname] = fastnmclient.nmclient_get_handle_info(vessel_handle) state = {} state['targets'] = seash_global_variables.targets state['keys'] = seash_global_variables.keys state['vesselinfo'] = seash_global_variables.vesselinfo state['nextid'] = seash_global_variables.nextid state['handleinfo'] = handleinfo state['host'] = host state['port'] = port state['expnum'] = expnum state['filename'] = filename state['cmdargs'] = cmdargs state['defaulttarget'] = defaulttarget state['defaultkeyname'] = defaultkeyname state['autosave'] = autosave state['globalseashtimeout'] = seash_global_variables.globalseashtimeout state['globaluploadrate'] = seash_global_variables.globaluploadrate # serialize states and encrypt if seash_global_variables.keys.has_key(defaultkeyname): cypher = rsa_encrypt(serialize_serializedata(state), seash_global_variables.keys[currentkeyname]['publickey']) else: raise seash_exceptions.UserError("The keyname '" + defaultkeyname + "' is not loaded.") # writing encrypted serialized states to file # Exceptions are caught outside of the method try: state_obj = open(statefn, 'w') state_obj.write(cypher) finally: state_obj.close()
try: # need to contact the node to get the list of vessels we can perform # actions on... ownervessels, uservessels = fastnmclient.nmclient_listaccessiblevessels(nodehandle,seash_global_variables.keys[currentkeyname]['publickey']) retlist = [] # we should add anything we can access (whether a user or owner vessel) for vesselname in ownervessels + uservessels: longname = host+":"+str(port)+":"+vesselname # if we haven't discovered the vessel previously... if longname not in seash_global_variables.targets: # set the vesselname in the handle newhandle = fastnmclient.nmclient_duplicatehandle(nodehandle) handleinfo = fastnmclient.nmclient_get_handle_info(newhandle) handleinfo['vesselname'] = vesselname fastnmclient.nmclient_set_handle_info(newhandle, handleinfo) # then add the vessel to the target list, etc. # add_vessel has no race conditions as long as longname is unique # (and it should be unique) id = add_vessel(longname,currentkeyname,newhandle) seash_global_variables.targets[targetgroup].append(longname) # and append some information to be printed... retlist.append('%'+str(id)+"("+longname+")") finally:
# actions on... ownervessels, uservessels = fastnmclient.nmclient_listaccessiblevessels( nodehandle, seash_global_variables.keys[currentkeyname]['publickey']) retlist = [] # we should add anything we can access (whether a user or owner vessel) for vesselname in ownervessels + uservessels: longname = host + ":" + str(port) + ":" + vesselname # if we haven't discovered the vessel previously... if longname not in seash_global_variables.targets: # set the vesselname in the handle newhandle = fastnmclient.nmclient_duplicatehandle(nodehandle) handleinfo = fastnmclient.nmclient_get_handle_info(newhandle) handleinfo['vesselname'] = vesselname fastnmclient.nmclient_set_handle_info(newhandle, handleinfo) # then add the vessel to the target list, etc. # add_vessel has no race conditions as long as longname is unique # (and it should be unique) id = add_vessel(longname, currentkeyname, newhandle) seash_global_variables.targets[targetgroup].append(longname) # and append some information to be printed... retlist.append('%' + str(id) + "(" + longname + ")") finally: fastnmclient.nmclient_destroyhandle(nodehandle)