def get_target_volume(ngams_server): """ Get a random target volume with availability :param ngams_server: Reference to NG/AMS server class object (ngamsServer) :return: Target volume object or None (ngamsDiskInfo | None) """ sql = "select %s from ngas_disks nd " \ "where completed=0 AND host_id={0} order by available_mb desc" % ngamsDbCore.getNgasDisksCols() result = ngams_server.getDb().query2(sql, args=(ngams_server.getHostId(),)) if not result: return None else: return ngamsDiskInfo.ngamsDiskInfo().unpackSqlResult(result[0])
def getTargetVolume(srvObj): """ Get the volume with most space available srvObj: Reference to NG/AMS server class object (ngamsServer). Returns: Target volume object or None (ngamsDiskInfo | None). """ sqlQuery = GET_AVAIL_VOLS_QUERY % ngamsDbCore.getNgasDisksCols() res = srvObj.getDb().query2(sqlQuery, args=(srvObj.getHostId(), )) if not res: return None else: return ngamsDiskInfo.ngamsDiskInfo().unpackSqlResult(res[0])
def getTargetVolume(srvObj): """ Get a random target volume with availability. srvObj: Reference to NG/AMS server class object (ngamsServer). Returns: Target volume object or None (ngamsDiskInfo | None). """ sqlQuery = "SELECT %s FROM ngas_disks nd WHERE completed=0 AND " + \ "host_id={0} order by available_mb desc" % ngamsDbCore.getNgasDisksCols() res = srvObj.getDb().query2(sqlQuery, args=(srvObj.getHostId(), )) if not res: return None else: return ngamsDiskInfo.ngamsDiskInfo().unpackSqlResult(res[0])
def get_mounted_disk_info(ngams_server, mount_point): disk_info = _cached_disk_info.get((ngams_server.getHostId(), mount_point), None) if disk_info is None: sql = "select %s from ngas_disks nd where mount_point = {0} and host_id = {1}"\ % ngamsDbCore.getNgasDisksCols() result = ngams_server.getDb().query2(sql, args=(mount_point, ngams_server.getHostId())) if not result: disk_info = None else: disk_info = ngamsDiskInfo.ngamsDiskInfo().unpackSqlResult( result[0]) _cached_disk_info[(ngams_server.getHostId(), mount_point)] = disk_info return disk_info
def getMountedDiskInfo(srvObj, mountPoint): diskinfo = _cached_disk_info.get((srvObj.getHostId(), mountPoint), None) if diskinfo == None: sqlQuery = "SELECT %s FROM ngas_disks nd WHERE mount_point = {0} and host_id = {1}" % ngamsDbCore.getNgasDisksCols( ) res = srvObj.getDb().query2(sqlQuery, args=(mountPoint, srvObj.getHostId())) if not res: diskinfo = None else: diskinfo = ngamsDiskInfo.ngamsDiskInfo().unpackSqlResult(res[0]) _cached_disk_info[(srvObj.getHostId(), mountPoint)] = diskinfo return diskinfo