summaryrefslogtreecommitdiffstats
path: root/cli
Commit message (Collapse)AuthorAgeFilesLines
* logger: support logdir choosing via Environment variablePrasanna Kumar Kalever2017-08-171-0/+5
| | | | | | | | | | | | Currently the default logdir is DATADIR /log/gluster-block/ This patch will provide a way to change this default logdir via Env variable $ export GB_LOGDIR=/var/log/gluster-block-new-path/ Note: make sure to restart the processes (cli & daemon) after you set GB_LOGDIR Change-Id: Id142e4a4dfe7b6ebc9cf8296b8ceb8bff37691b8 Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: support force delete optionPrasanna Kumar Kalever2017-08-081-4/+17
| | | | | | | | | | | | | | | | $ gluster-block help gluster-block (0.2.1) usage: gluster-block <command> <volname[/blockname]> [<args>] [--json*] commands: [...] delete <volname/blockname> [force] delete block device. [...] Change-Id: I64ac01ec148e2e1d4d0ba0d4c5560df9334d58f5 Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* cli: show 'prealloc' option in the hint msgPrasanna Kumar Kalever2017-07-071-2/+3
| | | | | | | | | | | $ gluster-block create Inadequate arguments for create: gluster-block create <volname/blockname> [ha <count>] [auth<enable|disable>] \ [prealloc <full|no>] <HOST1[,HOST2,...]> <size> [--json*] Change-Id: Ib089598fd9b386bd3475dd421b41c45ebb01c9d2 Fixes: #33 Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* cli: fix missing newline charactersPrasanna Kumar Kalever2017-06-221-3/+3
| | | | | Change-Id: I06f20a355453d81955d4308ecad68358fa1f99cc Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* block: add support to prealloc = full | no optionPrasanna Kumar Kalever2017-06-221-10/+28
| | | | | | | | | currently we allocate sparse files for block backends in the gluster volume, with 'prealloc = full' option introduced by this patch we should be able to fully preallocate the backend block file. Change-Id: Ibf32df5f978f732a3fd248693170463da6d08268 Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* info: show size in human readable formatPrasanna Kumar Kalever2017-06-131-1/+1
| | | | | | | | | | | | | | | | | | Also s/BLOCK CONFIG NODE(S)/EXPORTED NODE(S)/ in the info output $ gluster-block info sample/block NAME: block VOLUME: sample GBID: 6bd70984-be2c-43ac-9e9d-bad04010e42f SIZE: 1.0 GiB HA: 1 PASSWORD: EXPORTED NODE(S): 192.168.0.105 Change-Id: I473b854b939c96b99be8e0b172ac6957b8bc6006 Fixes: #23 Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com> Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
* daemon: make glfs lru cache capacity configurablePrasanna Kumar Kalever2017-06-051-20/+11
| | | | | | | | | | | | | | | | | | $ gluster-blockd --help gluster-blockd (0.2) usage: gluster-blockd [--glfs-lru-count <count>] commands: --glfs-lru-count <count> glfs objects cache capacity [max: 512] (default: 5) --help show this message and exit. --version show version info and exit. Change-Id: I00a9277690a1c5ace51e223e9e4ed9ce61ae2428 Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* cli: Give error message when gluster-blockd doesn't respondPranith Kumar K2017-06-051-55/+28
| | | | | | | Also refactored the code around to reduce number of allocations. Change-Id: If5431f1504b6716ac4baec3a859189f6f21c80a4 Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
* Minor improvements to CLI messagesVijay Bellur2017-05-211-6/+6
| | | | Signed-off-by: Vijay Bellur <vbellur@redhat.com>
* login: one command for logging-in to all gateways of a targetPrasanna Kumar Kalever2017-05-041-35/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently from the initiator side we need to login to mpath no. of nodes individually for establishing connect with all multipathed block devices from the client side, thus we need to execute mpath no. of login commands (i.e. login to each server) This can be minimized to single login command per target by configuring all gateways for a particular target in all gateways. Currently, $ gluster-block create VOL/BLOCK ha 3 HOSTx,HOSTy,HOSTz 10GiB Creates only one TPG i.e tpg1 (Read as Target Portal Group with Tag 1) on each node/server, with one portal listening on respective IP. All the gateways/nodes emulate same backend as target LUN with same WWN (for multipath representation) So at client side. we need to execute 3 commands to login all gateways $ iscsiadm -m discovery -t st -p HOSTy -l $ iscsiadm -m discovery -t st -p HOSTz -l $ iscsiadm -m discovery -t st -p HOSTx -l In the above case, user may login in any fashion, which is out of our control. Since we have failover multipath configuration, at a given time only one gateway can TX RX the data. so predicting active path/connection is not possible. With this patch, $ gluster-block create VOL/BLOCK ha 3 HOSTx,HOSTy,HOSTz 10GiB Creates 3 TPG's, tpg1(portal HOSTx), tpg2(portal HOSTy) and tpg3(portal HOSTz) on all the three gateways/nodes (IN same order). Basically, each gateway is define to every other gateway - but the other (other than local) gateway entries are in a disabled state. When the client starts the login sequence it issues the RPTG to the one nodes, but now that node can respond with portal IP's for all of the gateways. e.g. GW1 GW2 GW3 - tpg1/enabled - tpg1/disabled - tpg1/disabled - tpg2/disabled - tpg2/enabled - tpg2/disabled - tpg3/disabled - tpg3/disabled - tpg3/enabled Advantage, * Only one login command is needed, unlike 3 login's before, $ iscsiadm -m discovery -t st -p ANYONEHOST -l * Always tpg1 will be tried for making an active path/connection, hence we can predict that the first host in the list {HOSTx,HOSTy,HOSTz} will be tried for active connection. Hence we can be able to better manage load on each nodes, by selectively supplying Hosts in the list. Change-Id: I70f73b1d46812cb1bd8dc80f771ec20b0f0415bf Fixes: #9 Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* create: support 'auth enable' optionPrasanna Kumar Kalever2017-05-021-2/+23
| | | | | | | | | | | | | | | | | | | | | | This patch add support to enable auth while create. The schematics of authentication setting for/while create, looks like $ gluster-block create block-test/sample-block ha 1 auth enable \ 192.168.0.105 1GiB --json-pretty { "IQN":"iqn.2016-12.org.gluster-block:dc6cca79-f9b7-44f5-acaf-ac81c9cc7c2e", "USERNAME":"dc6cca79-f9b7-44f5-acaf-ac81c9cc7c2e", "PASSWORD":"ae48635a-6902-454c-949a-f2ad0e056086", "PORTAL(S)":[ "192.168.0.105:3260" ], "RESULT":"SUCCESS" } Change-Id: Ib8f5ddd904cb879e0ee05f6a7c3c381c6615a0e4 Fixes: #5 Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* modify: add support for one way authenticationPrasanna Kumar Kalever2017-05-021-60/+144
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch introduce or rather implement modify command for enabling authentication for block devices. The schematics of authentication setting, looks like $ gluster-block modify block-test/sample-block auth enable --json-pretty { "SUCCESSFUL ON":[ "192.168.0.105" ], "IQN":"iqn.2016-12.org.gluster-block:8917def2-e90d-4406-8c9c-6d06b6851bbe", "USERNAME":"8917def2-e90d-4406-8c9c-6d06b6851bbe", "PASSWORD":"a3e75362-a446-45af-98d0-a1ed7e10d7f0", "RESULT":"SUCCESS" } As an effect it brings changes in 'info' command response, note PASSWORD $ gluster-block info block-test/sample-block --json-pretty { "NAME":"sample-block", "VOLUME":"block-test", "GBID":"8917def2-e90d-4406-8c9c-6d06b6851bbe", "SIZE":1073741824, "HA":1, "PASSWORD":"a3e75362-a446-45af-98d0-a1ed7e10d7f0", "BLOCK CONFIG NODE(S)":[ "192.168.0.105" ] } The schematics of auth disabling, looks like $ gluster-block modify block-test/sample-block auth disable --json-pretty { "SUCCESSFUL ON":[ "192.168.0.105" ], "IQN":"iqn.2016-12.org.gluster-block:add99c38-3c14-42d7-bf23-7d02f388e1e7", "RESULT":"SUCCESS" } Change-Id: I06d095b50401c131ac89cc142497f21d2205164a Fixes: #5 Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: support json responsePrasanna Kumar Kalever2017-04-281-26/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | This is how cli response looks like, on supplying '--json*' flag to cmd-args: $ gluster-block create block-test/sample-block1 ha 1 localhost.localdomain 1GiB --json (or) $ gluster-block create block-test/sample-block2 ha 1 localhost.localdomain 1GiB --json-spaced { "IQN": "iqn.2016-12.org.gluster-block:681af106-85f1-4a02-a122-57c80903458c", \ "PORTAL(S)": [ "localhost.localdomain:3260" ], "RESULT": "SUCCESS" } $ gluster-block create block-test/sample-block3 ha 1 localhost.localdomain 1GiB --json-plain {"IQN":"iqn.2016-12.org.gluster-block:0fdf6647-57f2-477f-8dd4-54a3de06e410",\ "PORTAL(S)":["localhost.localdomain:3260"],"RESULT":"SUCCESS"} $ gluster-block create block-test/sample-block4 ha 1 localhost.localdomain 1GiB --json-pretty { "IQN":"iqn.2016-12.org.gluster-block:e92ca4a0-5325-4c4b-a407-9e75790e4c7f", "PORTAL(S)":[ "localhost.localdomain:3260" ], "RESULT":"SUCCESS" } Change-Id: Ie51039e3dee0b3357d2347b4087e0fbe299aa29e Fixes: #3 Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* cli: print clue if gluster-block daemon is not operationalPrasanna Kumar Kalever2017-04-261-0/+7
| | | | | | | | | | | Currently, if gluster-block daemon is not running, we just exit cli commands with non-zero return value, not leaving any clue to user. This patch will print some clue if daemon is not operational. Change-Id: Id54db267894a92b3818b72f7fe654ecd87a3cf1b Fixes: #14 Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* build: use rpcgen to generate all XDR codeNiels de Vos2017-03-171-3/+3
| | | | | | | | | | | | | | | | | | | | | Remove all generated files and have them generated when needed. This build a libgbrpcxdr.la archive with the .o files that gets linked into the libgbrpc.la archive. 'rpcgen' generates .c code that triggers warnings for various compilers. This is not something that can easily be fixed, so add rpc-pragmas.h (like GlusterFS does) to prevent these warnings. There are some functions used by gluster-blockd.c that are not part of the header and were manually added to block.h. Because block.h get regenerated now, these functions have been added to a new file block_svc.h. Note that generated and compiled files land in $(top_builddir). This directory does not need to be the same as $(top_srcdir). Change-Id: I0e764d159d6d785699537eed4e24b16883218038 Fixes: #2 Signed-off-by: Niels de Vos <ndevos@redhat.com>
* gluster-blockd: parse create and delete outputsPrasanna Kumar Kalever2017-02-271-1/+1
| | | | | | | | | | | | | | | | The new parsed output of create and delete command will look like: $ gluster-block create sample/sample-block ha 2 ${HOST1} ${HOST2} 1GiB IQN: iqn.2016-12.org.gluster-block:aafea465-9167-4880-b37c-2c36db8562ea PORTAL(S): ${HOST1}:3260 ${HOST2}:3260 RESULT: SUCCESS $ gluster-block delete sample/sample-block SUCCESSFUL ON: ${HOST1} ${HOST2} RESULT: SUCCESS Change-Id: Id98e643c62a898a1f7298b6cfeb6ddfa10397b7f Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* cli: add traditional optionsPrasanna Kumar Kalever2017-02-271-0/+4
| | | | | | | | Though we do not use '--' style for arguments, this patch add supports for traditional options "--version, --help and --usage". Change-Id: Ie8bcf05dd46cb045c46ff9aa4f3079f87f848730 Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* cli: change in synopsis for gluster-block commandsPrasanna Kumar Kalever2017-02-241-126/+131
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | from now we will have fixed formats for commands. The new outfit will look like: $ gluster-block help gluster-block (3ba7ec5) usage: gluster-block <command> <volname[/blockname]> [<args>] commands: create <volname/blockname> [ha <count>] <host1[,host2,...]> <size> create block device. list <volname> list available block devices. info <volname/blockname> details about block device. delete <volname/blockname> delete block device. help show this message and exit. version show version info and exit. Example usage: $ gluster-block create volume/blockname 192.168.0.1 1GiB $ gluster-block create volume/blockname ha 2 192.168.0.1,192.168.0.2 1GiB $ gluster-block list volume $ gluster-block info volume/blockname $ gluster-block delete volume/blockname Change-Id: Idc6b55c26432ed1ac3f002c2a2b3dbb81b180ec2 Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: improve log messagesPrasanna Kumar Kalever2017-02-201-9/+32
| | | | | | | improve strings add missing log messages wherever helpful Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: refactor return valuesPrasanna Kumar Kalever2017-02-191-5/+5
| | | | Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* cli: deprecate volserver optionPrasanna Kumar Kalever2017-02-171-15/+2
| | | | | | | volserver can be considered as "localhost", as we anyway tieing-up glusterd, gluster-blockd and cli processes. Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* cli: improve help messagePrasanna Kumar Kalever2017-02-161-11/+11
| | | | | Signed-off-by: Vijay Bellur <vbellur@redhat.com> Reviewed-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* daemon: fix minor bugsPrasanna Kumar Kalever2017-02-161-2/+9
| | | | | Reported-by: Pranith Kumar K <pkarampu@redhat.com> Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* cli: add command to furnish pkg version infoPrasanna Kumar Kalever2017-02-152-26/+44
| | | | | | | | | Improvements: Version info displaying. Improve help menu. This patch also makes 'mpath' option as optional (default: 1) Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-blockd: create logging directoriesPrasanna Kumar Kalever2017-02-151-2/+4
| | | | Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: add portal creationPrasanna Kumar Kalever2017-02-151-2/+2
| | | | | | | The portal that target listens on by default will be 0.0.0.0; With this patch we will be changing that to hostname of local machine. Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* cli: review fixes in gluster-blockPrasanna Kumar Kalever2017-02-111-36/+56
| | | | | | Signed-off-by: Pranith Kumar K <pkarampu@redhat.com> Reviewed-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com> Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: improve cli usage hintsPrasanna Kumar Kalever2017-02-101-5/+18
| | | | Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* build: fix minor warningsPrasanna Kumar Kalever2017-02-081-5/+7
| | | | | | | mostly uninitialized use of variables. check return values from function calls. Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: migrate build to libtoolz and create rpmPrasanna Kumar Kalever2017-02-072-0/+424
Till now we had simple makefile for checking dependencies and building. Using libtoolz will give more control on dependency checks and flexibility. This patch also introduce rpm build feature. Compiling: $ ./autogen.sh $ ./configure $ make -j $ make install Building RPMS: $ make rpms Running: $ systemctl start gluster-blockd.service Using CLI: $ gluster-block help Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>