diff options
author | Prasanna Kumar Kalever <prasanna.kalever@redhat.com> | 2017-01-15 13:59:04 +0530 |
---|---|---|
committer | Prasanna Kumar Kalever <prasanna.kalever@redhat.com> | 2017-01-16 17:39:28 +0530 |
commit | c5bcaaaf25e781c21d29dfb0f39b0aeb7edb8283 (patch) | |
tree | 3754ef31816e856b34007170afba07778df0cf76 /gluster-blockd.c | |
parent | 0a1c338a4814f91cd49b7747442d413c6b8f0dfa (diff) |
gluster-blockd: daemonize the utility
this patch,
deprecate ssh way of communicating between server nodes/pods
Reason: ssh way is hard to be accepted in container world (Kube).
An another option kubeExec way seems to be a bit weird,
to have uniform way of communication in container and
non container worlds, we prefer RPC.
From now we communicate via RPC, using a static port 24009
Hence, we have two components,
server component -> gluster-blockd (daemon)
client component -> gluster-block (cli)
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
Diffstat (limited to 'gluster-blockd.c')
-rw-r--r-- | gluster-blockd.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/gluster-blockd.c b/gluster-blockd.c new file mode 100644 index 0000000..18506ac --- /dev/null +++ b/gluster-blockd.c @@ -0,0 +1,34 @@ +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include <stdio.h> + +#include "rpc/block.h" +#include "utils.h" + + +blockTrans * +block_exec_1_svc(char **cmd, struct svc_req *rqstp) +{ + FILE *fp; + static blockTrans *obj; + + if(GB_ALLOC(obj) < 0) + return NULL; + + if (GB_ALLOC_N(obj->out, 4096) < 0) { + GB_FREE(obj); + return NULL; + } + + fp = popen(*cmd, "r"); + if (fp != NULL) { + size_t newLen = fread(obj->out, sizeof(char), 4996, fp); + if (ferror( fp ) != 0) { + ERROR("%s", "Error reading command output\n"); + } else { + obj->out[newLen++] = '\0'; + } + obj->exit = WEXITSTATUS(pclose(fp)); + } + + return obj; +} |