~ubuntu-branches/ubuntu/vivid/sahara/vivid-proposed

« back to all changes in this revision

Viewing changes to sahara/utils/tempfiles.py

  • Committer: Package Import Robot
  • Author(s): Thomas Goirand
  • Date: 2014-09-24 16:34:46 UTC
  • Revision ID: package-import@ubuntu.com-20140924163446-8gu3zscu5e3n9lr2
Tags: upstream-2014.2~b3
ImportĀ upstreamĀ versionĀ 2014.2~b3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Copyright (c) 2013 Mirantis Inc.
 
2
#
 
3
# Licensed under the Apache License, Version 2.0 (the "License");
 
4
# you may not use this file except in compliance with the License.
 
5
# You may obtain a copy of the License at
 
6
#
 
7
#    http://www.apache.org/licenses/LICENSE-2.0
 
8
#
 
9
# Unless required by applicable law or agreed to in writing, software
 
10
# distributed under the License is distributed on an "AS IS" BASIS,
 
11
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 
12
# implied.
 
13
# See the License for the specific language governing permissions and
 
14
# limitations under the License.
 
15
 
 
16
import contextlib
 
17
import shutil
 
18
import tempfile
 
19
 
 
20
from sahara import exceptions as ex
 
21
from sahara.i18n import _
 
22
 
 
23
 
 
24
@contextlib.contextmanager
 
25
def tempdir(**kwargs):
 
26
    argdict = kwargs.copy()
 
27
    if 'dir' not in argdict:
 
28
        argdict['dir'] = '/tmp/'
 
29
    tmpdir = tempfile.mkdtemp(**argdict)
 
30
    try:
 
31
        yield tmpdir
 
32
    finally:
 
33
        try:
 
34
            shutil.rmtree(tmpdir)
 
35
        except OSError as e:
 
36
            raise ex.SystemError(
 
37
                _("Failed to delete temp dir %(dir)s (reason: %(reason)s)") %
 
38
                {'dir': tmpdir, 'reason': e})