Changeset 547

Show
Ignore:
Timestamp:
02/20/07 11:29:12 (2 years ago)
Author:
hollow
Message:

first part of client unification

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/configure.ac

    r534 r547  
    3131# Checks for programs. 
    3232AC_PROG_CC 
     33AM_PROG_CC_C_O 
    3334AC_PROG_LIBTOOL 
    3435AC_PROG_INSTALL 
     
    187188AC_CONFIG_FILES([Makefile 
    188189                 doc/Makefile 
     190                 src/vcc/vcc/Makefile 
     191                 src/vcc/vcdadm/Makefile 
     192                 src/vcc/vce/Makefile 
     193                 src/vcc/vgc/Makefile 
    189194                 src/vcc/Makefile 
    190195                 src/vcd/methods/Makefile 
    191196                 src/vcd/Makefile 
    192                  src/vcdadm/Makefile 
    193                  src/vce/Makefile 
    194                  src/vgc/Makefile 
    195197                 src/vshelper/Makefile 
    196198                 src/vxpasswd/Makefile 
  • trunk/src/Makefile.am

    r534 r547  
    1818SUBDIRS = vcc \ 
    1919          vcd \ 
    20           vcdadm \ 
    21           vce \ 
    22           vgc \ 
    2320          vshelper \ 
    2421          vxpasswd 
  • trunk/src/vcc/Makefile.am

    r534 r547  
    1818if ENABLE_CLIENT 
    1919 
     20SUBDIRS = vcc \ 
     21          vcdadm \ 
     22          vce \ 
     23          vgc 
     24 
    2025EXTRA_DIST = vcc.conf 
    2126 
    22 AM_CPPFLAGS = $(PATH_CPPFLAGS) 
     27noinst_HEADERS = vcc.h 
    2328 
    24 noinst_HEADERS = cmd.h 
     29sbin_PROGRAMS = vcc/vcc \ 
     30                vcdadm/vcdadm \ 
     31                vce/vce \ 
     32                vgc/vgc 
    2533 
    26 sbin_PROGRAMS = vcc 
     34COMMON_LIBS = $(LUCID_LIBS) \ 
     35              $(CONFUSE_LIBS) \ 
     36              $(UTIL_LIBS) \ 
     37              $(VSERVER_LIBS) \ 
     38              $(XMLRPC_C_CLIENT_LIBS) 
    2739 
    28 vcc_SOURCES = cmd.c \ 
    29               create.c \ 
    30               exec.c \ 
    31               kill.c \ 
    32               list.c \ 
    33               load.c \ 
    34               login.c \ 
    35               main.c \ 
    36               reboot.c \ 
    37               remove.c \ 
    38               rename.c \ 
    39               restart.c \ 
    40               start.c \ 
    41               status.c \ 
    42               stop.c \ 
    43               templates.c \ 
    44               vlogin.c 
     40vcc_vcc_SOURCES  = main.c vlogin.c 
     41vcc_vcc_LDADD    = vcc/libcmd.a $(COMMON_LIBS) 
     42vcc_vcc_CPPFLAGS = -I$(srcdir)/vcc $(PATH_CPPFLAGS) 
    4543 
    46 vcc_LDADD = $(LUCID_LIBS) \ 
    47             $(CONFUSE_LIBS) \ 
    48             $(UTIL_LIBS) \ 
    49             $(VSERVER_LIBS) \ 
    50             $(XMLRPC_C_CLIENT_LIBS) 
     44vcdadm_vcdadm_SOURCES  = main.c 
     45vcdadm_vcdadm_LDADD    = vcdadm/libcmd.a $(COMMON_LIBS) 
     46vcdadm_vcdadm_CPPFLAGS = -I$(srcdir)/vcdadm $(PATH_CPPFLAGS) 
     47 
     48vce_vce_SOURCES  = main.c 
     49vce_vce_LDADD    = vce/libcmd.a $(COMMON_LIBS) 
     50vce_vce_CPPFLAGS = -I$(srcdir)/vce $(PATH_CPPFLAGS) 
     51 
     52vgc_vgc_SOURCES  = main.c vlogin.c 
     53vgc_vgc_LDADD    = vgc/libcmd.a $(COMMON_LIBS) 
     54vgc_vgc_CPPFLAGS = -I$(srcdir)/vgc $(PATH_CPPFLAGS) 
    5155 
    5256install-data-local: 
  • trunk/src/vcc/main.c

    r540 r547  
    3030#include <lucid/str.h> 
    3131 
     32#include "vcc.h" 
    3233#include "cmd.h" 
    3334 
    3435static char *host = "localhost"; 
    3536static int   port = 13386; 
     37 
     38char *uri  = NULL; 
     39char *user = "admin"; 
     40char *pass = NULL; 
     41char *name = NULL; 
    3642 
    3743static cfg_opt_t CFG_OPTS[] = { 
     
    4248        CFG_END() 
    4349}; 
    44  
    45 void usage(int rc) 
    46 { 
    47         printf("Usage: vcc <opts>* <command>\n" 
    48                "\n" 
    49                "Available commands:\n" 
    50                "   create    <name> <template> [<force> [<copy> [<vdir>]]]\n" 
    51                "   exec      <name> <command> <args>*\n" 
    52                "   kill      <name> <pid> <sig>\n" 
    53                "   list      [<username>]\n" 
    54                "   load      <name>\n" 
    55                "   login     <name>\n" 
    56                "   reboot    <name>\n" 
    57                "   remove    <name>\n" 
    58                "   rename    <name> <newname>\n" 
    59                "   start     <name>\n" 
    60                "   status    <name>\n" 
    61                "   stop      <name>\n" 
    62                "   templates [<name>]\n" 
    63                "\n" 
    64                "Available options:\n" 
    65                "   -c <path>     configuration file (default: %s/vcc.conf)\n" 
    66                "   -h <host>     server hostname (default: localhost)\n" 
    67                "   -p <port>     server port     (default: 13386)\n" 
    68                "   -u <user>     server username (default: admin)\n", 
    69                SYSCONFDIR); 
    70         exit(rc); 
    71 } 
    7250 
    7351static 
     
    137115        xmlrpc_env env; 
    138116 
     117        /* start logging */ 
    139118        log_options_t log_options = { 
    140119                .log_ident = argv[0], 
     
    173152        } 
    174153 
     154        /* no command given */ 
     155        if (argc < optind + 1) 
     156                usage(EXIT_FAILURE); 
     157 
     158        cmd = argv[optind++]; 
     159 
     160        /* no username in config or command line given */ 
    175161        if (str_isempty(user)) 
    176162                log_error_and_die("no user for login given"); 
    177163 
    178         if (argc < optind + 1) 
    179                 usage(EXIT_FAILURE); 
    180  
    181         cmd  = argv[optind++]; 
    182  
    183         if (argc < optind + 1) 
    184                 name = ""; 
    185         else 
    186                 name = argv[optind++]; 
    187  
    188         for (i = 0; CMDS[i].name; i++) 
    189                 if (str_equal(cmd, CMDS[i].name)) 
    190                         goto init; 
    191  
    192         log_error_and_die("invalid command: %s", cmd); 
    193  
    194 init: 
     164        /* init XML-RPC client */ 
    195165        xmlrpc_env_init(&env); 
    196166 
     
    204174        asprintf(&uri, "http://%s:%d/RPC2", host, port); 
    205175 
     176        /* try to find command */ 
     177        for (i = 0; CMDS[i].name; i++) 
     178                if (str_equal(cmd, CMDS[i].name)) 
     179                        goto found; 
     180 
     181        log_error_and_die("invalid command: %s", cmd); 
     182 
     183found: 
     184        /* read password if none in config */ 
    206185        read_password(); 
    207186 
    208         for (i = 0; CMDS[i].name; i++) 
    209                 if (str_equal(cmd, CMDS[i].name)) 
    210                         CMDS[i].func(&env, argc - optind, argv + optind); 
     187        /* call command helper */ 
     188        CMDS[i].func(&env, argc - optind, argv + optind); 
    211189 
    212190        if (env.fault_occurred) 
  • trunk/src/vcc/vcc.h

    r534 r547  
    1616// 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. 
    1717 
    18 #ifndef _VCC_CMD_H 
    19 #define _VCC_CMD_H 
     18#ifndef _VCC_VCC_H 
     19#define _VCC_VCC_H 
    2020 
    2121#include <xmlrpc-c/base.h> 
     
    3131extern cmd_t CMDS[]; 
    3232 
    33 #define return_if_fault(ENV) do { \ 
    34         if (ENV->fault_occurred) return; \ 
    35 } while(0) 
    36  
    37 #define SIGNATURE(S) "({s:s,s:s}" S ")", "username", user, "password", pass 
    38  
    3933extern char *uri; 
    4034extern char *user; 
     
    4438void do_vlogin(int argc, char **argv); 
    4539 
    46 void usage(int rc); 
     40#define return_if_fault(ENV) do { \ 
     41        if (ENV->fault_occurred) return; \ 
     42} while(0) 
    4743 
    48 void cmd_create   (xmlrpc_env *env, int argc, char **argv); 
    49 void cmd_exec     (xmlrpc_env *env, int argc, char **argv); 
    50 void cmd_kill     (xmlrpc_env *env, int argc, char **argv); 
    51 void cmd_list     (xmlrpc_env *env, int argc, char **argv); 
    52 void cmd_load     (xmlrpc_env *env, int argc, char **argv); 
    53 void cmd_login    (xmlrpc_env *env, int argc, char **argv); 
    54 void cmd_reboot   (xmlrpc_env *env, int argc, char **argv); 
    55 void cmd_remove   (xmlrpc_env *env, int argc, char **argv); 
    56 void cmd_rename   (xmlrpc_env *env, int argc, char **argv); 
    57 void cmd_restart  (xmlrpc_env *env, int argc, char **argv); 
    58 void cmd_start    (xmlrpc_env *env, int argc, char **argv); 
    59 void cmd_status   (xmlrpc_env *env, int argc, char **argv); 
    60 void cmd_stop     (xmlrpc_env *env, int argc, char **argv); 
    61 void cmd_templates(xmlrpc_env *env, int argc, char **argv); 
     44#define client_call(M, S, ...) \ 
     45        xmlrpc_client_call(env, uri, #M, "({s:s,s:s}" S ")", \ 
     46                        "username", user, "password", pass, __VA_ARGS__) 
     47 
     48#define client_call0(M) \ 
     49        xmlrpc_client_call(env, uri, #M, "({s:s,s:s}s)", \ 
     50                        "username", user, "password", pass, "") 
     51 
     52#define COMMON_USAGE \ 
     53        "Available options:\n" \ 
     54        "   -c <path>     configuration file (default: " SYSCONFDIR "/vcc.conf)\n" \ 
     55        "   -h <host>     server hostname (default: localhost)\n" \ 
     56        "   -p <port>     server port     (default: 13386)\n" \ 
     57        "   -u <user>     server username (default: admin)\n" 
    6258 
    6359#endif 
  • trunk/src/vcc/vcc/cmd.c

    r534 r547  
    1616// 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. 
    1717 
     18#include <stdlib.h> 
     19#include <lucid/printf.h> 
     20 
     21#include "vcc.h" 
    1822#include "cmd.h" 
    19  
    20 char *uri  = NULL; 
    21 char *user = "admin"; 
    22 char *pass = NULL; 
    23 char *name = NULL; 
    2423 
    2524cmd_t CMDS[] = { 
     
    4039        { NULL,        NULL } 
    4140}; 
     41 
     42void usage(int rc) 
     43{ 
     44        printf("Usage: vcc <opts>* <command>\n" 
     45                        "\n" 
     46                        "Available commands:\n" 
     47                        "   create    <name> <template> [<force> [<copy> [<vdir>]]]\n" 
     48                        "   exec      <name> <command> <args>*\n" 
     49                        "   kill      <name> <pid> <sig>\n" 
     50                        "   list      [<username>]\n" 
     51                        "   load      <name>\n" 
     52                        "   login     <name>\n" 
     53                        "   reboot    <name>\n" 
     54                        "   remove    <name>\n" 
     55                        "   rename    <name> <newname>\n" 
     56                        "   start     <name>\n" 
     57                        "   status    <name>\n" 
     58                        "   stop      <name>\n" 
     59                        "   templates [<name>]\n" 
     60                        "\n" 
     61                        COMMON_USAGE); 
     62        exit(rc); 
     63} 
  • trunk/src/vcc/vcc/cmd.h

    r534 r547  
    1919#define _VCC_CMD_H 
    2020 
    21 #include <xmlrpc-c/base.h> 
    22 #include <xmlrpc-c/client.h> 
    23  
    24 typedef void (*CMD)(xmlrpc_env *env, int argc, char **argv); 
    25  
    26 typedef struct { 
    27         char *name; 
    28         CMD func; 
    29 } cmd_t; 
    30  
    31 extern cmd_t CMDS[]; 
    32  
    33 #define return_if_fault(ENV) do { \ 
    34         if (ENV->fault_occurred) return; \ 
    35 } while(0) 
    36  
    37 #define SIGNATURE(S) "({s:s,s:s}" S ")", "username", user, "password", pass 
    38  
    39 extern char *uri; 
    40 extern char *user; 
    41 extern char *pass; 
    42 extern char *name; 
    43  
    44 void do_vlogin(int argc, char **argv); 
    45  
    4621void usage(int rc); 
    4722 
  • trunk/src/vcc/vcc/create.c

    r534 r547  
    1818 
    1919#include <stdlib.h> 
    20  
    2120#include <lucid/scanf.h> 
    2221 
     22#include "vcc.h" 
    2323#include "cmd.h" 
    2424 
     
    4242                vdir = argv[3]; 
    4343 
    44         xmlrpc_client_call(env, uri, "vx.create", 
    45                 SIGNATURE("{s:s,s:s,s:b,s:b,s:s}"), 
    46                 "name", name, 
    47                 "template", template, 
    48                 "force", force, 
    49                 "copy", copy, 
    50                 "vdir", vdir); 
     44        client_call("vx.create", "{s:s,s:s,s:b,s:b,s:s}", 
     45                        "name", name, 
     46                        "template", template, 
     47                        "force", force, 
     48                        "copy", copy, 
     49                        "vdir", vdir); 
    5150} 
  • trunk/src/vcc/vcc/exec.c

    r534 r547  
    2222#include <lucid/strtok.h> 
    2323 
     24#include "vcc.h" 
    2425#include "cmd.h" 
    2526 
     
    4041                log_perror_and_die("strtok_tostr"); 
    4142 
    42         result = xmlrpc_client_call(env, uri, "vx.exec", 
    43                 SIGNATURE("{s:s,s:s}"), 
    44                 "name", name, 
    45                 "command", command); 
     43        result = client_call("vx.exec", "{s:s,s:s}", "name", name, 
     44                        "command", command); 
    4645        return_if_fault(env); 
    4746 
  • trunk/src/vcc/vcc/kill.c

    r534 r547  
    2020#include <lucid/scanf.h> 
    2121 
     22#include "vcc.h" 
    2223#include "cmd.h" 
    2324 
     
    3233        sscanf(argv[1], "%d", &sig); 
    3334 
    34         xmlrpc_client_call(env, uri, "vx.kill", 
    35                 SIGNATURE("{s:s,s:i,s:i}"), 
    36                 "name", name, 
    37                 "pid", pid, 
    38                 "sig", sig); 
     35        client_call("vx.kill", "{s:s,s:i,s:i}", 
     36                        "name", name, 
     37                        "pid", pid, 
     38                        "sig", sig); 
    3939} 
  • trunk/src/vcc/vcc/list.c

    r534 r547  
    1818#include <lucid/printf.h> 
    1919 
     20#include "vcc.h" 
    2021#include "cmd.h" 
    2122 
     
    2627        int len, i; 
    2728 
    28         response = xmlrpc_client_call(env, uri, "vxdb.list", 
    29                 SIGNATURE("{s:s}"), 
    30                 "username", name); 
     29        response = client_call("vxdb.list", "{s:s}", "username", name); 
    3130        return_if_fault(env); 
    3231 
  • trunk/src/vcc/vcc/load.c

    r429 r547  
    1818#include <lucid/printf.h> 
    1919 
     20#include "vcc.h" 
    2021#include "cmd.h" 
    2122 
     
    2526        char *loadavg1m, *loadavg5m, *loadavg15m; 
    2627 
    27         result = xmlrpc_client_call(env, uri, "vx.load", 
    28                 SIGNATURE("{s:s}"), 
    29                 "name", name); 
     28        result = client_call("vx.load", "{s:s}", "name", name); 
    3029        return_if_fault(env); 
    3130 
  • trunk/src/vcc/vcc/login.c

    r534 r547  
    2323#include <lucid/log.h> 
    2424 
     25#include "vcc.h" 
    2526#include "cmd.h" 
    2627 
     
    3233        char *av[] = { "/bin/sh", NULL }; 
    3334 
    34         result = xmlrpc_client_call(env, uri, "vxdb.xid.get", 
    35                 SIGNATURE("{s:s}"), 
    36                 "name", name); 
     35        result = client_call("vxdb.xid.get", "{s:s}", "name", name); 
    3736        return_if_fault(env); 
    3837 
     
    4241        xmlrpc_DECREF(result); 
    4342 
    44         result = xmlrpc_client_call(env, uri, "vxdb.vdir.get", 
    45                 SIGNATURE("{s:s}"), 
    46                 "name", name); 
     43        result = client_call("vxdb.vdir.get", "{s:s}", "name", name); 
    4744        return_if_fault(env); 
    4845 
  • trunk/src/vcc/vcc/reboot.c

    r534 r547  
    1616// 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. 
    1717 
     18#include "vcc.h" 
    1819#include "cmd.h" 
    1920 
    2021void cmd_reboot(xmlrpc_env *env, int argc, char **argv) 
    2122{ 
    22         xmlrpc_client_call(env, uri, "vx.reboot", 
    23                 SIGNATURE("{s:s}"), 
    24                 "name", name); 
     23        client_call("vx.reboot", "{s:s}", "name", name); 
    2524} 
  • trunk/src/vcc/vcc/remove.c

    r534 r547  
    1616// 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. 
    1717 
     18#include "vcc.h" 
    1819#include "cmd.h" 
    1920 
    2021void cmd_remove(xmlrpc_env *env, int argc, char **argv) 
    2122{ 
    22         xmlrpc_client_call(env, uri, "vx.remove", 
    23                 SIGNATURE("{s:s}"), 
    24                 "name", name); 
     23        client_call("vx.remove", "{s:s}", "name", name); 
    2524} 
  • trunk/src/vcc/vcc/rename.c

    r534 r547  
    1818#include <stdlib.h> 
    1919 
     20#include "vcc.h" 
    2021#include "cmd.h" 
    2122 
     
    2930        newname = argv[0]; 
    3031 
    31         xmlrpc_client_call(env, uri, "vx.rename", 
    32                 SIGNATURE("{s:s,s:s}"), 
    33                 "name", name, 
    34                 "newname", newname); 
     32        client_call("vx.rename", "{s:s,s:s}", "name", name, "newname", newname); 
    3533} 
  • trunk/src/vcc/vcc/restart.c

    r534 r547  
    1616// 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. 
    1717 
     18#include "vcc.h" 
    1819#include "cmd.h" 
    1920 
    2021void cmd_restart(xmlrpc_env *env, int argc, char **argv) 
    2122{ 
    22         xmlrpc_client_call(env, uri, "vx.restart", 
    23                 SIGNATURE("{s:s}"), 
    24                 "name", name); 
     23        client_call("vx.restart", "{s:s}", "name", name); 
    2524} 
  • trunk/src/vcc/vcc/start.c

    r534 r547  
    1616// 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. 
    1717 
     18#include "vcc.h" 
    1819#include "cmd.h" 
    1920 
    2021void cmd_start(xmlrpc_env *env, int argc, char **argv) 
    2122{ 
    22         xmlrpc_client_call(env, uri, "vx.start", 
    23                 SIGNATURE("{s:s}"), 
    24                 "name", name); 
     23        client_call("vx.start", "{s:s}", "name", name); 
    2524} 
  • trunk/src/vcc/vcc/status.c

    r429 r547  
    1919#include <lucid/printf.h> 
    2020 
     21#include "vcc.h" 
    2122#include "cmd.h" 
    2223 
     
    5051        int running, nproc, uptime; 
    5152 
    52         result = xmlrpc_client_call(env, uri, "vx.status", 
    53                 SIGNATURE("{s:s}"), 
    54                 "name", name); 
     53        result = client_call("vx.status", "{s:s}", "name", name); 
    5554        return_if_fault(env); 
    5655 
  • trunk/src/vcc/vcc/stop.c

    r534 r547  
    1616// 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. 
    1717 
     18#include "vcc.h" 
    1819#include "cmd.h" 
    1920 
    2021void cmd_stop(xmlrpc_env *env, int argc, char **argv) 
    2122{ 
    22         xmlrpc_client_call(env, uri, "vx.stop", 
    23                 SIGNATURE("{s:s}"), 
    24                 "name", name); 
     23        client_call("vx.stop", "{s:s}", "name", name); 
    2524} 
  • trunk/src/vcc/vcc/templates.c

    r534 r547  
    1818#include <lucid/printf.h> 
    1919 
     20#include "vcc.h" 
    2021#include "cmd.h" 
    2122 
     
    2627        int len, i; 
    2728 
    28         response = xmlrpc_client_call(env, uri, "vx.templates", 
    29                 SIGNATURE("{s:s}"), 
    30                 "name", name); 
     29        response = client_call("vx.templates", "{s:s}", "name", name); 
    3130        return_if_fault(env); 
    3231 
  • trunk/src/vcc/vcdadm/cmd.c

    r504 r547  
    1616// 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. 
    1717 
     18#include <stdlib.h> 
     19#include <lucid/printf.h> 
     20 
     21#include "vcc.h" 
    1822#include "cmd.h" 
    19  
    20 char *uri  = NULL; 
    21 char *user = "admin"; 
    22 char *pass = NULL; 
    23 char *name = NULL; 
    2423 
    2524cmd_t CMDS[] = { 
     
    3332        { NULL,               NULL } 
    3433}; 
     34 
     35void usage(int rc) 
     36{ 
     37        printf("Usage: vcdadm <opts>* <command>\n" 
     38                        "\n" 
     39                        "Available commands:\n" 
     40                        "   status\n" 
     41                        "\n" 
     42                        "   user.set         <username> <admin> [<password>]\n" 
     43                        "   user.get         [<username>]\n" 
     44                        "   user.remove      <username>\n" 
     45                        "\n" 
     46                        "   user.caps.add    <username> <cap>\n" 
     47                        "   user.caps.get    <username>\n" 
     48                        "   user.caps.remove <username> [<cap>]\n" 
     49                        "\n" 
     50                        COMMON_USAGE); 
     51        exit(rc); 
     52} 
  • trunk/src/vcc/vcdadm/cmd.h

    r534 r547  
    1919#define _VCDADM_CMD_H 
    2020 
    21 #include <xmlrpc-c/base.h> 
    22 #include <xmlrpc-c/client.h> 
    23  
    24 typedef void (*CMD)(xmlrpc_env *env, int argc, char **argv); 
    25  
    26 typedef struct { 
    27         char *name; 
    28         CMD func; 
    29 } cmd_t; 
    30  
    31 extern cmd_t CMDS[]; 
    32  
    33 #define return_if_fault(ENV) do { \ 
    34         if (ENV->fault_occurred) return; \ 
    35 } while(0) 
    36  
    37 #define SIGNATURE(S) "({s:s,s:s}" S ")", "username", user, "password", pass 
    38  
    39 extern char *uri; 
    40 extern char *user; 
    41 extern char *pass; 
    42 extern char *name; 
    43  
    4421void usage(int rc); 
    4522 
  • trunk/src/vcc/vcdadm/status.c

    r534 r547  
    1818#include <lucid/printf.h> 
    1919 
     20#include "vcc.h" 
    2021#include "cmd.h" 
    2122 
     
    4950        int uptime, requests, nomethod, flogins; 
    5051 
    51         result = xmlrpc_client_call(env, uri, "vcd.status", 
    52                 SIGNATURE("s"), ""); 
     52        result = client_call0("vcd.status"); 
    5353        return_if_fault(env); 
    5454 
  • trunk/src/vcc/vcdadm/user.c

    r534 r547  
    2121#include <lucid/scanf.h> 
    2222 
     23#include "vcc.h" 
    2324#include "cmd.h" 
    2425 
     
    2930        int len, i, uid, admin; 
    3031 
    31         response = xmlrpc_client_call(env, uri, "vcd.user.get", 
    32                 SIGNATURE("{s:s}")
     32        response = client_call("vcd.user.get", 
     33                "{s:s}"
    3334                "username", name); 
    3435        return_if_fault(env); 
     
    5859void cmd_user_remove(xmlrpc_env *env, int argc, char **argv) 
    5960{ 
    60         xmlrpc_client_call(env, uri, "vcd.user.remove", 
    61                 SIGNATURE("{s:s}")
     61        client_call("vcd.user.remove", 
     62                "{s:s}"
    6263                "username", name); 
    6364} 
     
    7879                password = ""; 
    7980 
    80         xmlrpc_client_call(env, uri, "vcd.user.set", 
    81                 SIGNATURE("{s:s,s:b,s:s}")
     81        client_call("vcd.user.set", 
     82                "{s:s,s:b,s:s}"
    8283                "username", name, 
    8384                "admin", admin, 
  • trunk/src/vcc/vcdadm/user_caps.c

    r524 r547  
    2020#include <lucid/printf.h> 
    2121 
     22#include "vcc.h" 
    2223#include "cmd.h" 
    2324 
     
    3132        cap = argv[0]; 
    3233 
    33         xmlrpc_client_call(env, uri, "vcd.user.caps.add", 
    34                 SIGNATURE("{s:s,s:s}")
     34        client_call("vcd.user.caps.add", 
     35                "{s:s,s:s}"
    3536                "username", name, 
    3637                "cap",      cap); 
     
    4344        int len, i; 
    4445 
    45         response = xmlrpc_client_call(env, uri, "vcd.user.caps.get", 
    46                 SIGNATURE("{s:s}")
     46        response = client_call("vcd.user.caps.get", 
     47                "{s:s}"
    4748                "username", name); 
    4849        return_if_fault(env); 
     
    7576                cap = argv[0]; 
    7677 
    77         xmlrpc_client_call(env, uri, "vcd.user.caps.remove", 
    78                 SIGNATURE("{s:s,s:s}")
     78        client_call("vcd.user.caps.remove", 
     79                "{s:s,s:s}"
    7980                "username", name, 
    8081                "cap",  cap); 
  • trunk/src/vcc/vce/cmd.c

    r534 r547  
    1616// 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. 
    1717 
     18#include <stdlib.h> 
     19#include <lucid/printf.h> 
     20 
     21#include "vcc.h" 
    1822#include "cmd.h" 
    19  
    20 char *uri  = NULL; 
    21 char *user = "admin"; 
    22 char *pass = NULL; 
    23 char *name = NULL; 
    2423 
    2524cmd_t CMDS[] = { 
     
    5958        { NULL,                  NULL } 
    6059}; 
     60 
     61void usage(int rc) 
     62{ 
     63        printf("Usage: vce <opts>* <command>\n" 
     64            &n