github.com/makyo/juju@v0.0.0-20160425123129-2608902037e9/apiserver/imagemetadata/state.go (about) 1 // Copyright 2015 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package imagemetadata 5 6 import ( 7 "github.com/juju/juju/environs/config" 8 "github.com/juju/juju/state" 9 "github.com/juju/juju/state/cloudimagemetadata" 10 ) 11 12 type metadataAcess interface { 13 FindMetadata(cloudimagemetadata.MetadataFilter) (map[string][]cloudimagemetadata.Metadata, error) 14 SaveMetadata([]cloudimagemetadata.Metadata) error 15 DeleteMetadata(imageId string) error 16 ModelConfig() (*config.Config, error) 17 } 18 19 var getState = func(st *state.State) metadataAcess { 20 return stateShim{st} 21 } 22 23 type stateShim struct { 24 *state.State 25 } 26 27 func (s stateShim) FindMetadata(f cloudimagemetadata.MetadataFilter) (map[string][]cloudimagemetadata.Metadata, error) { 28 return s.State.CloudImageMetadataStorage.FindMetadata(f) 29 } 30 31 func (s stateShim) SaveMetadata(m []cloudimagemetadata.Metadata) error { 32 return s.State.CloudImageMetadataStorage.SaveMetadata(m) 33 } 34 35 func (s stateShim) DeleteMetadata(imageId string) error { 36 return s.State.CloudImageMetadataStorage.DeleteMetadata(imageId) 37 }