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  }