diff options
| author | Michael Still <mikal@stillhq.com> | 2012-10-10 17:28:11 +1100 |
|---|---|---|
| committer | Michael Still <mikal@stillhq.com> | 2012-10-18 09:09:17 -0700 |
| commit | 9a8c1d7e1a537e6580be2be1630baefc910de1de (patch) | |
| tree | fe6c40b44c3b9d5b1dcaefc4945bc98e01956698 /openstack/common/fileutils.py | |
| parent | 7695f967a3c750642504aa60f748111f64880a07 (diff) | |
| download | oslo-9a8c1d7e1a537e6580be2be1630baefc910de1de.tar.gz oslo-9a8c1d7e1a537e6580be2be1630baefc910de1de.tar.xz oslo-9a8c1d7e1a537e6580be2be1630baefc910de1de.zip | |
Move nova's util.synchronized decorator to openstack common.
In the end I needed to port utils.ensure_tree as well. Resolves
bug 1063230.
Change-Id: I6e6fa8201de2cac3f17e6c60d7b16f7df7c64116
Diffstat (limited to 'openstack/common/fileutils.py')
| -rw-r--r-- | openstack/common/fileutils.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/openstack/common/fileutils.py b/openstack/common/fileutils.py new file mode 100644 index 0000000..4746ad4 --- /dev/null +++ b/openstack/common/fileutils.py @@ -0,0 +1,35 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright 2011 OpenStack LLC. +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + + +import errno +import os + + +def ensure_tree(path): + """Create a directory (and any ancestor directories required) + + :param path: Directory to create + """ + try: + os.makedirs(path) + except OSError as exc: + if exc.errno == errno.EEXIST: + if not os.path.isdir(path): + raise + else: + raise |
