node

package
v0.9.24 Latest Latest
Warning

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

Go to latest
Published: Apr 16, 2018 License: BSD-2-Clause Imports: 29 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

View Source
var (
	LockMgr = NewLocker()
)

Functions

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 RemoveAllFormFiles added in v0.9.5

func RemoveAllFormFiles(formfiles FormFiles)

func SortByteArray added in v0.9.21

func SortByteArray(b []byte) []byte

Types

type FormFile

type FormFile struct {
	Name     string
	Path     string
	Checksum map[string]string
}

func (*FormFile) Remove added in v0.9.5

func (formfile *FormFile) Remove()

type FormFiles

type FormFiles map[string]FormFile

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"`
}

type Indexes

type Indexes map[string]IdxInfo

type Locker

type Locker struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func NewLocker

func NewLocker() *Locker

func (*Locker) AddNode added in v0.9.12

func (l *Locker) AddNode(id string)

func (*Locker) GetLocked added in v0.9.24

func (l *Locker) GetLocked() (ids []string)

func (*Locker) LockNode added in v0.9.9

func (l *Locker) LockNode(id string) (err error)

func (*Locker) RemoveNode added in v0.9.9

func (l *Locker) RemoveNode(id string)

func (*Locker) RemoveOldNodes added in v0.9.24

func (l *Locker) RemoveOldNodes(hours int)

func (*Locker) UnlockNode added in v0.9.9

func (l *Locker) UnlockNode(id string)

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 FormFiles) (node *Node, err error)

func CreateNodesFromArchive added in v0.9.7

func CreateNodesFromArchive(u *user.User, params map[string]string, files 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) 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) HasIndex

func (node *Node) HasIndex(index 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 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 FormFile) (err error)

func (*Node) SetFileFromParts

func (node *Node) SetFileFromParts(allowEmpty bool) (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 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 FormFiles, isNew 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 NodeLock added in v0.9.9

type NodeLock struct {
	// contains filtered or unexported fields
}

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) 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