summaryrefslogtreecommitdiffstats
path: root/rpc/block.x
diff options
context:
space:
mode:
authorPrasanna Kumar Kalever <prasanna.kalever@redhat.com>2017-01-20 12:13:37 +0530
committerPrasanna Kumar Kalever <prasanna.kalever@redhat.com>2017-01-30 19:31:50 +0530
commit683b6ba3f17a9bbf876c66f5d4b7a9d573d8853f (patch)
treea2bf7cbcda416818d663613284b29e16b2b533c3 /rpc/block.x
parent4ef14866295c1328a11f9a06cfc3bc1db9b1e7b6 (diff)
gluster-block: listen on unix and inet
from now We basically have 2 RPC connections, 1. Between gluster block CLI and local gluster-blockd This connection is basically UNIX/local netid ,listening on /var/run/gluster-blockd.socket file. The CLI always Send/Receive the commands to/from the local gluster-blockd via local rpc. 2. Between gluster-blockd's, i.e local (to cli) gluster-blockd and the gluster-blockd's running on remote(blockhost) This is the tcp connection. The rpc requests are listening on 24006 Also from now gluster-blockd is multi threaded (As of now 2 threads) Lets consider the Create Request to understand what each thread solves Thread1 (THE CLI THREAD) * Listening on local RPC * Generate the GBID (UUID) and create the entry with name GBID in the given volume with a requested size. * And Send the Configuration requests to remote hosts, waits for the replies (HINt: after this point Read Thread2 and come back) * Return to CLI. Thread 2 (THE SERVER THREAD) * Listens on 24006 * On Receiving an event, read the structure. * Executes the required "targetcli bla bla bla" command locally * Fills the command exitcode and the output in the RPC reply structure and send reply Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
Diffstat (limited to 'rpc/block.x')
-rw-r--r--rpc/block.x31
1 files changed, 27 insertions, 4 deletions
diff --git a/rpc/block.x b/rpc/block.x
index c88fdf2..b563c9e 100644
--- a/rpc/block.x
+++ b/rpc/block.x
@@ -1,12 +1,35 @@
+struct blockCreate {
+ char volume[255];
+ char volfileserver[255];
+ char gbid[127]; /* uuid */
+ u_quad_t size;
+ char block_name[255];
+};
+
+struct blockCreateCli {
+ char volume[255];
+ char volfileserver[255];
+ u_quad_t size;
+ char block_name[255];
+ string block_hosts<>;
+};
-struct blockTrans {
- int exit; /* exit code of the command */
- string out<>; /* stdout of the command */
+struct blockResponse {
+ int exit; /* exit code of the command */
+ string out<>; /* json output */
+ u_quad_t offset; /* dentry d_name offset */
+ opaque xdata<>; /* future reserve */
};
+program GLUSTER_BLOCK_CLI {
+ version GLUSTER_BLOCK_CLI_VERS {
+ blockResponse BLOCK_CREATE_CLI(blockCreateCli) = 1;
+ } = 1;
+} = 212153113; /* B2 L12 O15 C3 K11 C3 */
+
program GLUSTER_BLOCK {
version GLUSTER_BLOCK_VERS {
- blockTrans BLOCK_EXEC(string) = 1;
+ blockResponse BLOCK_CREATE(blockCreate) = 1;
} = 1;
} = 21215311; /* B2 L12 O15 C3 K11 */