diff options
| author | Aravinda VK <avishwan@redhat.com> | 2015-06-10 14:47:21 +0530 | 
|---|---|---|
| committer | Vijay Bellur <vbellur@redhat.com> | 2015-06-12 11:32:59 -0700 | 
| commit | e444c8f454aa791aa723016ceaa66d9eb2971dc0 (patch) | |
| tree | 3f108cdd89543a8f8c8e23e5e9b2eb6c63a95f40 /tools | |
| parent | 2e0c8bbe9a04693c270fd383a2a58f3ef87fb898 (diff) | |
tools/glusterfind: Cleanup session dir after delete
Sessions directories are created in
/var/lib/glusterd/glusterfind/<SESSION>/<VOLUME>, only <VOLUME>
dir is created since same session name can exists for two volumes.
Now cleanup is added, <SESSION> dir will be removed if <SESSION>
contains only one Volume.
Change-Id: I236393659e63eb98342570e0255739f4adea4491
Signed-off-by: Aravinda VK <avishwan@redhat.com>
BUG: 1230715
Reviewed-on: http://review.gluster.org/#/c/11157/
Reviewed-on: http://review.gluster.org/11185
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Kotresh HR <khiremat@redhat.com>
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/glusterfind/src/main.py | 11 | ||||
| -rw-r--r-- | tools/glusterfind/src/nodeagent.py | 10 | 
2 files changed, 20 insertions, 1 deletions
diff --git a/tools/glusterfind/src/main.py b/tools/glusterfind/src/main.py index 16dc18bd732..850024be2fe 100644 --- a/tools/glusterfind/src/main.py +++ b/tools/glusterfind/src/main.py @@ -9,7 +9,7 @@  # cases as published by the Free Software Foundation.  import sys -from errno import ENOENT +from errno import ENOENT, ENOTEMPTY  import time  from multiprocessing import Process  import os @@ -454,6 +454,15 @@ def mode_delete(session_dir, args):      shutil.rmtree(os.path.join(session_dir, args.volume),                    onerror=handle_rm_error) +    # If the session contains only this volume, then cleanup the +    # session directory. If a session contains multiple volumes +    # then os.rmdir will fail with ENOTEMPTY +    try: +        os.rmdir(session_dir) +    except OSError as e: +        if not e.errno == ENOTEMPTY: +            logger.warn("Failed to delete session directory: %s" % e) +  def mode_list(session_dir, args):      """ diff --git a/tools/glusterfind/src/nodeagent.py b/tools/glusterfind/src/nodeagent.py index 2e8c2fc9759..e7ba4afa4cb 100644 --- a/tools/glusterfind/src/nodeagent.py +++ b/tools/glusterfind/src/nodeagent.py @@ -14,6 +14,7 @@ import os  import logging  from argparse import ArgumentParser, RawDescriptionHelpFormatter  import urllib +from errno import ENOTEMPTY  from utils import setup_logger, mkdirp, handle_rm_error  import conf @@ -78,6 +79,15 @@ def mode_delete(args):      shutil.rmtree(os.path.join(session_dir, args.volume),                    onerror=handle_rm_error) +    # If the session contains only this volume, then cleanup the +    # session directory. If a session contains multiple volumes +    # then os.rmdir will fail with ENOTEMPTY +    try: +        os.rmdir(session_dir) +    except OSError as e: +        if not e.errno == ENOTEMPTY: +            logger.warn("Failed to delete session directory: %s" % e) +  def _get_args():      parser = ArgumentParser(formatter_class=RawDescriptionHelpFormatter,  | 
