Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
 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)
Exemplo n.º 5
0
 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)
Exemplo n.º 6
0
    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)
Exemplo n.º 7
0
    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)
Exemplo n.º 8
0
 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()