Changeset 560
- Timestamp:
- 02/21/07 14:14:18 (2 years ago)
- Files:
-
- trunk/src/vcc/vce/cmd.c (modified) (1 diff)
- trunk/src/vcd/methods/Makefile.am (modified) (1 diff)
- trunk/src/vcd/methods/vg/vg_add.c (modified) (1 diff)
- trunk/src/vcd/methods/vg/vg_internal.c (added)
- trunk/src/vcd/methods/vg/vg_internal.h (added)
- trunk/src/vcd/methods/vg/vg_list.c (modified) (1 diff)
- trunk/src/vcd/methods/vg/vg_remove.c (modified) (1 diff)
- trunk/src/vcd/methods/vg/vg_vx_start.c (modified) (5 diffs)
- trunk/src/vcd/methods/vg/vg_vx_stop.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/vcc/vce/cmd.c
r559 r560 68 68 " list [<username>]\n" 69 69 "\n" 70 " dep.add <name> <depname>\n"71 " dep.remove <name> <depname>\n"72 "\n"70 " dep.add <name> <depname>\n" 71 " dep.remove <name> <depname>\n" 72 "\n" 73 73 " dx.limit.get <name>\n" 74 74 " dx.limit.remove <name>\n" trunk/src/vcd/methods/Makefile.am
r559 r560 33 33 34 34 M_VG = vg/vg_add.c \ 35 vg/vg_internal.c \ 36 vg/vg_internal.h \ 35 37 vg/vg_list.c \ 36 38 vg/vg_remove.c \ trunk/src/vcd/methods/vg/vg_add.c
r551 r560 1 1 // Copyright 2007 Luca Longinotti <chtekk@gentoo.org> 2 // 2007 Benedikt Böhm <hollow@gentoo.org> 2 3 // 3 4 // This program is free software; you can redistribute it and/or modify trunk/src/vcd/methods/vg/vg_list.c
r558 r560 1 1 // Copyright 2007 Luca Longinotti <chtekk@gentoo.org> 2 // 2007 Benedikt Böhm <hollow@gentoo.org> 2 3 // 3 4 // This program is free software; you can redistribute it and/or modify trunk/src/vcd/methods/vg/vg_remove.c
r558 r560 1 1 // Copyright 2007 Luca Longinotti <chtekk@gentoo.org> 2 // 2007 Benedikt Böhm <hollow@gentoo.org> 2 3 // 3 4 // This program is free software; you can redistribute it and/or modify trunk/src/vcd/methods/vg/vg_vx_start.c
r558 r560 1 1 // Copyright 2007 Luca Longinotti <chtekk@gentoo.org> 2 // 2007 Benedikt Böhm <hollow@gentoo.org> 2 3 // 3 4 // This program is free software; you can redistribute it and/or modify … … 25 26 #include <lucid/str.h> 26 27 28 #include "vg_internal.h" 29 27 30 /* vg.vx.start(string groupname) */ 28 31 xmlrpc_value *m_vg_vx_start(xmlrpc_env *env, xmlrpc_value *p, void *c) … … 30 33 LOG_TRACEME 31 34 32 typedef struct {33 list_t list;34 xid_t xid;35 const char *name;36 } xn_list_t;37 38 35 xmlrpc_value *params; 39 36 char *group; 40 37 int rc, gid; 41 xn_list_t _xns, *xns = &_xns, *pos;38 vg_list_t _vxs, *vxs = &_vxs, *pos; 42 39 43 40 params = method_init(env, p, c, VCD_CAP_INIT, 0); … … 69 66 } 70 67 71 if (rc != VXDB_OK) 72 method_return_vxdb_fault(env); 73 74 INIT_LIST_HEAD(&(xns->list)); 75 76 vxdb_foreach_step(rc, dbr) { 77 LIST_NODE_ALLOC(xn_list_t, new); 78 79 new->xid = vxdb_column_int(dbr, 0); 80 new->name = str_dup(vxdb_column_text(dbr, 1)); 81 82 list_add(&(new->list), &(xns->list)); 83 } 84 85 if (rc != VXDB_DONE) 68 if (rc != VXDB_OK || vg_list_from_vxdb(dbr, vxs) != VXDB_DONE) 86 69 method_return_vxdb_fault(env); 87 70 88 71 vxdb_finalize(dbr); 89 72 90 list_for_each_entry(pos, &( xns->list), list) {73 list_for_each_entry(pos, &(vxs->list), list) { 91 74 /* vserver is stopped, let's start it */ 92 75 if (vx_info(pos->xid, NULL) == -1) { … … 101 84 } 102 85 86 vg_list_free(vxs); 87 103 88 return xmlrpc_nil_new(env); 104 89 } trunk/src/vcd/methods/vg/vg_vx_stop.c
r558 r560 1 1 // Copyright 2007 Luca Longinotti <chtekk@gentoo.org> 2 // 2007 Benedikt Böhm <hollow@gentoo.org> 2 3 // 3 4 // This program is free software; you can redistribute it and/or modify … … 25 26 #include <lucid/str.h> 26 27 28 #include "vg_internal.h" 29 27 30 /* vg.vx.stop(string groupname) */ 28 31 xmlrpc_value *m_vg_vx_stop(xmlrpc_env *env, xmlrpc_value *p, void *c) … … 30 33 LOG_TRACEME 31 34 32 typedef struct {33 list_t list;34 xid_t xid;35 const char *name;36 } xn_list_t;37 38 35 xmlrpc_value *params; 39 36 char *group; 40 37 int rc, gid; 41 xn_list_t _xns, *xns = &_xns, *pos;38 vg_list_t _vxs, *vxs = &_vxs, *pos; 42 39 43 40 params = method_init(env, p, c, VCD_CAP_INIT, 0); … … 69 66 } 70 67 71 if (rc != VXDB_OK) 72 method_return_vxdb_fault(env); 73 74 INIT_LIST_HEAD(&(xns->list)); 75 76 vxdb_foreach_step(rc, dbr) { 77 LIST_NODE_ALLOC(xn_list_t, new); 78 79 new->xid = vxdb_column_int(dbr, 0); 80 new->name = str_dup(vxdb_column_text(dbr, 1)); 81 82 list_add(&(new->list), &(xns->list)); 83 } 84 85 if (rc != VXDB_DONE) 68 if (rc != VXDB_OK || vg_list_from_vxdb(dbr, vxs) != VXDB_OK) 86 69 method_return_vxdb_fault(env); 87 70 88 71 vxdb_finalize(dbr); 89 72 90 list_for_each_entry(pos, &( xns->list), list) {73 list_for_each_entry(pos, &(vxs->list), list) { 91 74 /* vserver is running, let's stop it */ 92 75 if (vx_info(pos->xid, NULL) == 0) { … … 96 79 } 97 80 81 vg_list_free(vxs); 82 98 83 return xmlrpc_nil_new(env); 99 84 }
