grub2 reads its configuration as a script, so an unquoted command separator
ends the linux command and everything after it is lost. The Ubuntu
installer seed is written as ds=nocloud-net;s=<url>, so the node booted
without the seed URL and without the arguments that followed it, including
BOOTIF. The installer then found no autoinstall configuration and waited
for someone to answer its questions. A separator that is neither escaped
nor inside a quoted span is now escaped where it stands, which grub2
removes before it hands the line to the kernel. A value the caller escaped
or quoted keeps exactly the form the caller gave it.
Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
noderes.netboot is parsed as grub2-<protocol> and validated with
/^http|tftp$/, which reads as (^http)|(tftp$) and so also accepts values
such as https, httpx and xtftp.
A value that passes but is not exactly "http" then falls through to
set root=$grub2protocol,$serverip, which drops site.httpport, so the mistake
surfaces as a confusing grub2 failure at boot instead of the "Invalid netboot
method" error this check exists to give. grub2-https cannot work in any case,
since only "insmod http" is emitted.
Supported values are unchanged: grub2, grub2-http and grub2-tftp.
* Make disjoint mode working when service node up (inittime=1), and in the time not run in parallel to avoid access DB too much
* For shared tftp, nothing need to be done in AAsn
2, handle 'disjoint' in preprocess method, to make sure that no request will be sent to SN which does not manage the nodes.
3, refine 'stat' to make sure it could query unmanaged nodes on-demand.
* Fix#3087: nodeset improvement - using multi-process to parallelize
- before deliver the request to xcatd, we can split the request to multiple sub-requests which contains different noderange
- in that, xcatd could hanle those sub-requests in parallel, just like some issue multiple commands.
* refine according to the review comments:
- not using POSIX::ceil
- Callback is reserved for filter method
* refine codes according review comments
* make the comments right and more readable.
* Fix issue #2794, Nodeset fails to generate /tftpboot config files if ip attribute is not set
- Report error when the node cannot be handled by its xcatmaster/servicenode (sharedtftp=0)
* - using determinehostname to get the current server name, it will reduce the time when many service nodes.
With the nytprof tool, the buttleneck is the time to update the bootparams
table.To optimize the performance on large scale nodes, this patch tranfer
the bootparams hash through variable reference.
posible impact: getdestiny can not get the information about bootparams.
partial-issue: #2024