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)
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)
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)
def save_metadata(self): """Save metadata for this container.""" write_dict(self.fs, os.path.join(self.path, self.tag), self.metadata)