def copyToDir(FileName_, DestDir_, Rewrite_=True): """ Копировать файл в папку. @param FileName_: Имя файла. @param DestDir_: Папка в которую необходимо скопировать. @param Rewrite_: True-если новый файл уже существует, то переписать его молча. False-если новый файл уже существует, то выдать сообщение о подтверждении перезаписи файла. @return: Возвращает результат выполнения операции True/False. """ return icCopyFile(FileName_, DestDir_ + '/' + BaseName(FileName_), Rewrite_)
def CopyDir(Dir_, ToDir_, ReWrite_=False): """ Функция папку Dir_ в папку ToDir_ со всеми внутренними поддиректориями и файлами. @param Dir_: Папка/директория, которая копируется. @param ToDir_: Папка/директория, в которую копируется Dir_. @param ReWrite_: Указание перезаписи директории, если она уже существует. @return: Функция возвращает результат выполнения операции True/False. """ try: to_dir = ToDir_ + '/' + BaseName(Dir_) if Exists(to_dir) and ReWrite_: shutil.rmtree(to_dir, 1) shutil.copytree(Dir_, to_dir) return True except: log.fatal(u'Ошибка копирования папки <%s> в папку <%s>' % (Dir_, ToDir_)) return False
def CloneDir(Dir_, NewDir_, ReWrite_=False): """ Функция переносит все содержимое папки Dir_ в папку с новым именем NewDir_. @param Dir_: Папка/директория, которая копируется. @param NewDir_: Новое имя папки/директории. @param ReWrite_: Указание перезаписи директории, если она уже существует. @return: Функция возвращает результат выполнения операции True/False. """ try: if os.path.exists(NewDir_) and ReWrite_: shutil.rmtree(NewDir_, 1) os.makedirs(NewDir_) for sub_dir in GetSubDirs(Dir_): shutil.copytree(sub_dir, NewDir_) for file_name in GetFiles(Dir_): icCopyFile(file_name, NewDir_ + '/' + BaseName(file_name)) return True except: log.fatal(u'Clone folder error. Clone %s to %s' % (Dir_, NewDir_)) return False
def CopyDir(Dir_, ToDir_, ReWrite_=False, AddDir_=True): """ Функция папку Dir_ в папку ToDir_ со всеми внутренними поддиректориями и файлами. @param Dir_: Папка/директория, которая копируется. @param ToDir_: Папка/директория, в которую копируется Dir_. @param ReWrite_: Указание перезаписи директории, если она уже существует. @param AddDir_: Указание производить дополнение папки, в случае ко когда копируемые файлы/папки существуют. @return: Функция возвращает результат выполнения операции True/False. """ try: to_dir = ToDir_ + '/' + BaseName(Dir_) if os.path.exists(to_dir) and ReWrite_: shutil.rmtree(to_dir, 1) if AddDir_: return addCopyDir(Dir_, to_dir) else: shutil.copytree(Dir_, to_dir) return True except: log.fatal(u'Copy folder error, from %s to %s' % (Dir_, ToDir_)) return False
class ScriptConfig: Name, Extension = SplitExt(BaseName(__file__)) ConfigFile = "/etc/" + Name + ".conf" Version = "0.10.0" Config = None Host = None def __init__(self): self.Config = ConfigParser() self.Config.sections() self.Config.read(self.ConfigFile) if self.HasOption('DEFAULT', 'scwMetaData'): self.Host = JLoads( check_output([self.Config['DEFAULT']['scwMetaData']])) else: self.Host = JLoads( check_output(["/usr/local/bin/scw-metadata-json"])) def GetToken(self): try: return self.Config['DEFAULT']['apitoken'] except: return None def GetIP(self): try: return self.Host['public_ip']['address'], self.Host['ipv6'][ 'address'] except: return None, None def HasOption(self, section, item): try: return self.Config.has_option(section, item) except: return None def GetItems(self): try: return self.Config.items() except: return None def GetValue(self, section, item): try: return self.Config[section].get(item) except: return None def GetInt(self, section, item): try: return self.Config[section].getint(item) except: return 0 def GetFloat(self, section, item): try: return self.Config[section].getfloat(item) except: return 0 def GetBoolean(self, section, item): try: return self.Config[section].getboolean(item) except: return False def GetBooleanNone(self, section, item): try: return self.Config[section].getboolean(item) except: return None