storage

package
v0.0.0-...-42df541 Latest Latest
Warning

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

Go to latest
Published: Aug 28, 2014 License: MPL-2.0 Imports: 17 Imported by: 0

Documentation

Overview

This file manages schema modification.

There are a couple pieces to this:

1 Each schema modification is in a self contained directory with the a directory name 2. Each modification must contain an 'upgrade.sql' 3. Each modification *may* contain a 'downgrade.sql' script 4. Failure to include a downgrade script means we cannot downgrade past a particular version.

Every revision is stored in a directory named:

rev.<SHA1_HEX>.<description>

Each directory contains:
	(mandatory) prev.txt		-- contains the revision code for the previous patch
	(mandatory) upgrade.sql		-- upgrade sql
	(optional) downgrade.sql	-- downgrade sql

Index

Constants

View Source
const (
	DB_VERSION = "20140707"
)

Variables

View Source
var ErrDatabase = errors.New("Database Error")
View Source
var ErrUnknownDevice = errors.New("Unknown device")

Functions

func GetPatchDirectory

func GetPatchDirectory(patch_root, revision string) (result string, err error)

Types

type DBRcs

type DBRcs struct {
	Db *sql.DB
	// contains filtered or unexported fields
}

func (*DBRcs) Changelog

func (self *DBRcs) Changelog(patch_root string) (err error)

func (*DBRcs) Close

func (self *DBRcs) Close() (err error)

func (*DBRcs) ComputeHistory

func (self *DBRcs) ComputeHistory(patch_root string) (err error)

func (*DBRcs) CreateNextRev

func (self *DBRcs) CreateNextRev(patch_root string, description string) (prev string, rev string, err error)

func (*DBRcs) CurrentDBVersion

func (self *DBRcs) CurrentDBVersion() (db_ver string, err error)

func (*DBRcs) Downgrade

func (self *DBRcs) Downgrade(patch_root, version string) (err error)

func (*DBRcs) FindLastVersion

func (self *DBRcs) FindLastVersion(patch_root string) (result string, err error)

func (*DBRcs) Init

func (self *DBRcs) Init(config *util.MzConfig) (err error)

func (*DBRcs) InitVersioning

func (self *DBRcs) InitVersioning() (err error)

func (*DBRcs) Upgrade

func (self *DBRcs) Upgrade(patch_root string, verbose bool) (err error)

type Device

type Device struct {
	ID                string // device Id
	User              string // userID
	Name              string
	PreviousPositions []Position
	HasPasscode       bool   // is device lockable
	LoggedIn          bool   // is the device logged in
	Secret            string // HAWK secret
	PushUrl           string // SimplePush URL
	Pending           string // pending command
	LastExchange      int32  // last time we did anything
	Accepts           string // commands the device accepts
	AccessToken       string // OAuth Access token
}

Device information

type DeviceList

type DeviceList struct {
	ID   string
	Name string
}

type Position

type Position struct {
	Latitude  float64
	Longitude float64
	Altitude  float64
	Accuracy  float64
	Time      int64
	Cmd       map[string]interface{}
}

Device position

type Storage

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

Storage abstration

func Open

func Open(config *util.MzConfig, logger *util.HekaLogger, metrics *util.Metrics) (store *Storage, err error)

Open the database.

func (*Storage) CheckNonce

func (self *Storage) CheckNonce(nonce string) (bool, error)

Does the user's nonce match?

func (*Storage) Close

func (self *Storage) Close()

func (*Storage) DeleteDevice

func (self *Storage) DeleteDevice(devId string) (err error)

func (*Storage) GcDatabase

func (self *Storage) GcDatabase(devId, userId string) (err error)

Remove old postion information for devices. This previously removed "expired" location records. We currently only retain the latest record for a user.

func (*Storage) GetDeviceInfo

func (self *Storage) GetDeviceInfo(devId string) (devInfo *Device, err error)

Return known info about a device.

func (*Storage) GetDevicesForUser

func (self *Storage) GetDevicesForUser(userId, oldUserId string) (devices []DeviceList, err error)

Get all known devices for this user.

func (*Storage) GetNonce

func (self *Storage) GetNonce() (string, error)

Generate a nonce for OAuth checks

func (*Storage) GetPending

func (self *Storage) GetPending(devId string) (cmd, ctype string, err error)

Get pending commands.

func (*Storage) GetPositions

func (self *Storage) GetPositions(devId string) (positions []Position, err error)

func (*Storage) GetUserFromDevice

func (self *Storage) GetUserFromDevice(deviceId string) (userId, name string, err error)

func (*Storage) Init

func (self *Storage) Init() (err error)

Create the tables, indexes and other needed items.

func (*Storage) PurgeCommands

func (self *Storage) PurgeCommands(devId string) (err error)

func (*Storage) PurgePosition

func (self *Storage) PurgePosition(devId string) (err error)

remove all tracking information for devId.

func (*Storage) RegisterDevice

func (self *Storage) RegisterDevice(userid string, dev Device) (devId string, err error)

Register a new device to a given userID.

func (*Storage) SetAccessToken

func (self *Storage) SetAccessToken(devId, token string) (err error)

func (*Storage) SetDeviceLocation

func (self *Storage) SetDeviceLocation(devId string, position Position) (err error)

Add the location information to the known set for a device.

func (*Storage) SetDeviceLock

func (self *Storage) SetDeviceLock(devId string, state bool) (err error)

Shorthand function to set the lock state for a device.

func (*Storage) StoreCommand

func (self *Storage) StoreCommand(devId, command, cType string) (err error)

Store a command into the list of pending commands for a device.

func (*Storage) Touch

func (self *Storage) Touch(devId string) (err error)

type Unstructured

type Unstructured map[string]interface{}

Generic structure useful for JSON

Jump to

Keyboard shortcuts

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