summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* block: show reason for cmd failue on non-existent/not started volumePranith Kumar K2017-04-281-0/+11
| | | | | | | | | show the right reason for block operations failure on any non-existent/not started volume. Change-Id: I6340c80aa1a6125038c3e2a2399833562bd5fe8c Fixes: #10 Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: support json responsePrasanna Kumar Kalever2017-04-2814-312/+732
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* logging: redirect configshell logs to GB_LOGDIRPrasanna Kumar Kalever2017-04-132-15/+20
| | | | | | | | | | | | | | | | | | | | currently, GLOBAL CONFIG GROUP =================== [...] logfile=hello ------------- Logfile to use. [...] i.e. configshell logs are collected at 'hello' file. This patch will redirect configshell logs to 'GB_LOGDIR/gluster-block-configshell.log' Change-Id: I487c6197578c24412fbec72cb8c354725614de59 Fixes: #13 Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* build: use rpcgen to generate all XDR codeNiels de Vos2017-03-1715-512/+117
| | | | | | | | | | | | | | | | | | | | | 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>
* NEWS: updatev0.1.1Prasanna Kumar Kalever2017-03-161-1/+8
| | | | | Change-Id: Idad0d853c166fecb73e2f04ce2ebe083de96c76b Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: create portal only with ip addressPrasanna Kumar Kalever2017-03-134-10/+10
| | | | | | | | | portal create with FQDN or hostname seems to be not working i.e. iscsiadm fails to discover the nodes or the otherway targetcli is unable to export the LUN right. Change-Id: Ibe0e2aa1b365d6c74a7974b2faf502d2c2ac38ad Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* spec: conditionally enable with_systemd flagPrasanna Kumar Kalever2017-03-061-0/+14
| | | | | Change-Id: I614b19873bd54786f780d767cf84b93f21d6afc7 Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* build: fix package version stringPrasanna Kumar Kalever2017-03-031-1/+1
| | | | | | | | | | | | | | | before: ------ PACKAGE VERSION: v0.1 note 'v' character in the string now: ----- PACKAGE VERSION: 0.1 Change-Id: I381feba2b3ba1761f025b24afbcc543d7c96a2ed Reported-by: Niels de Vos <ndevos@redhat.com> Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* NEWS: initial releasev0.1Prasanna Kumar Kalever2017-02-272-1/+8
| | | | | Change-Id: Ieaa644063e088f27fe1102a351335d65ffb54efc Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-blockd: parse create and delete outputsPrasanna Kumar Kalever2017-02-275-91/+474
| | | | | | | | | | | | | | | | 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>
* INSTALL: add install guidePrasanna Kumar Kalever2017-02-273-2/+75
| | | | | Change-Id: Icfb21f3134b9dc3817638ca48c1b0b92438cef1d Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* cli: add traditional optionsPrasanna Kumar Kalever2017-02-272-20/+32
| | | | | | | | 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>
* docs: add man page for gluster-block cliPrasanna Kumar Kalever2017-02-275-2/+138
| | | | | Change-Id: Iff9d693ce4478582ddbbbe487b00d71f456929f8 Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* build: pass "--with systemd" to rpmbuild if neededNiels de Vos2017-02-251-0/+5
| | | | | | | | | | | In case ./configure detects that the environment is using systemd, the "make install" step will copy the gluster-block.service file to the right location. However, the RPMs do not include this file by default, so adding a "--with systemd" to rpmbuild/mock is needed (until there is some form of auto-detection in the .spec). Change-Id: Id64fa664f5b2a3d3c4675b2ad7a54d415a54281a Signed-off-by: Niels de Vos <ndevos@redhat.com>
* build: cleaner build RPMs with "make rpms"Niels de Vos2017-02-251-8/+10
| | | | | | | | | | | | There is no need to copy all the files everywhere, this can be controlled with --define options to rpmbuild. Also add a "make srpm" target for building the source RPM that can then be built with 'mock' or uploaded to build systems from different distributions. Change-Id: Ib66bfe9b981fd9bf12f997d416ff3b9f53da90d8 Signed-off-by: Niels de Vos <ndevos@redhat.com>
* build: refactorNiels de Vos2017-02-254-32/+30
| | | | | | | | | | | - tcmu-runner and targetcli are not build dependencies - use pkg-config to get libgfapi build parameters - cleanup .spec file Change-Id: Ib1451f7a375438cd2e78ae4137d1d02e01516fbd Signed-off-by: Niels de Vos <ndevos@redhat.com>
* cli: change in synopsis for gluster-block commandsPrasanna Kumar Kalever2017-02-245-231/+161
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* lockfile: don't allow multiple instances of daemon to runPrasanna Kumar Kalever2017-02-212-7/+38
| | | | | | | | | | | | | | until now there is no check to defend on multiple runs of daemon within the same node. This patch takes a non blocking lock on 'gluster-blockd.lock' file, if it succeeds only then daemon is allowed to run, if there is already a lock on lock-file (taken by some other instance of gluster-blockd) we will exit. This patch also renames GB_UNIX_ADDRESS from gluster-block.socket to gluster-blockd.socket, as that makes better sense. Change-Id: I43b285f9da15d078fe3df4d231d0ef8d44272d8f Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* Fix line space in readmeNigel Babu2017-02-211-2/+3
| | | | | Change-Id: I3680cc30356d843a48fd9bc41a104acab2ac2d76 Signed-off-by: Nigel Babu <nigelb@redhat.com>
* gluster-blockd: defend on connect() issuesPrasanna Kumar Kalever2017-02-202-12/+31
| | | | | | | | | | | | | | | currently remote connect(b/w gluster-blockd's) failed cases such as, ECONNREFUSED No-one listening on the remote address. ENETUNREACH Network is unreachable. ETIMEDOUT Timeout while attempting connection ... are considered as CONFIGFAIL, this patch defend on these errno's. Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-blockd: treat delete success if block doesn't existPrasanna Kumar Kalever2017-02-201-0/+15
| | | | | | | | | | | | | problem: say because of some reasons create failed to config on node, so it will log CONFIGFAIL in the metafile. At the time of delete since config failed it is obvious that block will not exist. since delete cannot find it now it fails to delete hence returning -1. solution: treat delete success if there is no block with given name on that node. Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-blockd: fix violation of double pointer usagePrasanna Kumar Kalever2017-02-201-50/+21
| | | | Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-blockd: fix bug in glusterBlockCleanUpPrasanna Kumar Kalever2017-02-201-3/+3
| | | | | | | fix filename in GB_METAUPDATE_OR_GOTO() i.e change gbid to blockname Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: improve log messagesPrasanna Kumar Kalever2017-02-204-104/+161
| | | | | | | 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-199-87/+189
| | | | Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* docs: Update README.mdPrasanna Kumar Kalever2017-02-171-153/+64
| | | cli changes updated.
* create: cleanup config in all the nodes if mpath is not satisfiedPrasanna Kumar Kalever2017-02-171-82/+88
| | | | | | partial success is treated as failure. Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* cli: deprecate volserver optionPrasanna Kumar Kalever2017-02-179-43/+18
| | | | | | | 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>
* meta: thread safe GB_METAUPDATE_OR_GOTOPrasanna Kumar Kalever2017-02-162-64/+80
| | | | | | | | | | | | GB_METAUPDATE_OR_GOTO used an already opened glfs fd to update the meta data, since we have mpath number of threads writing to the same metadata file simultaneously, this will lead to thread concurrency and data consistency issues. Hence this patch protects GB_METAUPDATE_OR_GOTO with a lock and removes fd sharing by moving glfs_creat/open and glfs_close within the MACRO. Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* daemon: fix minor bugsPrasanna Kumar Kalever2017-02-166-101/+144
| | | | | Reported-by: Pranith Kumar K <pkarampu@redhat.com> Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* build: update dependency listPrasanna Kumar Kalever2017-02-152-0/+15
| | | | Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* cli: add command to furnish pkg version infoPrasanna Kumar Kalever2017-02-153-26/+46
| | | | | | | | | 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>
* cli: cart off unwanted output from create commandPrasanna Kumar Kalever2017-02-153-4/+5
| | | | | | | | | | | | | | The response of below sub-operations as part of create are undesired $ targetcli set global auto_add_default_portal=false $ targetcli / saveconfig $ targetcli set attributes generate_node_acls=1 demo_mode_write_protect=0 Hence redirecting them to '/dev/null' This patch also fix a bug in the previous patch i.e. missed inverting [!] function return in if() Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-blockd: create logging directoriesPrasanna Kumar Kalever2017-02-157-10/+49
| | | | Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: add portal creationPrasanna Kumar Kalever2017-02-152-5/+22
| | | | | | | 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>
* daemon: redirect logs to logdirPrasanna Kumar Kalever2017-02-143-28/+63
| | | | | | replace fprintf calls with LOG() Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* cli: review fixes in gluster-blockPrasanna Kumar Kalever2017-02-116-48/+69
| | | | | | 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>
* glfs: fix memory leak in blockStuffMetaInfoPrasanna Kumar Kalever2017-02-111-15/+28
| | | | | | 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>
* tests: add basic test scriptPrasanna Kumar Kalever2017-02-101-0/+88
| | | | | | | | Make sure you have all the dependent binaries Run: $ ./tests/basic.t 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>
* gluster-block: threadify remote requestsPrasanna Kumar Kalever2017-02-092-66/+219
| | | | | | | | | | | | | | | Before: ------ rpc clnt_call() is synchronous, for a multipath request each remote call has to wait until the previous remote call returns i,e each remote op happens in serial. After: ----- As we now threadify the remote calls, all the remote call's happens in parallel shrinking the overall latency for create and delete requests. Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: create block files in '/block-store' dirPrasanna Kumar Kalever2017-02-085-17/+76
| | | | | | | | | | | | | | | | | till now we have '/block-meta' dir for meta files and actual block files used to reside in '/' dir. From now, lets place block files in '/block-store' So, this is how it looks like: $ tree /mnt/ /mnt/ ├── block-meta │   ├── meta.lock │   └── TARGET └── block-store └── 103e4cf1-bf41-404a-9fe1-b7c70fc33b3e Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* license: add licensing and copyright filesPrasanna Kumar Kalever2017-02-083-1/+505
| | | | | | patch also does minor correction in package name. Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* build: fix minor warningsPrasanna Kumar Kalever2017-02-087-66/+161
| | | | | | | mostly uninitialized use of variables. check return values from function calls. Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* build: add uuid and pthread libraries to dependency listPrasanna Kumar Kalever2017-02-073-7/+18
| | | | Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gfapi: unify calls to glfs_init and friendsPrasanna Kumar Kalever2017-02-073-28/+11
| | | | | | | There were two glfs_init(and friends) invocations per op (create & delete). This patch just unifies those calls (since they anyway belong to same volume) Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
* gluster-block: migrate build to libtoolz and create rpmPrasanna Kumar Kalever2017-02-0724-225/+484
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* cli: deprecated getopts_long usagePrasanna Kumar Kalever2017-02-054-179/+314
| | | | | | | | | | | | | | | | | | | deprecated getopts as to eliminate use of '--' with command line options The new usage looks like: gluster-block (Version 0.1) create <name> Create the gluster block volserver [gluster-node] node addr from gluster pool(def: localhost) size <size> block storage size in KiB|MiB|GiB|TiB.. mpath <count> multi path requirement for high availablity servers [<IP1,IP2,IP3...>] block servers, clubbed with any option list List available gluster blocks info <name> Details about gluster block modify <resize|auth> Modify the metadata delete <name> Delete the gluster block volume <vol> gluster volume name Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>