def get_grid_image_for_singularity(platform): """ Return the full path to the singularity grid image :param platform: E.g. "x86_64-slc6" (string). :return: full path to grid image (string). """ if not platform or platform == "": platform = "x86_64-slc6" logger.warning("using default platform=%s (cmtconfig not set)", platform) arch_and_os = extract_platform_and_os(platform) image = arch_and_os + ".img" _path = os.path.join(get_file_system_root_path(), "atlas.cern.ch/repo/containers/images/singularity") path = os.path.join(_path, image) if not os.path.exists(path): image = 'x86_64-centos7.img' logger.warning( 'path does not exist: %s (trying with image %s instead)', path, image) path = os.path.join(_path, image) if not os.path.exists(path): logger.warning('path does not exist either: %s', path) path = "" return path
def verify_proxy(limit=None, x509=None, proxy_id="pilot", test=False): """ Check for a valid voms/grid proxy longer than N hours. Use `limit` to set required time limit. :param limit: time limit in hours (int). :param x509: points to the proxy file. If not set (=None) - get proxy file from X509_USER_PROXY environment :return: exit code (NOPROXY or NOVOMSPROXY), diagnostics (error diagnostics string). """ if limit is None: limit = 48 # add setup for arcproxy if it exists #arcproxy_setup = "%s/atlas.cern.ch/repo/sw/arc/client/latest/slc6/x86_64/setup.sh" % get_file_system_root_path() if x509 is None: x509 = os.environ.get('X509_USER_PROXY', '') if x509 != '': envsetup = 'export X509_USER_PROXY=%s;' % x509 else: envsetup = '' envsetup += ". %s/atlas.cern.ch/repo/ATLASLocalRootBase/user/atlasLocalSetup.sh --quiet;" % get_file_system_root_path( ) if os.environ.get('ALRB_noGridMW', '').lower() != "yes": envsetup += "lsetup emi;" else: logger.warning('Skipping "lsetup emi" as ALRB_noGridMW=YES') # first try to use arcproxy since voms-proxy-info is not working properly on SL6 # (memory issues on queues with limited memory) exit_code, diagnostics = verify_arcproxy(envsetup, limit, proxy_id, test=test) if exit_code != 0 and exit_code != -1: return exit_code, diagnostics elif exit_code == -1: pass # go to next test else: return 0, diagnostics exit_code, diagnostics = verify_vomsproxy(envsetup, limit) if exit_code != 0: return exit_code, diagnostics else: return 0, diagnostics return 0, diagnostics
def verify_proxy(limit=None): """ Check for a valid voms/grid proxy longer than N hours. Use `limit` to set required time limit. :param limit: time limit in hours (int). :return: exit code (NOPROXY or NOVOMSPROXY), diagnostics (error diagnostics string). """ exit_code = 0 diagnostics = "" if limit is None: limit = 48 # add setup for arcproxy if it exists #arcproxy_setup = "%s/atlas.cern.ch/repo/sw/arc/client/latest/slc6/x86_64/setup.sh" % get_file_system_root_path() x509 = os.environ.get('X509_USER_PROXY', '') if x509 != '': envsetup = 'export X509_USER_PROXY=%s;' % x509 else: envsetup = '' #envsetup += ". %s;" % (arcproxy_setup) envsetup += ". %s/atlas.cern.ch/repo/ATLASLocalRootBase/user/atlasLocalSetup.sh --quiet;" % get_file_system_root_path( ) if os.environ.get('ALRB_noGridMW', '').lower() != "yes": envsetup += "lsetup emi;" else: logger.warning('Skipping "lsetup emi" as ALRB_noGridMW=YES') # first try to use arcproxy since voms-proxy-info is not working properly on SL6 # (memory issues on queues with limited memory) ec, diagnostics = verify_arcproxy(envsetup, limit) if ec == 0: return ec, diagnostics ec, diagnostics = verify_vomsproxy(envsetup, limit) if ec == 0: return ec, diagnostics ec, diagnostics = verify_gridproxy(envsetup, limit) if ec == 0: return ec, diagnostics logger.warning( 'none of the proxy verification methods worked - skipping verification' ) return exit_code, diagnostics