node

package
v0.9.28 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 8, 2019 License: BSD-2-Clause Imports: 31 Imported by: 14

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DocumentMaxByte = 16777216

mongodb has hard limit of 16 MB docuemnt size

Functions

func AsyncIndexer added in v0.9.26

func AsyncIndexer(idxType string, nid string, colNum int, ctx context.Context)

func DbFindDistinct added in v0.9.15

func DbFindDistinct(q bson.M, d string) (results interface{}, err error)

func HasAttributeField added in v0.9.15

func HasAttributeField(a string) bool

func InitReaper added in v0.9.10

func InitReaper()

func Initialize

func Initialize()

Initialize creates a copy of the mongodb connection and then uses that connection to create the Nodes collection in mongodb. Then, it ensures that there is a unique index on the id key in this collection, creating the index if necessary.

func IsInMappy

func IsInMappy(item string, mp mappy) bool

func ReloadFromDisk

func ReloadFromDisk(path string) (err error)

func SetFileFromParts added in v0.9.26

func SetFileFromParts(id string, compress string, numParts int, allowEmpty bool)

this runs asynchronously and uses FileLockMgr

func SortByteArray added in v0.9.21

func SortByteArray(b []byte) []byte

Types

type IdxInfo

type IdxInfo struct {
	Type        string           `bson:"index_type" json:"-"`
	TotalUnits  int64            `bson:"total_units" json:"total_units"`
	AvgUnitSize int64            `bson:"average_unit_size" json:"average_unit_size"`
	Format      string           `bson:"format" json:"-"`
	CreatedOn   time.Time        `bson:"created_on" json:"created_on"`
	Locked      *locker.LockInfo `bson:"-" json:"locked"`
}

type Indexes

type Indexes map[string]*IdxInfo

type Node

type Node struct {
	Id           string            `bson:"id" json:"id"`
	Version      string            `bson:"version" json:"version"`
	File         file.File         `bson:"file" json:"file"`
	Attributes   interface{}       `bson:"attributes" json:"attributes"`
	Indexes      Indexes           `bson:"indexes" json:"indexes"`
	Acl          acl.Acl           `bson:"acl" json:"-"`
	VersionParts map[string]string `bson:"version_parts" json:"version_parts"`
	Tags         []string          `bson:"tags" json:"tags"`
	Revisions    []Node            `bson:"revisions" json:"-"`
	Linkages     []linkage         `bson:"linkage" json:"linkage"`
	Priority     int               `bson:"priority" json:"priority"`
	CreatedOn    time.Time         `bson:"created_on" json:"created_on"`
	LastModified time.Time         `bson:"last_modified" json:"last_modified"`
	Expiration   time.Time         `bson:"expiration" json:"expiration"` // 0 means no expiration
	Type         string            `bson:"type" json:"type"`
	Subset       Subset            `bson:"subset" json:"-"`
	Parts        *PartsList        `bson:"parts" json:"parts"`
}

func CreateNodeUpload

func CreateNodeUpload(u *user.User, params map[string]string, files file.FormFiles) (node *Node, err error)

func CreateNodesFromArchive added in v0.9.7

func CreateNodesFromArchive(u *user.User, params map[string]string, files file.FormFiles, archiveId string) (nodes []*Node, err error)

func Load

func Load(id string) (n *Node, err error)

func New

func New() (node *Node)

func (*Node) DBInit added in v0.9.26

func (node *Node) DBInit()

func (*Node) Delete

func (node *Node) Delete() (err error)

func (*Node) DeleteIndex added in v0.8.5

func (node *Node) DeleteIndex(indextype string) (err error)

func (*Node) DynamicIndex added in v0.8.14

func (node *Node) DynamicIndex(name string) (idx index.Index, err error)

func (*Node) FileExt

func (node *Node) FileExt() string

func (*Node) FilePath

func (node *Node) FilePath() string

func (*Node) FileReader

func (node *Node) FileReader() (reader file.ReaderAt, err error)

func (*Node) HasFile

func (node *Node) HasFile() bool

has

func (*Node) HasFileLock added in v0.9.26

func (node *Node) HasFileLock() bool

func (*Node) HasIndex

func (node *Node) HasIndex(index string) bool

func (*Node) HasIndexLock added in v0.9.26

func (node *Node) HasIndexLock(name string) bool

func (*Node) HasParent

func (node *Node) HasParent() bool

func (*Node) IndexPath

