Revision 8e5a705d lib/utils/io.py
b/lib/utils/io.py | ||
---|---|---|
290 | 290 |
raise |
291 | 291 |
|
292 | 292 |
|
293 |
def RenameFile(old, new, mkdir=False, mkdir_mode=0750): |
|
293 |
def RenameFile(old, new, mkdir=False, mkdir_mode=0750, dir_uid=None, |
|
294 |
dir_gid=None): |
|
294 | 295 |
"""Renames a file. |
295 | 296 |
|
296 | 297 |
@type old: string |
... | ... | |
301 | 302 |
@param mkdir: Whether to create target directory if it doesn't exist |
302 | 303 |
@type mkdir_mode: int |
303 | 304 |
@param mkdir_mode: Mode for newly created directories |
305 |
@type dir_uid: int |
|
306 |
@param dir_uid: The uid for the (if fresh created) dir |
|
307 |
@type dir_gid: int |
|
308 |
@param dir_gid: The gid for the (if fresh created) dir |
|
304 | 309 |
|
305 | 310 |
""" |
306 | 311 |
try: |
... | ... | |
311 | 316 |
# as efficient. |
312 | 317 |
if mkdir and err.errno == errno.ENOENT: |
313 | 318 |
# Create directory and try again |
314 |
Makedirs(os.path.dirname(new), mode=mkdir_mode) |
|
319 |
dir_path = os.path.dirname(new) |
|
320 |
Makedirs(dir_path, mode=mkdir_mode) |
|
321 |
if not (dir_uid is None or dir_gid is None): |
|
322 |
os.chown(dir_path, dir_uid, dir_gid) |
|
315 | 323 |
|
316 | 324 |
return os.rename(old, new) |
317 | 325 |
|
Also available in: Unified diff