|
|
3e5111 |
From 046e5f4d9cf163ec2f38ba201c7d4cbe7965d792 Mon Sep 17 00:00:00 2001
|
|
|
3e5111 |
Message-Id: <046e5f4d9cf163ec2f38ba201c7d4cbe7965d792@dist-git>
|
|
|
3e5111 |
From: Peter Krempa <pkrempa@redhat.com>
|
|
|
3e5111 |
Date: Tue, 20 Jun 2017 10:22:40 +0200
|
|
|
3e5111 |
Subject: [PATCH] util: storage: Report errors when source host data is missing
|
|
|
3e5111 |
|
|
|
3e5111 |
Merge the reporting of the missing source host data into the parser
|
|
|
3e5111 |
functions so that callers don't have to do it separately.
|
|
|
3e5111 |
|
|
|
3e5111 |
(cherry picked from commit 299aff7e0cd52c50da518eeed676144d373e9281)
|
|
|
3e5111 |
|
|
|
3e5111 |
https://bugzilla.redhat.com/show_bug.cgi?id=1461638
|
|
|
3e5111 |
|
|
|
3e5111 |
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
|
|
3e5111 |
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
|
|
|
3e5111 |
---
|
|
|
3e5111 |
src/util/virstoragefile.c | 29 +++++++++++++++++++++++------
|
|
|
3e5111 |
1 file changed, 23 insertions(+), 6 deletions(-)
|
|
|
3e5111 |
|
|
|
3e5111 |
diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c
|
|
|
3e5111 |
index f67e714e3c..3f8bc43928 100644
|
|
|
3e5111 |
--- a/src/util/virstoragefile.c
|
|
|
3e5111 |
+++ b/src/util/virstoragefile.c
|
|
|
3e5111 |
@@ -2803,8 +2803,18 @@ static int
|
|
|
3e5111 |
virStorageSourceParseBackingJSONInetSocketAddress(virStorageNetHostDefPtr host,
|
|
|
3e5111 |
virJSONValuePtr json)
|
|
|
3e5111 |
{
|
|
|
3e5111 |
- const char *hostname = virJSONValueObjectGetString(json, "host");
|
|
|
3e5111 |
- const char *port = virJSONValueObjectGetString(json, "port");
|
|
|
3e5111 |
+ const char *hostname;
|
|
|
3e5111 |
+ const char *port;
|
|
|
3e5111 |
+
|
|
|
3e5111 |
+ if (!json) {
|
|
|
3e5111 |
+ virReportError(VIR_ERR_INVALID_ARG, "%s",
|
|
|
3e5111 |
+ _("missing remote server specification in JSON "
|
|
|
3e5111 |
+ "backing volume definition"));
|
|
|
3e5111 |
+ return -1;
|
|
|
3e5111 |
+ }
|
|
|
3e5111 |
+
|
|
|
3e5111 |
+ hostname = virJSONValueObjectGetString(json, "host");
|
|
|
3e5111 |
+ port = virJSONValueObjectGetString(json, "port");
|
|
|
3e5111 |
|
|
|
3e5111 |
if (!hostname) {
|
|
|
3e5111 |
virReportError(VIR_ERR_INVALID_ARG, "%s",
|
|
|
3e5111 |
@@ -2827,10 +2837,17 @@ static int
|
|
|
3e5111 |
virStorageSourceParseBackingJSONSocketAddress(virStorageNetHostDefPtr host,
|
|
|
3e5111 |
virJSONValuePtr json)
|
|
|
3e5111 |
{
|
|
|
3e5111 |
- const char *type = virJSONValueObjectGetString(json, "type");
|
|
|
3e5111 |
- const char *socket = virJSONValueObjectGetString(json, "socket");
|
|
|
3e5111 |
+ const char *type;
|
|
|
3e5111 |
+ const char *socket;
|
|
|
3e5111 |
|
|
|
3e5111 |
- if (!type) {
|
|
|
3e5111 |
+ if (!json) {
|
|
|
3e5111 |
+ virReportError(VIR_ERR_INVALID_ARG, "%s",
|
|
|
3e5111 |
+ _("missing remote server specification in JSON "
|
|
|
3e5111 |
+ "backing volume definition"));
|
|
|
3e5111 |
+ return -1;
|
|
|
3e5111 |
+ }
|
|
|
3e5111 |
+
|
|
|
3e5111 |
+ if (!(type = virJSONValueObjectGetString(json, "type"))) {
|
|
|
3e5111 |
virReportError(VIR_ERR_INVALID_ARG, "%s",
|
|
|
3e5111 |
_("missing socket address type in "
|
|
|
3e5111 |
"JSON backing volume definition"));
|
|
|
3e5111 |
@@ -2843,7 +2860,7 @@ virStorageSourceParseBackingJSONSocketAddress(virStorageNetHostDefPtr host,
|
|
|
3e5111 |
} else if (STREQ(type, "unix")) {
|
|
|
3e5111 |
host->transport = VIR_STORAGE_NET_HOST_TRANS_UNIX;
|
|
|
3e5111 |
|
|
|
3e5111 |
- if (!socket) {
|
|
|
3e5111 |
+ if (!(socket = virJSONValueObjectGetString(json, "socket"))) {
|
|
|
3e5111 |
virReportError(VIR_ERR_INVALID_ARG, "%s",
|
|
|
3e5111 |
_("missing socket path for udp backing server in "
|
|
|
3e5111 |
"JSON backing volume definition"));
|
|
|
3e5111 |
--
|
|
|
3e5111 |
2.13.1
|
|
|
3e5111 |
|