def newProject(self, projectName, projectCode): """ Create new project :param projectName: Project name :type projectName: str :param projectCode: Project code :type projectCode: str """ self.log.info("#--- Create New Project ---#") self.log.info("Project Name: %s" % projectName) self.log.info("Project Code: %s" % projectCode) #--- Check New Project ---# if '%s--%s' % (projectName, projectCode) in self.projects: raise AttributeError("Project already exists: %s--%s" % (projectName, projectCode)) if projectName in self.projectNames: raise AttributeError("Project name already used: %s" % projectName) if projectCode in self.projectCodes: raise AttributeError("Project code already used: %s" % projectCode) #--- Create Project Folder ---# newProjectPath = pFile.conformPath(os.path.join(self._fdn.__projectsPath__, '%s--%s' % (projectName, projectCode))) pFile.createPath([newProjectPath], log=self.log) #--- Create Project File ---# projFile = pFile.conformPath(os.path.join(newProjectPath, '%s--%s.py' % (projectName, projectCode))) projDict = dict(project="%s--%s" % (projectName, projectCode), watchers=[self._fdn.__user__], _assets=None, _shots=None) try: pFile.writeDictFile(projFile, projDict) self.log.debug("---> Project file successfully written: %s" % projFile) except: raise IOError("!!! Can not write project file: %s !!!" % projFile)
def _setup(self, logLvl): """ Setup Foundation core object """ #--- Init Log ---# self.log = pFile.Logger(title=self.__class__.__name__, level=logLvl) self.log.info("########## %s ##########" % self.__class__.__name__, newLinesBefore=1) #--- Create Tool Paths ---# self.log.debug("#--- Check Paths ---#") paths = [self.__rootPath__, self.__projectsPath__, self.__settingsPath__] pFile.createPath(paths, log=self.log)
def writeFile(self): """ Write entity file """ self.log.debug("#---- Write Entity File: %s ----#" % self.entityName) #--- Check Path ---# self.log.detail("Check entity path ...") pFile.createPath(self.entityPath, recursive=True, root=self._project.projectPath, log=self.log) #--- Write File ---# self.log.detail("Write entity file ...") try: pFile.writeDictFile(self.entityFile, self.getData()) self.log.debug("---> User file successfully written: %s" % self.entityFile) except: raise IOError("!!! Can not write user file: %s !!!" % self.entityName)
def writeFile(self): """ Write user file """ self.log.debug("#---- Write User File: %s ----#" % self.userName) #--- Check Path ---# self.log.detail("Check user path ...") pFile.createPath(self.userPath, recursive=True, root=self._parent.usersPath, log=self.log) #--- Write File ---# self.log.detail("Write user file ...") try: pFile.writeDictFile(self.userFile, self.getData()) self.log.debug("---> User file successfully written: %s" % self.userFile) except: raise IOError("!!! Can not write user file: %s !!!" % self.userName)
def delUser(self, userName=None, userObj=None, archive=False): """ Delete given user :param userName: User name :type userName: str :param userObj: User object :type userObj: User :param archive: Archives datas (clean disk) :type archive: bool """ # --- Check User Object ---# if userObj is None: userObj = self.getChilds(userName=userName) if userObj is None: raise AttributeError("!!! User not found: %s !!!" % userName) # --- Archive User ---# if archive: self.log.info("Archive user %r" % userObj.userName) dateTime = "%s--%s" % (pFile.getDate(), pFile.getTime()) archivePath = pFile.conformPath( os.path.join(self.archivePath, userObj.userPrefix, userObj.userName, dateTime) ) pFile.createPath(archivePath, recursive=True, root=self.usersPath, log=self.log) archiveFullPath = pFile.conformPath(os.path.join(archivePath, userObj.userName)) # --- Create Archive ---# if os.path.exists(userObj.userPath): try: shutil.copytree(userObj.userPath, archiveFullPath) shutil.rmtree(userObj.userPath) self.log.debug("---> User %r archived in %s" % (userObj.userName, archivePath)) except: raise IOError("!!! Can not copy tree: %s !!!" % userObj.userPath) else: raise IOError("!!! User path not found: %s !!!" % userObj.userPath) # --- Delete User Object ---# if userObj in self.childs: self.log.info("Deleting user object %r ..." % userObj.userName) self.childs.remove(userObj) else: self.log.debug("User object %r already deleted. Skipp !!!" % userObj.userName) # --- Result ---# self.log.info("---> %r deleted." % userObj.userName)
def delUser(self, userName=None, userObj=None, archive=False): """ Delete given user :param userName: User name :type userName: str :param userObj: User object :type userObj: User :param archive: Archives datas (clean disk) :type archive: bool """ #--- Check User Object ---# if userObj is None: userObj = self.getChilds(userName=userName) if userObj is None: raise AttributeError("!!! User not found: %s !!!" % userName) #--- Archive User ---# if archive: self.log.info("Archive user %r" % userObj.userName) dateTime = '%s--%s' % (pFile.getDate(), pFile.getTime()) archivePath = pFile.conformPath(os.path.join(self.archivePath, userObj.userPrefix, userObj.userName, dateTime)) pFile.createPath(archivePath, recursive=True, root=self.usersPath, log=self.log) archiveFullPath = pFile.conformPath(os.path.join(archivePath, userObj.userName)) #--- Create Archive ---# if os.path.exists(userObj.userPath): try: shutil.copytree(userObj.userPath, archiveFullPath) shutil.rmtree(userObj.userPath) self.log.debug("---> User %r archived in %s" % (userObj.userName, archivePath)) except: raise IOError("!!! Can not copy tree: %s !!!" % userObj.userPath) else: raise IOError("!!! User path not found: %s !!!" % userObj.userPath) #--- Delete User Object ---# if userObj in self.childs: self.log.info("Deleting user object %r ..." % userObj.userName) self.childs.remove(userObj) else: self.log.debug("User object %r already deleted. Skipp !!!" % userObj.userName) #--- Result ---# self.log.info("---> %r deleted." % userObj.userName)
def _setup(self): """ Setup Group core object """ super(Users, self)._setup() #--- Create Tool Paths ---# self.log.debug("#---- Check Paths ----#") userGrp = self._groups.defaultChilds[len(self._groups.defaultChilds)-1]['grpCode'] if not os.path.exists(self.usersPath): pFile.createPath(self.usersPath, log=self.log) userGrp = self._groups.defaultChilds[0]['grpCode'] #--- Check User ---# self.log.debug("#--- Check User ---#") self.collecteUsers(userName=self._fdn.__user__) #--- Create Current User ---# if self._user is None: self.log.debug("Create user %r ..." % self._fdn.__user__) childObj = self.newChild(userName=self._fdn.__user__, userGroup=userGrp, userStatus=True) self.addChild(childObj) childObj.writeFile()