]> rtime.felk.cvut.cz Git - frescor/frsh.git/commitdiff
FCB produces more meaningful error messages now
authorMichal Sojka <sojkam1@fel.cvut.cz>
Wed, 27 May 2009 14:06:40 +0000 (16:06 +0200)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Wed, 27 May 2009 14:07:17 +0000 (16:07 +0200)
fres/cbroker/fcb.c
fres/contract/fres_error.c
fres/contract/fres_error.h

index 02e99cfefe9cf4ecd220cead20ef83789d176adb..9da5e6847d5264a8c6cac779f7ab1d0bb39d6833 100644 (file)
@@ -346,7 +346,7 @@ prepare_fcb_contracts(struct fcb *fcb, struct fcb_contract *fcb_contracts[],
                        if (!*resource) {
                                ul_logerr("No resource manager for %d.%d registered\n",
                                          key.type, key.id);
-                               return FRSH_ERR_RESOURCE_ID_INVALID;
+                               return FRES_ERR_NO_RESOURCE_MANAGER;
                        }
                }
                else if (key.type != key2.type ||
@@ -818,6 +818,7 @@ CORBA_long register_allocator(fres_contract_broker obj,
        struct res_key resource;
        forb_server_id server_id;
        char server_id_str[40];
+       int ret;
 
        forb_get_server_id(ra_obj, &server_id);
        forb_server_id_to_string(server_id_str, &server_id, sizeof(server_id_str));
@@ -830,6 +831,7 @@ CORBA_long register_allocator(fres_contract_broker obj,
        if (!res) {
                ul_logerr("No manager found for %d.%d. Unable to register the allocator!\n",
                          restype, resid);
+               ret = FRES_ERR_NO_RESOURCE_MANAGER;
                goto err;
        }
        ra = fcb_alloc_find(res, &server_id);
@@ -838,10 +840,12 @@ CORBA_long register_allocator(fres_contract_broker obj,
                ul_logerr("Allocator from already registered (%s)\n",
                          str);
                forb_free(str);
+               ret = FRES_ERR_ALLOCATOR_ALREADY_REGISTERED;
                goto err;
        }
        ra = malloc(sizeof(*ra));
        if (!ra) {
+               ret = ENOMEM;
                goto err;
        }
        ra->app = server_id;
@@ -849,7 +853,7 @@ CORBA_long register_allocator(fres_contract_broker obj,
        fcb_alloc_insert(res, ra);
        return 0;
 err:
-       return FRSH_ERR_RESOURCE_ID_INVALID;
+       return ret;
 }
 
 void get_resources(fres_contract_broker obj, fres_resource_seq** resources, CORBA_Environment *ev)
index 740f9076a99fcf391490ef2d6064ead5ecb77377..bfcf30f2e9ea4ac122ae7c76e7502b6228ae4ce8 100644 (file)
@@ -122,6 +122,8 @@ int fres_strerror (int error, char *message, size_t size)
                MSG(FORB_EX_OBJECT_NOT_EXIST);
                MSG(FORB_EX_TIMEOUT);
                MSG(FORB_EX_APPLICATION);
+               MSG(NO_RESOURCE_MANAGER);
+               MSG(ALLOCATOR_ALREADY_REGISTERED);
        }
 
        if (s == NULL) return FRSH_ERR_BAD_ARGUMENT;
index aacc7ad7d834b4bd720648708eca40ad9dd2918a..8864b457ccc2b9a231a4435069e013cf9a22882e 100644 (file)
@@ -91,6 +91,8 @@ enum fres_error {
        FRES_ERR_FORB_EX_OBJECT_NOT_EXIST,
        FRES_ERR_FORB_EX_TIMEOUT,
        FRES_ERR_FORB_EX_APPLICATION,
+       FRES_ERR_NO_RESOURCE_MANAGER,
+       FRES_ERR_ALLOCATOR_ALREADY_REGISTERED,
 };
 
 int fres_strerror (int error, char *message, size_t size);