node

package
v0.9.13 Latest Latest
Warning

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

Go to latest
Published: Jan 26, 2016 License: BSD-2-Clause Imports: 28 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	LockMgr = NewLocker()
)

Functions

func InitReaper

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

func RemoveAllFormFiles(formfiles FormFiles)

Types

type FormFile

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

func (*FormFile) Remove

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 {
	// contains filtered or unexported fields
}

func NewLocker

func NewLocker() *Locker

func (*Locker) AddNode

func (l *Locker) AddNode(id string)

func (*Locker) GetNodes

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

func (*Locker) LockNode

func (l *Locker) LockNode(id string)

func (*Locker) RemoveNode

func (l *Locker) RemoveNode(id string)

func (*Locker) UnlockNode

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

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 LoadFromDisk

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

func New

func New() (node *Node)

func (*Node) Delete

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

func (*Node) DeleteIndex

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

func (*Node) DynamicIndex

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

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

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

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

func (*Node) SetExpiration

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

func (*Node) SetFile

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

func (*Node) SetFileFormat

func (node *Node) SetFileFormat(format string) (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

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

func (*Node) SetIndexInfo

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

func (*Node) ToJson

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

func (*Node) Update

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

Modification functions

func (*Node) UpdateDataTags

func (node *Node) UpdateDataTags(types string) (err error)

func (*Node) UpdateLinkages

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

func (*Node) UpdateVersion

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

type NodeLock

type NodeLock struct {
	sync.Mutex
}

type NodeReaper

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

func NewNodeReaper

func NewNodeReaper() *NodeReaper

func (*NodeReaper) Handle

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

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

type PartsList

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

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

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