github.com/axw/juju@v0.0.0-20161005053422-4bd6544d08d4/state/backups/testing/metadata.go (about) 1 // Copyright 2014 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package testing 5 6 import ( 7 "time" 8 9 "github.com/juju/juju/state/backups" 10 ) 11 12 const ( 13 envID = "49db53ac-a42f-4ab2-86e1-0c6fa0fec762" 14 ) 15 16 // NewMetadata returns a Metadata to use for testing. 17 func NewMetadata() *backups.Metadata { 18 meta := NewMetadataStarted() 19 20 timestamp := "20140924-010319" 21 id := envID + "." + timestamp 22 meta.SetID(id) 23 24 FinishMetadata(meta) 25 meta.SetStored(nil) 26 return meta 27 } 28 29 // NewMetadataStarted returns a Metadata to use for testing. 30 func NewMetadataStarted() *backups.Metadata { 31 meta := backups.NewMetadata() 32 meta.Started = meta.Started.Truncate(time.Second) 33 meta.Origin.Model = envID 34 meta.Origin.Machine = "0" 35 meta.Origin.Hostname = "main-host" 36 return meta 37 } 38 39 // FinishMetadata finishes a metadata with test values. 40 func FinishMetadata(meta *backups.Metadata) { 41 var size int64 = 10 42 checksum := "787b8915389d921fa23fb40e16ae81ea979758bf" 43 meta.MarkComplete(size, checksum) 44 finished := meta.Started.Add(time.Minute) 45 meta.Finished = &finished 46 } 47 48 // UpdateNotes derives a new Metadata with new notes. 49 func UpdateNotes(meta *backups.Metadata, notes string) *backups.Metadata { 50 copied := *meta 51 copied.Notes = notes 52 return &copied 53 } 54 55 // SetOrigin updates the metadata's origin with the privided information. 56 func SetOrigin(meta *backups.Metadata, modelUUID, machine, hostname string) { 57 meta.Origin.Model = modelUUID 58 meta.Origin.Machine = machine 59 meta.Origin.Hostname = hostname 60 }