diff options
author | drebs <drebs@leap.se> | 2013-04-29 16:54:34 -0300 |
---|---|---|
committer | drebs <drebs@leap.se> | 2013-04-29 16:54:34 -0300 |
commit | df2ab40939dac3051371e44e4c66312ec693be15 (patch) | |
tree | ec770013cfd2ff2231ce4b42f2b998026c2c09d5 | |
parent | 7d01d932a6cc3ae4e673bc8facacc4c2f2953864 (diff) |
Add checks, exceptions and warnings for directory creation.
-rw-r--r-- | src/leap/soledad/__init__.py | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/src/leap/soledad/__init__.py b/src/leap/soledad/__init__.py index 31b3a41b..fe85bab9 100644 --- a/src/leap/soledad/__init__.py +++ b/src/leap/soledad/__init__.py @@ -32,6 +32,7 @@ import hashlib import configparser import re import binascii +import logging try: import simplejson as json except ImportError: @@ -53,6 +54,13 @@ from leap.soledad.shared_db import SoledadSharedDatabase from leap.soledad.crypto import SoledadCrypto +logger = logging.getLogger(name=__name__) + + +# +# Exceptions +# + class KeyDoesNotExist(Exception): """ Soledad attempted to find a key that does not exist locally. @@ -65,9 +73,15 @@ class KeyAlreadyExists(Exception): """ -#----------------------------------------------------------------------------- +class NotADirectory(Exception): + """ + Expected a path for a directory but got some other thing. + """ + + +# # Soledad: local encrypted storage and remote encrypted sync. -#----------------------------------------------------------------------------- +# class Soledad(object): """ @@ -235,8 +249,14 @@ class Soledad(object): lambda x: os.path.dirname(x), [self._config.get_local_db_path(), self._config.get_secret_path()]) for path in paths: - if not os.path.isdir(path): - os.makedirs(path) + if not os.path.isfile(path): + if not os.path.isdir(path): + logger.info('Creating directory: %s.' % path) + os.makedirs(path) + else: + logger.warning('Using existent directory: %s.' % path) + else: + raise NotADirectory(path) def _init_keys(self): """ |