[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH RFC 5/9] libxl: introduce specific JSON error codes



Signed-off-by: Rob Hoes <rob.hoes@xxxxxxxxxx>
---
 tools/libxl/libxl_dom.c      | 6 +++---
 tools/libxl/libxl_internal.c | 4 +---
 tools/libxl/libxl_json.c     | 4 ++--
 tools/libxl/libxl_types.idl  | 5 +++++
 4 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c
index a0c9850..efdb570 100644
--- a/tools/libxl/libxl_dom.c
+++ b/tools/libxl/libxl_dom.c
@@ -2323,7 +2323,7 @@ int libxl__userdata_store(libxl__gc *gc, uint32_t domid,
         goto out;
     }
 
-    rc = ERROR_FAIL;
+    rc = ERROR_JSON_SET_CONFIG;
 
     fd = open(newfilename, O_RDWR | O_CREAT | O_TRUNC, 0600);
     if (fd < 0)
@@ -2400,13 +2400,13 @@ int libxl__userdata_retrieve(libxl__gc *gc, uint32_t 
domid,
 
     e = libxl_read_file_contents(CTX, filename, data_r ? &data : 0, &datalen);
     if (e && errno != ENOENT) {
-        rc = ERROR_FAIL;
+        rc = ERROR_JSON_GET_CONFIG;
         goto out;
     }
     if (!e && !datalen) {
         LIBXL__LOG(CTX, LIBXL__LOG_ERROR, "userdata file %s is empty", 
filename);
         if (data_r) assert(!*data_r);
-        rc = ERROR_FAIL;
+        rc = ERROR_JSON_GET_CONFIG;
         goto out;
     }
 
diff --git a/tools/libxl/libxl_internal.c b/tools/libxl/libxl_internal.c
index c2c67bd..4ac43f8 100644
--- a/tools/libxl/libxl_internal.c
+++ b/tools/libxl/libxl_internal.c
@@ -500,7 +500,6 @@ int libxl__get_domain_configuration(libxl__gc *gc, uint32_t 
domid,
     if (rc) {
         LOGEV(ERROR, rc,
               "failed to retrieve domain configuration for domain %d", domid);
-        rc = ERROR_FAIL;
         goto out;
     }
 
@@ -527,7 +526,7 @@ int libxl__set_domain_configuration(libxl__gc *gc, uint32_t 
domid,
         LOGE(ERROR,
              "failed to convert domain configuration to JSON for domain %d",
              domid);
-        rc = ERROR_FAIL;
+        rc = ERROR_JSON_SET_CONFIG;
         goto out;
     }
 
@@ -537,7 +536,6 @@ int libxl__set_domain_configuration(libxl__gc *gc, uint32_t 
domid,
     if (rc) {
         LOGEV(ERROR, rc, "failed to store domain configuration for domain %d",
               domid);
-        rc = ERROR_FAIL;
         goto out;
     }
 
diff --git a/tools/libxl/libxl_json.c b/tools/libxl/libxl_json.c
index 346929a..973d535 100644
--- a/tools/libxl/libxl_json.c
+++ b/tools/libxl/libxl_json.c
@@ -1044,14 +1044,14 @@ int libxl__object_from_json(libxl_ctx *ctx, const char 
*type,
         LOG(ERROR,
             "unable to generate libxl__json_object from JSON representation of 
%s.",
             type);
-        rc = ERROR_FAIL;
+        rc = ERROR_JSON_PARSE_CONFIG;
         goto out;
     }
 
     rc = parse(gc, o, p);
     if (rc) {
         LOG(ERROR, "unable to convert libxl__json_object to %s. (rc=%d)", 
type, rc);
-        rc = ERROR_FAIL;
+        rc = ERROR_JSON_PARSE_CONFIG;
         goto out;
     }
 
diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
index 52795e4..b905353 100644
--- a/tools/libxl/libxl_types.idl
+++ b/tools/libxl/libxl_types.idl
@@ -117,6 +117,11 @@ libxl_error = Enumeration("error", [
         
     # libxc connection error
     (ENUM_PREV, "XC_CONNECT"),
+    
+    # JSON domain config errors
+    (ENUM_PREV, "JSON_GET_CONFIG"),
+    (ENUM_PREV, "JSON_SET_CONFIG"),
+    (ENUM_PREV, "JSON_PARSE_CONFIG"),
     ], value_namespace = "")
 
 libxl_domain_type = Enumeration("domain_type", [
-- 
2.4.1


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.