[ovs-dev] [PATCH 1/3] ovs-ctl: fallback to "uname -n" for fetching hostname
Ben Pfaff
blp at ovn.org
Mon Dec 3 21:09:45 UTC 2018
On Sun, Dec 02, 2018 at 08:51:09PM +0800, Yousong Zhou wrote:
> On Sun, 2 Dec 2018 at 02:05, Aaron Conole <aconole at redhat.com> wrote:
> >
> > Yousong Zhou <yszhou4tech at gmail.com> writes:
> >
> > > On Fri, 30 Nov 2018 at 23:23, Aaron Conole <aconole at redhat.com> wrote:
> > >>
> > >> Yousong Zhou <yszhou4tech at gmail.com> writes:
> > >>
> > >> > From: Yousong Zhou <yszhou4tech at gmail.com>
> > >> >
> > >> > The command "hostname" is not available in OpenWrt by default. Strace
> > >> > result of hostname-3.13 on centos7 shows that bare "hostname" command
> > >> > calls uname() to fetch node name.
> > >> >
> > >> > Signed-off-by: Yousong Zhou <yszhou4tech at gmail.com>
> > >> > ---
> > >> > utilities/ovs-ctl.in | 2 +-
> > >> > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >> >
> > >> > diff --git a/utilities/ovs-ctl.in b/utilities/ovs-ctl.in
> > >> > index e42f0f1e6..7f2b17b06 100644
> > >> > --- a/utilities/ovs-ctl.in
> > >> > +++ b/utilities/ovs-ctl.in
> > >> > @@ -40,7 +40,7 @@ set_hostname () {
> > >> > # call this only after ovs-vswitchd is running.
> > >> > hn="$(hostname -f)"
> > >> > if test X$FULL_HOSTNAME = Xno; then
> > >> > - hn="$(hostname)"
> > >> > + hn="$(uname -n)"
> > >> > fi
> > >>
> > >> Should we also modify the call to 'hostname' above, too? ie:
> > >>
> > >> - hn="$(hostname -f)"
> > >> + hn="$(uname -n)"
> > >>
> > >> I don't know since uname -n is always the same as hostname -f,
> > >> iirc. That makes the option (FULL_HOSTNAME=no) look strange.
> > >>
> > >> Actually, that makes me think that the hn="$(hostname)" might need to
> > >> have been 'hostname -s' - but I'm not sure.
> > >
> > > On my centos7 machine, `hostname -f` will try to form and verify fqdn
> > > by reading "domain" from /etc/resolv.conf and doing dns query. I
> > > think the output of "uname -n" is same as with "sysctl -n
> > > kernel.hostname"
> >
> > Still, I think the hostname call above should be reworked. Maybe
> > something like:
> >
> > hn="$(uname -n)"
> > if test X$FULL_HOSTNAME = Xyes; then
> > hn=$(hostname -f)
> > fi
> >
> > Just a thought. If hostname doesn't exist, then you're going to always
> > invoke it as-is. Maybe I'm misunderstanding something, though. WDYT?
>
> maybe at the beginning when this code was written the intent of
> "hostname -f" was to make the name as "full" as possible so that it
> can be uniquely identified in a larger scale from a different domain,
> or from "external". If that is the case, then "uname -n" should only
> be used as a fallback in the heristics.
I think that was the intent.
This might be a reasonable way to do it, which would deal with hostname
not being available:
if X$FULL_HOSTNAME = Xyes; then
hn=$(hostname -f) || hn=$(uname -n)
else
hn=$(uname -n)
fi
More information about the dev
mailing list