Message ID | 20170404064631.16287-2-vfeenstr@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Ping > On Apr 4, 2017, at 8:46 AM, Vinzenz 'evilissimo' Feenstra <vfeenstr@redhat.com> wrote: > > From: Vinzenz Feenstra <vfeenstr@redhat.com> > > Retrieving the guest host name is a very useful feature for virtual management > systems. This information can help to have more user friendly VM access > details, instead of an IP there would be the host name. Also the host name > reported can be used to have automated checks for valid SSL certificates. > > virsh # qemu-agent-command F25 '{ "execute": "guest-get-host-name" }' > {"return":{"host-name":"F25.lab.evilissimo.net"}} > > Signed-off-by: Vinzenz Feenstra <vfeenstr@redhat.com> > --- > qga/commands.c | 11 +++++++++++ > qga/qapi-schema.json | 29 +++++++++++++++++++++++++++++ > 2 files changed, 40 insertions(+) > > diff --git a/qga/commands.c b/qga/commands.c > index 4d92946..57a31bb 100644 > --- a/qga/commands.c > +++ b/qga/commands.c > @@ -499,3 +499,14 @@ int ga_parse_whence(GuestFileWhence *whence, Error **errp) > error_setg(errp, "invalid whence code %"PRId64, whence->u.value); > return -1; > } > + > +GuestHostName *qmp_guest_get_host_name(Error **err) > +{ > + GuestHostName *result = NULL; > + gchar const *hostname = g_get_host_name(); > + if (hostname != NULL) { > + result = g_new0(GuestHostName, 1); > + result->host_name = g_strdup(hostname); > + } > + return result; > +} > diff --git a/qga/qapi-schema.json b/qga/qapi-schema.json > index a02dbf2..b9f99ae 100644 > --- a/qga/qapi-schema.json > +++ b/qga/qapi-schema.json > @@ -1042,3 +1042,32 @@ > 'data': { 'path': 'str', '*arg': ['str'], '*env': ['str'], > '*input-data': 'str', '*capture-output': 'bool' }, > 'returns': 'GuestExec' } > + > + > + > +## > +# @GuestHostName: > +# @host-name: Fully qualified domain name of the guest OS > +# > +# Since: 2.10 > +## > +{ 'struct': 'GuestHostName', > + 'data': { 'host-name': 'str' } } > + > + > +## > +# @guest-get-host-name: > +# > +# Return a name for the machine. > +# > +# The returned name is not necessarily a fully-qualified domain name, or even > +# present in DNS or some other name service at all. It need not even be unique > +# on your local network or site, but usually it is. > +# > +# Returns: the host name of the machine on success > +# > +# Since: 2.10 > +## > +{ 'command': 'guest-get-host-name', > + 'returns': 'GuestHostName' } > + > -- > 2.9.3 > -- Vinzenz Feenstra Senior Software Developer Red Hat Czech
Quoting Vinzenz 'evilissimo' Feenstra (2017-04-04 01:46:31) > From: Vinzenz Feenstra <vfeenstr@redhat.com> > > Retrieving the guest host name is a very useful feature for virtual management > systems. This information can help to have more user friendly VM access > details, instead of an IP there would be the host name. Also the host name > reported can be used to have automated checks for valid SSL certificates. > > virsh # qemu-agent-command F25 '{ "execute": "guest-get-host-name" }' > {"return":{"host-name":"F25.lab.evilissimo.net"}} > > Signed-off-by: Vinzenz Feenstra <vfeenstr@redhat.com> Thanks, applied to qga tree with some minor whitespace fix-ups: https://github.com/mdroth/qemu/commits/qga > --- > qga/commands.c | 11 +++++++++++ > qga/qapi-schema.json | 29 +++++++++++++++++++++++++++++ > 2 files changed, 40 insertions(+) > > diff --git a/qga/commands.c b/qga/commands.c > index 4d92946..57a31bb 100644 > --- a/qga/commands.c > +++ b/qga/commands.c > @@ -499,3 +499,14 @@ int ga_parse_whence(GuestFileWhence *whence, Error **errp) > error_setg(errp, "invalid whence code %"PRId64, whence->u.value); > return -1; > } > + > +GuestHostName *qmp_guest_get_host_name(Error **err) > +{ > + GuestHostName *result = NULL; > + gchar const *hostname = g_get_host_name(); > + if (hostname != NULL) { > + result = g_new0(GuestHostName, 1); > + result->host_name = g_strdup(hostname); > + } > + return result; > +} > diff --git a/qga/qapi-schema.json b/qga/qapi-schema.json > index a02dbf2..b9f99ae 100644 > --- a/qga/qapi-schema.json > +++ b/qga/qapi-schema.json > @@ -1042,3 +1042,32 @@ > 'data': { 'path': 'str', '*arg': ['str'], '*env': ['str'], > '*input-data': 'str', '*capture-output': 'bool' }, > 'returns': 'GuestExec' } > + > + > + > +## > +# @GuestHostName: > +# @host-name: Fully qualified domain name of the guest OS > +# > +# Since: 2.10 > +## > +{ 'struct': 'GuestHostName', > + 'data': { 'host-name': 'str' } } > + > + > +## > +# @guest-get-host-name: > +# > +# Return a name for the machine. > +# > +# The returned name is not necessarily a fully-qualified domain name, or even > +# present in DNS or some other name service at all. It need not even be unique > +# on your local network or site, but usually it is. > +# > +# Returns: the host name of the machine on success > +# > +# Since: 2.10 > +## > +{ 'command': 'guest-get-host-name', > + 'returns': 'GuestHostName' } > + > -- > 2.9.3 > >
diff --git a/qga/commands.c b/qga/commands.c index 4d92946..57a31bb 100644 --- a/qga/commands.c +++ b/qga/commands.c @@ -499,3 +499,14 @@ int ga_parse_whence(GuestFileWhence *whence, Error **errp) error_setg(errp, "invalid whence code %"PRId64, whence->u.value); return -1; } + +GuestHostName *qmp_guest_get_host_name(Error **err) +{ + GuestHostName *result = NULL; + gchar const *hostname = g_get_host_name(); + if (hostname != NULL) { + result = g_new0(GuestHostName, 1); + result->host_name = g_strdup(hostname); + } + return result; +} diff --git a/qga/qapi-schema.json b/qga/qapi-schema.json index a02dbf2..b9f99ae 100644 --- a/qga/qapi-schema.json +++ b/qga/qapi-schema.json @@ -1042,3 +1042,32 @@ 'data': { 'path': 'str', '*arg': ['str'], '*env': ['str'], '*input-data': 'str', '*capture-output': 'bool' }, 'returns': 'GuestExec' } + + + +## +# @GuestHostName: +# @host-name: Fully qualified domain name of the guest OS +# +# Since: 2.10 +## +{ 'struct': 'GuestHostName', + 'data': { 'host-name': 'str' } } + + +## +# @guest-get-host-name: +# +# Return a name for the machine. +# +# The returned name is not necessarily a fully-qualified domain name, or even +# present in DNS or some other name service at all. It need not even be unique +# on your local network or site, but usually it is. +# +# Returns: the host name of the machine on success +# +# Since: 2.10 +## +{ 'command': 'guest-get-host-name', + 'returns': 'GuestHostName' } +