예제 #1
0
파일: file.py 프로젝트: raidios/TACTIC
    def create(
        file_path,
        search_type,
        search_id,
        file_type=None,
        requires_file=True,
        st_size=None,
        repo_type=None,
        search_code=None,
    ):

        exists = os.path.exists(file_path)
        isdir = os.path.isdir(file_path)

        if requires_file and not os.path.exists(file_path):
            raise FileException("File '%s' does not exist" % file_path)

        file_name = os.path.basename(file_path)

        file = File(File.SEARCH_TYPE)
        file.set_value("file_name", file_name)
        file.set_value("search_type", search_type)
        if search_code:
            file.set_value("search_code", search_code)

        # MongoDb
        if search_id and isinstance(search_id, int):
            file.set_value("search_id", search_id)

        if file_type:
            file.set_value("type", file_type)

        if isdir:
            file.set_value("base_type", File.BASE_TYPE_DIR)
        else:
            file.set_value("base_type", File.BASE_TYPE_FILE)

        project = Project.get()

        file.set_value("project_code", project.get_code())

        if exists:
            if isdir:
                dir_info = Common.get_dir_info(file_path)
                size = dir_info.get("size")
                file.set_value("st_size", size)
            else:
                from stat import ST_SIZE

                size = os.stat(file_path)[ST_SIZE]
                file.set_value("st_size", size)
        elif st_size != None:
            file.set_value("st_size", st_size)

        if repo_type:
            file.set_value("repo_type", repo_type)

        file.commit()
        return file
예제 #2
0
파일: file.py 프로젝트: rajubuddha/TACTIC
    def create(file_path,
               search_type,
               search_id,
               file_type=None,
               requires_file=True,
               st_size=None,
               repo_type=None,
               search_code=None):

        exists = os.path.exists(file_path)
        isdir = os.path.isdir(file_path)

        if requires_file and not os.path.exists(file_path):
            raise FileException("File '%s' does not exist" % file_path)

        file_name = os.path.basename(file_path)

        file = File(File.SEARCH_TYPE)
        file.set_value("file_name", file_name)
        file.set_value("search_type", search_type)
        if search_code:
            file.set_value("search_code", search_code)

        # MongoDb
        if search_id and isinstance(search_id, int):
            file.set_value("search_id", search_id)

        if file_type:
            file.set_value("type", file_type)

        if isdir:
            file.set_value("base_type", File.BASE_TYPE_DIR)
        else:
            file.set_value("base_type", File.BASE_TYPE_FILE)

        project = Project.get()

        file.set_value("project_code", project.get_code())

        if exists:
            if isdir:
                dir_info = Common.get_dir_info(file_path)
                size = dir_info.get("size")
                file.set_value("st_size", size)
            else:
                from stat import ST_SIZE
                size = os.stat(file_path)[ST_SIZE]
                file.set_value("st_size", size)
        elif st_size != None:
            file.set_value("st_size", st_size)

        if repo_type:
            file.set_value("repo_type", repo_type)

        file.commit()
        return file
예제 #3
0
    def get_info(my, dirname, basename):
        location = my.kwargs.get("location")
        # get some info about the file
        path = "%s/%s" % (dirname, basename)

        snapshot = my.snapshots.get(path)
        file_range = None

        if FileGroup.is_sequence(path) and snapshot:
            file_range = snapshot.get_file_range()
            #start_frame = file_range.get_frame_start()
            #end_frame = file_range.get_frame_end()

        if location == 'server':
            my.info = Common.get_dir_info(path, file_range=file_range)
        else:
            my.info = {}
        return my.info
예제 #4
0
    def get_info(self, dirname, basename):
        location = self.kwargs.get("location")
        # get some info about the file
        path = "%s/%s" % (dirname, basename)

        snapshot = self.snapshots.get(path)
        file_range = None

        if FileGroup.is_sequence(path) and snapshot:
            file_range = snapshot.get_file_range()
            #start_frame = file_range.get_frame_start()
            #end_frame = file_range.get_frame_end()

        if location == 'server':
            self.info = Common.get_dir_info(path, file_range=file_range)
        else:
            self.info = {}
        return self.info
예제 #5
0
    def on_complete(my, path, data):
        if my.message_key:
            my.server.log_message(my.message_key, data, status="complete")



if __name__ == '__main__':

    import time

    from_path = "/home/tactic/svg"


    start = time.time()

    dir_info = Common.get_dir_info(from_path)
    print "dir_info: ", dir_info
    total_size = dir_info.get("size")


    from pyasm.security import Batch
    Batch()


    class Progress(object):
        def __init__(my):
            my.total_sent = 0

        def on_update(my, path, data):
            from tactic_client_lib import TacticServerStub
            server = TacticServerStub.get()