@@ -8,104 +8,14 @@ import (
88 "gopkg.in/juju/names.v2"
99
1010 "github.com/juju/juju/apiserver/common/storagecommon"
11- "github.com/juju/juju/apiserver/facade"
12- "github.com/juju/juju/caas"
13- "github.com/juju/juju/environs"
1411 "github.com/juju/juju/state"
15- "github.com/juju/juju/state/stateenvirons"
16- "github.com/juju/juju/storage/poolmanager"
1712)
1813
1914// This file contains untested shims to let us wrap state in a sensible
2015// interface and avoid writing tests that depend on mongodb. If you were
2116// to change any part of it so that it were no longer *obviously* and
2217// *trivially* correct, you would be Doing It Wrong.
2318
24- // NewFacadeV5 provides the signature required for facade registration.
25- func NewFacadeV5 (
26- st * state.State ,
27- resources facade.Resources ,
28- authorizer facade.Authorizer ,
29- ) (* APIv5 , error ) {
30- model , err := st .Model ()
31- if err != nil {
32- return nil , errors .Trace (err )
33- }
34- registry , err := stateenvirons .NewStorageProviderRegistryForModel (
35- model ,
36- stateenvirons .GetNewEnvironFunc (environs .New ),
37- stateenvirons .GetNewCAASBrokerFunc (caas .New ))
38- pm := poolmanager .New (state .NewStateSettings (st ), registry )
39-
40- storageAccessor , err := getStorageAccessor (st )
41- if err != nil {
42- return nil , errors .Annotate (err , "getting backend" )
43- }
44- return NewAPIv5 (
45- stateShim {st },
46- model .Type (),
47- storageAccessor ,
48- registry , pm , resources , authorizer ,
49- state .CallContext (st ))
50- }
51-
52- // NewFacadeV4 provides the signature required for facade registration.
53- func NewFacadeV4 (
54- st * state.State ,
55- resources facade.Resources ,
56- authorizer facade.Authorizer ,
57- ) (* APIv4 , error ) {
58- model , err := st .Model ()
59- if err != nil {
60- return nil , errors .Trace (err )
61- }
62- registry , err := stateenvirons .NewStorageProviderRegistryForModel (
63- model ,
64- stateenvirons .GetNewEnvironFunc (environs .New ),
65- stateenvirons .GetNewCAASBrokerFunc (caas .New ))
66- pm := poolmanager .New (state .NewStateSettings (st ), registry )
67-
68- storageAccessor , err := getStorageAccessor (st )
69- if err != nil {
70- return nil , errors .Annotate (err , "getting backend" )
71- }
72- return NewAPIv4 (
73- stateShim {st },
74- model .Type (),
75- storageAccessor ,
76- registry , pm , resources , authorizer ,
77- state .CallContext (st ))
78- }
79-
80- // NewFacadeV3 provides the signature required for facade registration.
81- func NewFacadeV3 (
82- st * state.State ,
83- resources facade.Resources ,
84- authorizer facade.Authorizer ,
85- ) (* APIv3 , error ) {
86- model , err := st .Model ()
87- if err != nil {
88- return nil , errors .Trace (err )
89- }
90- env , err := stateenvirons .GetNewEnvironFunc (environs .New )(st )
91- if err != nil {
92- return nil , errors .Annotate (err , "getting environ" )
93- }
94- registry := stateenvirons .NewStorageProviderRegistry (env )
95- pm := poolmanager .New (state .NewStateSettings (st ), registry )
96-
97- storageAccessor , err := getStorageAccessor (st )
98- if err != nil {
99- return nil , errors .Annotate (err , "getting backend" )
100- }
101- return NewAPIv3 (
102- stateShim {st },
103- model .Type (),
104- storageAccessor ,
105- registry , pm , resources , authorizer ,
106- state .CallContext (st ))
107- }
108-
10919type storageAccess interface {
11020 storageInterface
11121
0 commit comments