Revision f3b65e8f

b/snf-pithos-app/README
36 36
PITHOS_BACKEND_DB_CONNECTION     sqlite:////tmp/pithos-backend.db                  SQLAlchemy database connection string
37 37
PITHOS_BACKEND_BLOCK_MODULE      pithos.backends.lib.hashfiler
38 38
PITHOS_BACKEND_BLOCK_PATH        /tmp/pithos-data/                                 Map and block storage path
39
PITHOS_BACKEND_BLOCK_UMASK       0o022                                             Map and block storage umask
39 40
PITHOS_BACKEND_QUEUE_MODULE      None                                              Use ``pithos.backends.lib.rabbitmq`` to enable
40 41
PITHOS_BACKEND_QUEUE_CONNECTION  None                                              Format like ``rabbitmq://guest:guest@localhost:5672/pithos``
41 42
PITHOS_BACKEND_QUOTA             50 GB (50 * 1024 ** 3)                            Default user quota
b/snf-pithos-backend/pithos/backends/lib/hashfiler/store.py
38 38

  
39 39
class Store(object):
40 40
    """Store.
41
       Required constructor parameters: path, block_size, hash_algorithm.
41
       Required constructor parameters: path, block_size, hash_algorithm, umask.
42 42
    """
43 43
    
44 44
    def __init__(self, **params):
45
        umask = params['umask']
46
        if umask is not None:
47
            os.umask(umask)
48
        
45 49
        path = params['path']
46 50
        if path and not os.path.exists(path):
47 51
            os.makedirs(path)
b/snf-pithos-backend/pithos/backends/modular.py
74 74
DEFAULT_DB_CONNECTION = 'sqlite:///backend.db'
75 75
DEFAULT_BLOCK_MODULE = 'pithos.backends.lib.hashfiler'
76 76
DEFAULT_BLOCK_PATH = 'data/'
77
DEFAULT_BLOCK_UMASK = 0o022
77 78
#DEFAULT_QUEUE_MODULE = 'pithos.backends.lib.rabbitmq'
78 79
#DEFAULT_QUEUE_CONNECTION = 'rabbitmq://guest:guest@localhost:5672/pithos'
79 80

  
......
121 122
    """
122 123
    
123 124
    def __init__(self, db_module=None, db_connection=None,
124
                 block_module=None, block_path=None,
125
                 block_module=None, block_path=None, block_umask=None,
125 126
                 queue_module=None, queue_connection=None):
126 127
        db_module = db_module or DEFAULT_DB_MODULE
127 128
        db_connection = db_connection or DEFAULT_DB_CONNECTION
128 129
        block_module = block_module or DEFAULT_BLOCK_MODULE
129 130
        block_path = block_path or DEFAULT_BLOCK_PATH
131
        block_umask = block_umask or DEFAULT_BLOCK_UMASK
130 132
        #queue_module = queue_module or DEFAULT_QUEUE_MODULE
131 133
        #queue_connection = queue_connection or DEFAULT_QUEUE_CONNECTION
132 134
        
......
152 154
        self.block_module = load_module(block_module)
153 155
        params = {'path': block_path,
154 156
                  'block_size': self.block_size,
155
                  'hash_algorithm': self.hash_algorithm}
157
                  'hash_algorithm': self.hash_algorithm,
158
                  'umask': block_umask}
156 159
        self.store = self.block_module.Store(**params)
157 160

  
158 161
        if queue_module and queue_connection:

Also available in: Unified diff