1
// Copyright 2015 Canonical Ltd.
2
// Licensed under the AGPLv3, see LICENCE file for details.
7
"gopkg.in/juju/names.v2"
9
"github.com/juju/juju/apiserver/params"
10
"github.com/juju/juju/worker/uniter/hook"
11
"github.com/juju/juju/worker/uniter/resolver"
14
type State interface {
19
func StateAttached(s State) bool {
20
return s.(*stateFile).attached
23
func ValidateHook(tag names.StorageTag, attached bool, hi hook.Info) error {
24
st := &state{tag, attached}
25
return st.ValidateHook(hi)
28
func ReadStateFile(dirPath string, tag names.StorageTag) (d State, err error) {
29
state, err := readStateFile(dirPath, tag)
33
func ReadAllStateFiles(dirPath string) (map[names.StorageTag]State, error) {
34
files, err := readAllStateFiles(dirPath)
38
states := make(map[names.StorageTag]State)
39
for tag, f := range files {
45
func SetStorageLife(resolver resolver.Resolver, life map[names.StorageTag]params.Life) {
46
resolver.(*storageResolver).life = life