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  }