func (node *Node) IndexPath() string

func (*Node) Mkdir

func (node *Node) Mkdir() (err error)

func (*Node) Path

func (node *Node) Path() string

path

func (*Node) Rmdir

func (node *Node) Rmdir() (err error)

func (*Node) Save

func (node *Node) Save() (err error)

func (*Node) SetAttributes

func (node *Node) SetAttributes(attr file.FormFile) (err error)

func (*Node) SetAttributesFromString added in v0.8.5

func (node *Node) SetAttributesFromString(attributes string) (err error)

func (*Node) SetExpiration added in v0.9.10

func (node *Node) SetExpiration(expire string) (err error)

func (*Node) SetFile

func (node *Node) SetFile(file file.FormFile) (err error)

func (*Node) SetFileFromPath

func (node *Node) SetFileFromPath(path string, action string) (err error)

func (*Node) SetFileFromSubset added in v0.8.12

func (node *Node) SetFileFromSubset(subsetIndices file.FormFile) (err error)

func (*Node) SetIndexInfo

func (node *Node) SetIndexInfo(indextype string, idxinfo *IdxInfo)

func (*Node) ToJson

func (node *Node) ToJson() (s string, err error)

func (*Node) Update

func (node *Node) Update(params map[string]string, files file.FormFiles, hasLock bool) (err error)

Modification functions

func (*Node) UpdateDataTags

func (node *Node) UpdateDataTags(types string)

func (*Node) UpdateLinkages

func (node *Node) UpdateLinkages(ltype string, ids string, operation string)

func (*Node) UpdateVersion

func (node *Node) UpdateVersion() (err error)

type NodeReaper added in v0.9.10

type NodeReaper struct{}
var (
	Ttl         *NodeReaper
	ExpireRegex = regexp.MustCompile(`^(\d+)(M|H|D)$`)
)

func NewNodeReaper added in v0.9.10

func NewNodeReaper() *NodeReaper

func (*NodeReaper) Handle added in v0.9.10

func (nr *NodeReaper) Handle()

type Nodes

type Nodes []*Node

Node array type

func LoadNodes

func LoadNodes(ids []string) (n Nodes, err error)

func (*Nodes) DBInit added in v0.9.26

func (n *Nodes) DBInit()

func (*Nodes) GetAll

func (n *Nodes) GetAll(q bson.M) (err error)

func (*Nodes) GetPaginated

func (n *Nodes) GetPaginated(q bson.M, limit int, offset int, order string) (count int, err error)

type Parent added in v0.8.12

type Parent struct {
	Id        string `bson:"id" json:"-"`
	IndexName string `bson:"index_name" json:"-"`
}

type PartsList added in v0.9.7

type PartsList struct {
	Count       int         `bson:"count" json:"count"`
	Length      int         `bson:"length" json:"length"`
	VarLen      bool        `bson:"varlen" json:"varlen"`
	Parts       []partsFile `bson:"parts" json:"parts"`
	Compression string      `bson:"compression" json:"compression"`
}

type Subset added in v0.8.12

type Subset struct {
	Parent Parent            `bson:"parent" json:"-"`
	Index  SubsetNodeIdxInfo `bson:"index" json:"-"`
}

Subset is used to store information about a subset node's parent and its index. A subset node's index defines the subset of the data file that this node represents. A subset node's index is immutable after it is defined.

type SubsetNodeIdxInfo added in v0.8.13

type SubsetNodeIdxInfo struct {
	Path        string `bson:"path" json:"-"`
	TotalUnits  int64  `bson:"total_units" json:"-"`
	AvgUnitSize int64  `bson:"average_unit_size" json:"-"`
	Format      string `bson:"format" json:"-"`
}

Directories

Path Synopsis
Package contains Node File struct and MultiReaderAt implementation
Package contains Node File struct and MultiReaderAt implementation
format/fasta
Package to read and write FASTA format files
Package to read and write FASTA format files
format/fastq
Package to read and write FASTQ format files
Package to read and write FASTQ format files
format/line
Package to read and index lines of a file
Package to read and index lines of a file
format/multi
Package to read and auto-detect format of fasta & fastq files
Package to read and auto-detect format of fasta & fastq files
format/sam
Package to read and write SAM format files
Package to read and write SAM format files
format/seq
Package contains interfaces for fasta & fastq & and multi packages
Package contains interfaces for fasta & fastq & and multi packages

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL