示例#1
0
文件: base.py 项目: abhi-bit/tsdb
    def create(klass, fs, root, name, metadata=None):
        """Create a new TSDBSet with name name rooted at root."""
        if metadata is None:
            metadata = {}

        path = os.path.join(root, name)
        if fs.exists(path):
            raise TSDBNameInUseError("%s already exists at %s" % (name, path))

        fs.makedir(path)
        write_dict(fs, os.path.join(path, klass.tag), metadata)
示例#2
0
文件: base.py 项目: abhi-bit/tsdb
    def create(klass, path, metadata=None, chunk_prefixes=[]):
        """Create a new TSDB.

            ``chunk_prefixes``
                a list of alternate prefixes to locate chunks
        """

        if metadata is None:
            metadata = {}

        if os.path.exists(os.path.join(path, "TSDB")):
            raise TSDBAlreadyExistsError("database already exists")

        metadata["CREATION_TIME"] = time.time()
        metadata["CHUNK_PREFIXES"] = chunk_prefixes

        if not os.path.exists(path):
            os.mkdir(path)

        fs = get_fs(path, [])
        write_dict(fs, os.path.join("/", klass.tag), metadata)

        return klass(path)
示例#3
0
文件: base.py 项目: abhi-bit/tsdb
    def create(klass, fs, root, name, vartype, step, chunk_mapper, metadata=None):
        """Create a new TSDBVar."""
        if metadata is None:
            metadata = {}

        path = os.path.join(root, name)
        if fs.exists(path):
            raise TSDBNameInUseError("%s already exists at %s" % (name, path))

        if type(vartype) == str:
            exec("vartype = tsdb.%s" % vartype)
        elif type(vartype) == int:
            vartype = ROW_TYPE_MAP[vartype]

        metadata["NAME"] = name
        metadata["TYPE_ID"] = vartype.type_id
        metadata["VERSION"] = vartype.version
        metadata["STEP"] = step
        metadata["CREATION_TIME"] = time.time()
        metadata["CHUNK_MAPPER_ID"] = chunk_mapper.chunk_mapper_id

        fs.makedir(path)

        write_dict(fs, os.path.join(path, klass.tag), metadata)
示例#4
0
文件: base.py 项目: abhi-bit/tsdb
 def save_metadata(self):
     """Save metadata for this container."""
     write_dict(self.fs, os.path.join(self.path, self.tag), self.metadata)