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