1
0
mirror of https://github.com/gluster/gluster-block.git synced 2026-02-05 12:45:33 +01:00
Commit Graph

52 Commits

Author SHA1 Message Date
Amar Tumballi
0fd2ea41bd coverity: fix multiple issues (#172)
CIDs involved:
326396 - Constant variable guards deadcode
326345 - Argument cannot be negative
326355 - Infinite loop
326371 - Printf format string issue
328498 - Resource leak
328500 - Unchecked return value
326360 - Explicit null dereference

Signed-off-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Xiubo Li <xiubli@redhat.com>
Reviewed-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
2019-01-03 16:24:54 +05:30
Prasanna Kumar Kalever
88624a0f7c cli: push output to stderr if remote rpc return non-zero
This is basically what we have missed at #121

Reviewed-by: Xiubo Li <xiubli@redhat.com>
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
2018-11-29 19:07:24 +05:30
Xiubo Li
866f9e6ae9 cli: clean up the code style
Reviewed-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
Signed-off-by: Xiubo Li <xiubli@redhat.com>
2018-11-15 19:20:33 +05:30
Prasanna Kumar Kalever
fd62ac4f57 gluster-block: dump all failure msgs to stderr
Ensure:
On FAILURE dump error msg to stderr
On SUCCESS dump response to stdout

Fixes: #117
Reviewed-by: Xiubo Li <xiubli@redhat.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
2018-10-24 17:22:50 +05:30
Xiubo Li
ec38036302 genconfig: add helper info
Reviewed-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
Signed-off-by: Xiubo Li <xiubli@redhat.com>
2018-10-12 14:32:51 +05:30
Bhumika Goyal
8416247cbc Auditlog Feature
Record the responses of all the requests for the operations
Create/Delete/Modify/Replace on gluster-block.
The logging format is:

In case of success:
[time] INFO: <command string> <function details>
[time] INFO: Response string <function details>

In case of failure:
[time] INFO: <command string> <function details>
[time] ERROR: Response string <function details>

Reviewed-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
Reviewed-by: Xiubo Li <xiubli@redhat.com>
Signed-off-by: Bhumika Goyal <bgoyal@redhat.com>
2018-09-25 13:30:12 +05:30
Bhumika Goyal
3a64fff50e Help/man page update
With the introduction of new option 'storage' for the create command,
the field 'size' is rendered optional when that 'storage' option is given.
Update the man page and help commands to reflect this change.

Signed-off-by: Bhumika Goyal <bgoyal@redhat.com>
Reviewed-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
2018-08-13 12:49:06 +05:30
Prasanna Kumar Kalever
766f97ed8a rpc: avoid socket double free
From man:

clnt_destroy(CLIENT *clnt);
 A macro that destroys the client's RPC handle.  Destruction usually involves
 deallocation of  private data  structures,  including clnt itself.  Use of
 clnt is undefined after calling clnt_destroy(). If the RPC library opened the
 associated socket, it will close it also. Otherwise, the socket remains open.

we are closing the socket twice in this case,
i.e. by calling clnt_destroy and then close(sockfd)

Thanks to Pranith for the RC.

Tested-by: Xiubo Li <xiubli@redhat.com>
Reviewed-by: Xiubo Li <xiubli@redhat.com>
Reviewed-by: Pranith Kumar K <pkarampu@redhat.com>
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
2018-07-18 11:29:31 +05:30
Xiubo Li
e971593411 gluster-block: align the target device size to sector size
This will align the target device size to GB_DEFAULT_SECTOR_SIZE

Tested-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
Reviewed-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
Reviewed-by: Pranith Kumar K <pkarampu@redhat.com>
Signed-off-by: Xiubo Li <xiubli@redhat.com>
2018-07-11 14:15:26 +05:30
Prasanna Kumar Kalever
917d0b2924 gluster-block: fix gcc and rpmbuild warnings
Tested-by: Xiubo Li <xiubli@redhat.com>
Reviewed-by: Xiubo Li <xiubli@redhat.com>
Reviewed-by: Pranith Kumar K <pkarampu@redhat.com>
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
2018-06-12 15:21:34 +05:30
Prasanna Kumar Kalever
4a0ac4998a genconfig: add support
$ gluster-block genconfig
Inadequate arguments for genconfig:
gluster-block genconfig <volname[,volume2,volume3,...]> enable-tpg <host> [--json*]

$ gluster-block genconfig testvol1,testvol2 enable-tpg 192.168.124.227
{
  "storage_objects":[
    {
      "attributes":{
        "cmd_time_out":0,
        "dev_size":1073741824
      },
      "config":"glfs/testvol1@192.168.124.227/block-store/8effb447-875b-407e-8fe5-bd6500a96ee6",
      "name":"blockX",
      "plugin":"user",
      "size":1073741824,
      "wwn":"8effb447-875b-407e-8fe5-bd6500a96ee6"
    },
...
}

Tested-by: Xiubo Li <xiubli@redhat.com>
Reviewed-by: Xiubo Li <xiubli@redhat.com>
Reviewed-by: Pranith Kumar K <pkarampu@redhat.com>
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
2018-06-05 12:43:03 +08:00
Prasanna Kumar Kalever
5a180e9c50 modify: fix auth command args parsing
Fix regression introduced by:

commit cfa7677b1e
Author: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
Date:   Wed Mar 21 16:28:15 2018 +0530

    gluster-block: add resize support

Fixes: #71
Tested-by: Xiubo Li <xiubli@redhat.com>
Reviewed-by: Pranith Kumar K <pkarampu@redhat.com>
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
2018-04-09 19:57:29 +05:30
Prasanna Kumar Kalever
34c4a6d535 create: add TCMU Ring Buffer size settable
$ gluster-block --help
[...]
commands:
  create  <volname/blockname> [ha <count>]
                              [auth <enable|disable>]
                              [prealloc <full|no>]
                              [storage <filename>]
                              [ring-buffer <size-in-MB-units>]
                              <host1[,host2,...]> <size>
        create block device [defaults: ha 1, auth disable, prealloc no, size in bytes,
                             ring-buffer default size dependends on kernel]
[...]

$ gluster-block create dht0/block33 ring-buffer 60 ha 3 192.168.195.137,192.168.195.134,192.168.195.135 1G --json-pretty
{
  "IQN":"iqn.2016-12.org.gluster-block:1e9d26a4-28d7-43a5-a2dc-b7d08a6cbedd",
  "PORTAL(S)":[
    "192.168.195.137:3260",
    "192.168.195.134:3260",
    "192.168.195.135:3260"
  ],
  "RESULT":"SUCCESS"
}

$ cat block-meta/block32
VOLUME: dht0
GBID: da787d30-ac8a-420c-8907-09b494e07ebf
HA: 3
ENTRYCREATE: INPROGRESS
SIZE: 1073741824
RINGBUFFER: 60
ENTRYCREATE: SUCCESS
192.168.195.137: CONFIGINPROGRESS
192.168.195.134: CONFIGINPROGRESS
192.168.195.135: CONFIGINPROGRESS
192.168.195.134: CONFIGSUCCESS
192.168.195.137: CONFIGSUCCESS
192.168.195.135: CONFIGSUCCESS

$ targetcli /backstores/user:glfs/block32/ get attribute max_data_area_mb
max_data_area_mb=60 [ro]

Signed-off-by: Xiubo Li <xiubli@redhat.com>
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
2018-03-23 20:51:08 +05:30
Prasanna Kumar Kalever
cfa7677b1e gluster-block: add resize support
$ gluster-block modify sample/block1 size 20GiB --json-pretty
{
    "IQN":"iqn.2016-12.org.gluster-block:1a84d8d1-a6d9-4761-9531-47736468186f",
    "SIZE":"20.0 GiB",
    "SUCCESSFUL ON":[
      "192.168.0.105"
    ],
    "RESULT":"SUCCESS"
}

Fixes: #6
Change-Id: I422095bf4a9bc7c7774de1426621255e7dc533ab
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
2018-03-23 19:22:14 +05:30
Prasanna Kumar Kalever
8b106204f5 fix spec file
also other minor compiler errors

Change-Id: I17625008d91740f3ba9efc6e574ec3dcd0b6c85f
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
2018-03-06 15:42:26 +05:30
Prasanna Kumar Kalever
7008073e1d delete: support [unlink-storage <yes|no>] option
$ gluster-block help
gluster-block (0.3)
usage:
  gluster-block <command> <volname[/blockname]> [<args>] [--json*]

commands:
[...]

  delete  <volname/blockname> [unlink-storage <yes|no>] [force]
        delete block device.
[...]
supported JSON formats:
  --json|--json-plain|--json-spaced|--json-pretty

Change-Id: I64bc99a8519be6f90a7e8bc5558b0d7518661995
Fixes: #19
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
2018-02-08 13:11:56 +05:30
Prasanna Kumar Kalever
450f7e8911 create: support [storage <filename>] option
$ gluster-block help
gluster-block (0.3)
usage:
  gluster-block <command> <volname[/blockname]> [<args>] [--json*]

commands:
  create  <volname/blockname> [ha <count>]
                              [auth <enable|disable>]
                              [prealloc <full|no>]
                              [storage <filename>]
                              <host1[,host2,...]> <size>
        create block device [defaults: ha 1, auth disable, prealloc no, size in bytes]
[...]
supported JSON formats:
  --json|--json-plain|--json-spaced|--json-pretty

Fixes: #18
Change-Id: I5d9b4abb58596bd2297cffb294c6d31f752d53e9
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
2018-02-08 13:11:40 +05:30
Prasanna Kumar Kalever
d7ebb69745 replace strcat and strcpy with their secure versions
Change-Id: If98ce7b7e50901ee130bbe190a12664ec0adb8c2
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
2018-02-08 12:30:49 +05:30
Prasanna Kumar Kalever
540e81676b replace: add replace feature
1. create conf in new node
2. delete conf from old node
3. replace portals from nodes hosting other paths (HA)

$ gluster-block create sample/block ha 3 192.168.124.57,192.168.124.26,192.168.124.30 1GiB --json-pretty
{
  "IQN":"iqn.2016-12.org.gluster-block:d516bb5c-5f56-4d9c-96a7-385df19c2e2c",
  "PORTAL(S)":[
    "192.168.124.57:3260",
    "192.168.124.26:3260",
    "192.168.124.30:3260"
  ],
  "RESULT":"SUCCESS"
}

$ gluster-block help
gluster-block (0.3)
usage:
  gluster-block <command> <volname[/blockname]> [<args>] [--json*]

commands:
[...]
  replace <volname/blockname> <old-node> <new-node> [force]
        replace operations.
[...]

supported JSON formats:
  --json|--json-plain|--json-spaced|--json-pretty

$ gluster-block replace sample/block 192.168.124.26 192.168.124.56 --json-pretty
{
  "NAME":"block",
  "CREATE SUCCESS":"192.168.124.56",
  "DELETE SUCCESS":"192.168.124.26",
  "REPLACE PORTAL SUCCESS ON":[
    "192.168.124.57",
    "192.168.124.30"
  ],
  "RESULT":"SUCCESS"
}

Fixes: #4
Change-Id: I0411d15c407111db0d423052d9a6bc075174bf90
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
2018-02-07 16:49:21 +05:30
Michael Adam
f03d641062 cli: make unit prefixes case insensitive
Change-Id: I28544d08217f15b90c3e439bfd9aa75ba0432d07
Signed-off-by: Michael Adam <obnox@redhat.com>
2017-12-21 08:19:58 +01:00
Prasanna Kumar Kalever
258f30c6d7 cli: defend on minimum block size
From,
$ targetcli /backstores/user:glfs/block get attribute
ATTRIBUTE CONFIG GROUP
======================
hw_block_size=512 [ro]
----------------------

Hence making the min acceptable size to be 1 sector/block i.e. 512 bytes

This patch also, explicitly mention in docs about bytes as default size units.

Change-Id: Iec8797082d02cc9ad51fc17e11f2ba3073aaeda0
Fixes: #35
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
2017-10-09 13:54:57 +00:00
Prasanna Kumar Kalever
3d0953aa99 rpc: switch to MT-safe block RPC routines
blockResponse *
block_delete_1(blockDelete *argp, CLIENT *clnt)
{
        static blockResponse clnt_res; <<<<<<-------- Same memory is used by everyone

        memset((char *)&clnt_res, 0, sizeof(clnt_res)); <<<<<---- Here memset is happening
        if (clnt_call (clnt, BLOCK_DELETE,
                (xdrproc_t) xdr_blockDelete, (caddr_t) argp,
                (xdrproc_t) xdr_blockResponse, (caddr_t) &clnt_res,
                TIMEOUT) != RPC_SUCCESS) {
                return (NULL);
        }
        return (&clnt_res); <<<<<---- ptr to this memory is returned.
}

So while Thread-1 is returned "return (&clnt_res);" another thread could be
doing "memset((char *)&clnt_res, 0, sizeof(clnt_res));"

This seem to be a day-1 gluster-blockd bug from the looks of it.

Change-Id: I3fc76d7814c4fe5b286577586ec44d752dcc73f0
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
2017-09-19 04:07:48 +00:00
Prasanna Kumar Kalever
b535c44fdd logger: support logdir choosing via Environment variable
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>
2017-08-17 14:22:55 +05:30
Prasanna Kumar Kalever
d723907c8e gluster-block: support force delete option
$ 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>
2017-08-08 15:44:32 +05:30
Prasanna Kumar Kalever
ac7674554e cli: show 'prealloc' option in the hint msg
$ 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>
2017-07-07 16:55:24 +05:30
Prasanna Kumar Kalever
b5cdd05c8b cli: fix missing newline characters
Change-Id: I06f20a355453d81955d4308ecad68358fa1f99cc
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
2017-06-22 13:03:26 +00:00
Prasanna Kumar Kalever
94c79620db block: add support to prealloc = full | no option
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>
2017-06-22 16:30:46 +05:30
Prasanna Kumar Kalever
f632a4b124 info: show size in human readable format
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>
2017-06-13 06:28:42 +00:00
Prasanna Kumar Kalever
15d9ee36c7 daemon: make glfs lru cache capacity configurable
$ 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>
2017-06-05 22:12:20 +05:30
Pranith Kumar K
cb3c9c8dfb cli: Give error message when gluster-blockd doesn't respond
Also refactored the code around to reduce number of allocations.

Change-Id: If5431f1504b6716ac4baec3a859189f6f21c80a4
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
2017-06-05 16:31:28 +05:30
Vijay Bellur
af1062610d Minor improvements to CLI messages
Signed-off-by: Vijay Bellur <vbellur@redhat.com>
2017-05-21 19:46:33 -04:00
Prasanna Kumar Kalever
a31ee2d59d login: one command for logging-in to all gateways of a target
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>
2017-05-04 14:16:22 +00:00
Prasanna Kumar Kalever
5d48aba7b6 create: support 'auth enable' option
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>
2017-05-02 10:08:30 +00:00
Prasanna Kumar Kalever
1ed7bd1430 modify: add support for one way authentication
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>
2017-05-02 15:08:51 +05:30
Prasanna Kumar Kalever
7e29a1a249 gluster-block: support json response
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>
2017-04-28 11:43:02 +05:30
Prasanna Kumar Kalever
bd772be068 cli: print clue if gluster-block daemon is not operational
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>
2017-04-26 12:51:50 +05:30
Niels de Vos
5d3d0bc59c build: use rpcgen to generate all XDR code
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>
2017-03-17 15:11:09 +01:00
Prasanna Kumar Kalever
2445dd3403 gluster-blockd: parse create and delete outputs
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>
2017-02-27 18:22:40 +05:30
Prasanna Kumar Kalever
bb50c512e5 cli: add traditional options
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>
2017-02-27 04:50:22 -05:00
Prasanna Kumar Kalever
9f1c8a5ba4 cli: change in synopsis for gluster-block commands
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>
2017-02-24 14:58:50 +05:30
Prasanna Kumar Kalever
cc1294a867 gluster-block: improve log messages
improve strings
add missing log messages wherever helpful

Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
2017-02-20 16:30:14 +05:30
Prasanna Kumar Kalever
245ee93f27 gluster-block: refactor return values
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
2017-02-19 14:40:51 +05:30
Prasanna Kumar Kalever
7607427636 cli: deprecate volserver option
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>
2017-02-17 10:45:27 +05:30
Prasanna Kumar Kalever
d0aaa839c4 cli: improve help message
Signed-off-by: Vijay Bellur <vbellur@redhat.com>
Reviewed-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
2017-02-16 19:58:16 +05:30
Prasanna Kumar Kalever
f3132b97df daemon: fix minor bugs
Reported-by: Pranith Kumar K <pkarampu@redhat.com>
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
2017-02-16 19:49:34 +05:30
Prasanna Kumar Kalever
d7775f350c cli: add command to furnish pkg version info
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>
2017-02-15 18:57:35 +05:30
Prasanna Kumar Kalever
86ae67f117 gluster-blockd: create logging directories
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
2017-02-15 15:20:22 +05:30
Prasanna Kumar Kalever
8eaecd2b99 gluster-block: add portal creation
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>
2017-02-15 11:31:45 +05:30
Prasanna Kumar Kalever
a6dc593444 cli: review fixes in gluster-block
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>
2017-02-11 20:52:21 +05:30
Prasanna Kumar Kalever
d1943660a2 gluster-block: improve cli usage hints
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
2017-02-10 12:05:03 +05:30