Changeset 558

Show
Ignore:
Timestamp:
02/20/07 21:46:23 (2 years ago)
Author:
chtekk
Message:

Fixup vg methods.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/vcd/methods/vg/vg_list.c

    r551 r558  
    5050                                        "invalid group value: %s", group); 
    5151 
     52                if (str_equal(group, "all")) 
     53                        method_return_faultf(env, MEINVAL, 
     54                                        "cannot list group '%s', use vxdb.list instead", group); 
     55 
    5256                if (!(gid = vxdb_getgid(group))) 
    5357                        method_return_fault(env, MENOVG); 
  • trunk/src/vcd/methods/vg/vg_remove.c

    r551 r558  
    2929 
    3030        xmlrpc_value *params; 
    31         char *name, *group
     31        char *group, *name
    3232        int gid, rc; 
    3333        xid_t xid; 
     
    6262 
    6363                rc = vxdb_exec( 
    64                                 "INSERT INTO xid_gid_map (xid, gid) " 
    65                                 "VALUES (%d, %d)", 
     64                                "DELETE FROM xid_gid_map WHERE xid = %d AND gid = %d", 
    6665                                xid, gid); 
    6766        } 
     
    6968        else { 
    7069                rc = vxdb_exec( 
    71                         "BEGIN EXCLUSIVE TRANSACTION;" 
    72                         "DELETE FROM xid_gid_map WHERE gid = %d;" 
    73                         "DELETE FROM groups WHERE gid = %d;" 
    74                         "COMMIT TRANSACTION;", 
    75                         gid, gid); 
     70                               "BEGIN EXCLUSIVE TRANSACTION;" 
     71                               "DELETE FROM xid_gid_map WHERE gid = %d;" 
     72                               "DELETE FROM groups WHERE gid = %d;" 
     73                               "COMMIT TRANSACTION;", 
     74                               gid, gid); 
    7675        } 
    7776 
  • trunk/src/vcd/methods/vg/vg_vx_start.c

    r551 r558  
    2323#include <lucid/list.h> 
    2424#include <lucid/log.h> 
    25 #include <lucid/mem.h> 
    2625#include <lucid/str.h> 
    2726 
     
    6362 
    6463                rc = vxdb_prepare(&dbr, 
    65                         "SELECT xid_name_map.xid,xid_name_map.name FROM xid_name_map " 
    66                         "INNER JOIN xid_gid_map " 
    67                         "ON xid_name_map.xid = xid_gid_map.xid " 
    68                         "WHERE xid_gid_map.gid = %d", 
    69                         gid); 
     64                               "SELECT xid_name_map.xid,xid_name_map.name FROM xid_name_map " 
     65                               "INNER JOIN xid_gid_map " 
     66                               "ON xid_name_map.xid = xid_gid_map.xid " 
     67                               "WHERE xid_gid_map.gid = %d", 
     68                               gid); 
    7069        } 
    7170 
     
    9089 
    9190        list_for_each_entry(pos, &(xns->list), list) { 
     91                /* vserver is stopped, let's start it */ 
    9292                if (vx_info(pos->xid, NULL) == -1) { 
    9393                        if (errno == ESRCH) { 
  • trunk/src/vcd/methods/vg/vg_vx_stop.c

    r551 r558  
    2323#include <lucid/list.h> 
    2424#include <lucid/log.h> 
    25 #include <lucid/mem.h> 
    2625#include <lucid/str.h> 
    2726 
     
    5655        if (str_equal(group, "all")) 
    5756                rc = vxdb_prepare(&dbr, 
    58                         "SELECT xid,name FROM xid_name_map"); 
     57                               "SELECT xid,name FROM xid_name_map"); 
    5958 
    6059        else { 
     
    6362 
    6463                rc = vxdb_prepare(&dbr, 
    65                         "SELECT xid_name_map.xid,xid_name_map.name FROM xid_name_map " 
    66                         "INNER JOIN xid_gid_map " 
    67                         "ON xid_name_map.xid = xid_gid_map.xid " 
    68                         "WHERE xid_gid_map.gid = %d", 
    69                         gid); 
     64                               "SELECT xid_name_map.xid,xid_name_map.name FROM xid_name_map " 
     65                               "INNER JOIN xid_gid_map " 
     66                               "ON xid_name_map.xid = xid_gid_map.xid " 
     67                               "WHERE xid_gid_map.gid = %d", 
     68                               gid); 
    7069        } 
    7170 
     
    9089 
    9190        list_for_each_entry(pos, &(xns->list), list) { 
     91                /* vserver is running, let's stop it */ 
    9292                if (vx_info(pos->xid, NULL) == 0) { 
    9393                        params = xmlrpc_build_value(env, "{s:s}", "name", pos->name); 
  • trunk/src/vcd/vxdb.h

    r534 r558  
    6060char *vxdb_getname(xid_t xid); 
    6161char *vxdb_getvdir(const char *name); 
    62 int   vxdb_getgid(const char *groupname); 
     62int   vxdb_getgid(const char *group); 
    6363 
    6464#endif