Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
" new one")
sys.exit(3)
logger.info("Using id = " + str(hc_id))
verbose = True
if args.quiet:
verbose = False
# Check node specification
node_host = None
if args.node:
if not (args.execute or args.jarjob):
logger.warn("--node only applies to --execute or --jarjob")
else:
node_host = Host(args.node[0])
# Create or load object
hc_file_name = os.path.join(hg5k_tmp_dir, str(hc_id))
if args.create:
if os.path.exists(hc_file_name):
logger.error("There is a hadoop cluster with that id. You must "
"remove it before or chose another id")
sys.exit(1)
hosts = __generate_hosts(args.create[0])
if args.version:
if args.version[0].startswith("0."):
hadoop_class = HadoopCluster
elif args.version[0].startswith("1."):
Args:
hosts_input: The path of the file containing the hosts to be used,
or a comma separated list of site:job_id or an a comma separated list
of hosts or an oargrid_job_id.
If a file is used, each host should be in a different line.
Repeated hosts are pruned.
Hint: in a running Grid5000 job, $OAR_NODEFILE should be used.
Return:
list of Host: The list of hosts.
"""
hosts = []
if os.path.isfile(hosts_input):
for line in open(hosts_input):
h = Host(line.rstrip())
if h not in hosts:
hosts.append(h)
elif ':' in hosts_input:
# We assume the string is a comma separated list of site:job_id
for job in hosts_input.split(','):
site, job_id = job.split(':')
hosts += get_oar_job_nodes(int(job_id), site)
elif "," in hosts_input:
# We assume the string is a comma separated list of hosts
for hstr in hosts_input.split(','):
h = Host(hstr.rstrip())
if h not in hosts:
hosts.append(h)
elif hosts_input.isdigit():
# If the file_name is a number, we assume this is a oargrid_job_id
hosts = get_oargrid_job_nodes(int(hosts_input))
for job in hosts_input.split(','):
site, job_id = job.split(':')
hosts += get_oar_job_nodes(int(job_id), site)
elif "," in hosts_input:
# We assume the string is a comma separated list of hosts
for hstr in hosts_input.split(','):
h = Host(hstr.rstrip())
if h not in hosts:
hosts.append(h)
elif hosts_input.isdigit():
# If the file_name is a number, we assume this is a oargrid_job_id
hosts = get_oargrid_job_nodes(int(hosts_input))
else:
# If not any of the previous, we assume is a single-host cluster where
# the given input is the only host
hosts = [Host(hosts_input.rstrip())]
logger.debug('Hosts list: \n%s',
' '.join(style.host(host.address.split('.')[0])
for host in hosts))
return hosts
def __generate_hosts(file_name):
"""Generate a list of hosts from the given file.
Args:
file_name: The path of the file containing the hosts to be used. Each
host should be in a different line. Repeated hosts are pruned.
Hint: in Grid5000 $OAR_NODEFILE should be used.
Return:
list of Host: The list of hosts.
"""
hosts = []
for line in open(file_name):
h = Host(line.rstrip())
if not h in hosts:
hosts.append(h)
return hosts