Skip to content

Commit 52dc8d7

Browse files
committedJul 17, 2024
refactor: call ModelConfigAPI instead of ControllerAPI.ModelConfig
Affected commands are upgrade-model, destroy-controller, kill-controller, show-controller.
1 parent f62b8bb commit 52dc8d7

17 files changed

+164
-226
lines changed
 

‎api/controller/controller/controller.go

-12
Original file line numberDiff line numberDiff line change
@@ -79,18 +79,6 @@ func (c *Client) CloudSpec(modelTag names.ModelTag) (environscloudspec.CloudSpec
7979
return api.CloudSpec()
8080
}
8181

82-
// ModelConfig returns all model settings for the
83-
// controller model.
84-
func (c *Client) ModelConfig() (map[string]interface{}, error) {
85-
result := params.ModelConfigResults{}
86-
err := c.facade.FacadeCall("ModelConfig", nil, &result)
87-
values := make(map[string]interface{})
88-
for name, val := range result.Config {
89-
values[name] = val.Value
90-
}
91-
return values, err
92-
}
93-
9482
// HostedConfig contains the model config and the cloud spec for that
9583
// model such that direct access to the provider can be used.
9684
type HostedConfig struct {

‎api/controller/controller/legacy_test.go

-8
Original file line numberDiff line numberDiff line change
@@ -66,14 +66,6 @@ func (s *legacySuite) TestAllModels(c *gc.C) {
6666
c.Assert(obtained, jc.SameContents, expected)
6767
}
6868

69-
func (s *legacySuite) TestModelConfig(c *gc.C) {
70-
sysManager := s.OpenAPI(c)
71-
defer sysManager.Close()
72-
cfg, err := sysManager.ModelConfig()
73-
c.Assert(err, jc.ErrorIsNil)
74-
c.Assert(cfg["name"], gc.Equals, "controller")
75-
}
76-
7769
func (s *legacySuite) TestControllerConfig(c *gc.C) {
7870
sysManager := s.OpenAPI(c)
7971
defer sysManager.Close()

‎apiserver/facades/client/controller/controller.go

+6-3
Original file line numberDiff line numberDiff line change
@@ -429,9 +429,12 @@ func (c *ControllerAPI) ListBlockedModels() (params.ModelBlockInfoList, error) {
429429
return results, nil
430430
}
431431

432-
// ModelConfig returns the model config for the controller
433-
// model. For information on the current model, use
434-
// client.ModelGet
432+
// ModelConfig returns the model config for the controller model.
433+
//
434+
// Deprecated: this facade method will be removed in 4.0 when this facade is
435+
// converted to a multi-model facade. Please use the ModelConfig facade's
436+
// ModelGet method instead:
437+
// [github.com/juju/juju/apiserver/facades/client/modelconfig.ModelConfigAPI.ModelGet]
435438
func (c *ControllerAPI) ModelConfig() (params.ModelConfigResults, error) {
436439
result := params.ModelConfigResults{}
437440
if err := c.checkIsSuperUser(); err != nil {

‎apiserver/facades/schema.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -18900,7 +18900,7 @@
1890018900
"$ref": "#/definitions/ModelConfigResults"
1890118901
}
1890218902
},
18903-
"description": "ModelConfig returns the model config for the controller\nmodel. For information on the current model, use\nclient.ModelGet"
18903+
"description": "ModelConfig returns the model config for the controller model.\n\nDeprecated: this facade method will be removed in 4.0 when this facade is\nconverted to a multi-model facade. Please use the ModelConfig facade's\nModelGet method instead:\n[github.com/juju/juju/apiserver/facades/client/modelconfig.ModelConfigAPI.ModelGet]"
1890418904
},
1890518905
"ModelStatus": {
1890618906
"type": "object",

‎cmd/juju/commands/mocks/controller_mock.go

-101
This file was deleted.

‎cmd/juju/commands/package_test.go

-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import (
1010
)
1111

1212
//go:generate go run go.uber.org/mock/mockgen -package commands -destination mockenvirons_test.go github.com/juju/juju/environs Environ,PrecheckJujuUpgradeStep
13-
//go:generate go run go.uber.org/mock/mockgen -package mocks -destination mocks/controller_mock.go github.com/juju/juju/cmd/juju/commands ControllerAPI
1413
//go:generate go run go.uber.org/mock/mockgen -package mocks -destination mocks/modelupgrader_mock.go github.com/juju/juju/cmd/juju/commands ModelUpgraderAPI
1514
//go:generate go run go.uber.org/mock/mockgen -package mocks -destination mocks/synctool_mock.go github.com/juju/juju/cmd/juju/commands SyncToolAPI
1615
//go:generate go run go.uber.org/mock/mockgen -package mocks -destination mocks/modelconfig_mock.go github.com/juju/juju/cmd/juju/commands ModelConfigAPI

‎cmd/juju/commands/upgradecontroller.go

-29
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,13 @@ import (
2020

2121
"github.com/juju/juju/api/client/modelconfig"
2222
"github.com/juju/juju/api/client/modelupgrader"
23-
apicontroller "github.com/juju/juju/api/controller/controller"
2423
jujucmd "github.com/juju/juju/cmd"
2524
"github.com/juju/juju/cmd/juju/block"
2625
"github.com/juju/juju/cmd/modelcmd"
27-
"github.com/juju/juju/controller"
2826
"github.com/juju/juju/core/model"
2927
"github.com/juju/juju/core/permission"
3028
"github.com/juju/juju/environs"
3129
"github.com/juju/juju/environs/bootstrap"
32-
environscloudspec "github.com/juju/juju/environs/cloudspec"
3330
"github.com/juju/juju/environs/config"
3431
"github.com/juju/juju/environs/sync"
3532
"github.com/juju/juju/environs/tools"
@@ -89,19 +86,10 @@ type upgradeControllerCommand struct {
8986

9087
modelConfigAPI ModelConfigAPI
9188
modelUpgraderAPI ModelUpgraderAPI
92-
controllerAPI ControllerAPI
9389

9490
controllerModelDetails *jujuclient.ModelDetails
9591
}
9692

97-
// ControllerAPI defines the controller API methods.
98-
type ControllerAPI interface {
99-
CloudSpec(modelTag names.ModelTag) (environscloudspec.CloudSpec, error)
100-
ControllerConfig() (controller.Config, error)
101-
ModelConfig() (map[string]interface{}, error)
102-
Close() error
103-
}
104-
10593
func (c *upgradeControllerCommand) Info() *cmd.Info {
10694
return jujucmd.Info(&cmd.Info{
10795
Name: "upgrade-controller",
@@ -171,17 +159,6 @@ func (c *upgradeControllerCommand) getModelConfigAPI() (ModelConfigAPI, error) {
171159
return modelconfig.NewClient(api), nil
172160
}
173161

174-
func (c *upgradeControllerCommand) getControllerAPI() (ControllerAPI, error) {
175-
if c.controllerAPI != nil {
176-
return c.controllerAPI, nil
177-
}
178-
api, err := c.NewAPIRoot()
179-
if err != nil {
180-
return nil, errors.Trace(err)
181-
}
182-
return apicontroller.NewClient(api), nil
183-
}
184-
185162
// TODO(jujud-controller-snap): remove if not needed in final upgrade command.
186163
// type ClientAPI interface {
187164
// Status(args *apiclient.StatusArgs) (*params.FullStatus, error)
@@ -356,12 +333,6 @@ func (c *upgradeControllerCommand) upgradeController(
356333
}
357334
defer modelUpgrader.Close()
358335

359-
controllerClient, err := c.getControllerAPI()
360-
if err != nil {
361-
return err
362-
}
363-
defer controllerClient.Close()
364-
365336
modelConfigClient, err := c.getModelConfigAPI()
366337
if err != nil {
367338
return errors.Trace(err)

‎cmd/juju/commands/upgradecontroller_test.go

+1-6
Original file line numberDiff line numberDiff line change
@@ -113,13 +113,11 @@ func newUpgradeControllerCommandForTest(
113113
store jujuclient.ClientStore,
114114
modelConfigAPI ModelConfigAPI,
115115
modelUpgrader ModelUpgraderAPI,
116-
controllerAPI ControllerAPI,
117116
options ...modelcmd.WrapControllerOption,
118117
) cmd.Command {
119118
command := &upgradeControllerCommand{
120119
modelConfigAPI: modelConfigAPI,
121120
modelUpgraderAPI: modelUpgrader,
122-
controllerAPI: controllerAPI,
123121
}
124122
command.SetClientStore(store)
125123
return modelcmd.WrapController(command, options...)
@@ -130,7 +128,6 @@ type upgradeControllerSuite struct {
130128

131129
modelConfigAPI *mocks.MockModelConfigAPI
132130
modelUpgrader *mocks.MockModelUpgraderAPI
133-
controllerAPI *mocks.MockControllerAPI
134131
store *mocks.MockClientStore
135132
}
136133

@@ -140,12 +137,10 @@ func (s *upgradeControllerSuite) upgradeControllerCommand(c *gc.C, isCAAS bool)
140137
ctrl := gomock.NewController(c)
141138
s.modelConfigAPI = mocks.NewMockModelConfigAPI(ctrl)
142139
s.modelUpgrader = mocks.NewMockModelUpgraderAPI(ctrl)
143-
s.controllerAPI = mocks.NewMockControllerAPI(ctrl)
144140
s.store = mocks.NewMockClientStore(ctrl)
145141

146142
s.modelConfigAPI.EXPECT().Close().AnyTimes()
147143
s.modelUpgrader.EXPECT().Close().AnyTimes()
148-
s.controllerAPI.EXPECT().Close().AnyTimes()
149144

150145
s.store.EXPECT().CurrentController().AnyTimes().Return("c-1", nil)
151146
s.store.EXPECT().ControllerByName("c-1").AnyTimes().Return(&jujuclient.ControllerDetails{
@@ -168,7 +163,7 @@ func (s *upgradeControllerSuite) upgradeControllerCommand(c *gc.C, isCAAS bool)
168163
}, nil)
169164

170165
return ctrl, newUpgradeControllerCommandForTest(s.store,
171-
s.modelConfigAPI, s.modelUpgrader, s.controllerAPI,
166+
s.modelConfigAPI, s.modelUpgrader,
172167
)
173168
}
174169

‎cmd/juju/commands/upgrademodel.go

+9-8
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import (
1717
"github.com/juju/version/v2"
1818

1919
"github.com/juju/juju/api/client/modelconfig"
20-
apicontroller "github.com/juju/juju/api/controller/controller"
2120
jujucmd "github.com/juju/juju/cmd"
2221
"github.com/juju/juju/cmd/juju/block"
2322
"github.com/juju/juju/cmd/modelcmd"
@@ -83,9 +82,11 @@ type upgradeModelCommand struct {
8382
// version without waiting for all agents to be at the right version.
8483
IgnoreAgentVersions bool
8584

85+
// model config API for the current model
8686
modelConfigAPI ModelConfigAPI
8787
modelUpgraderAPI ModelUpgraderAPI
88-
controllerAPI ControllerAPI
88+
// model config API for the controller model
89+
controllerModelConfigAPI ModelConfigAPI
8990
}
9091

9192
func (c *upgradeModelCommand) Info() *cmd.Info {
@@ -166,16 +167,16 @@ func (c *upgradeModelCommand) getModelConfigAPI() (ModelConfigAPI, error) {
166167
return modelconfig.NewClient(api), nil
167168
}
168169

169-
func (c *upgradeModelCommand) getControllerAPI() (ControllerAPI, error) {
170-
if c.controllerAPI != nil {
171-
return c.controllerAPI, nil
170+
func (c *upgradeModelCommand) getControllerModelConfigAPI() (ModelConfigAPI, error) {
171+
if c.controllerModelConfigAPI != nil {
172+
return c.controllerModelConfigAPI, nil
172173
}
173174

174175
api, err := c.NewControllerAPIRoot()
175176
if err != nil {
176177
return nil, errors.Trace(err)
177178
}
178-
return apicontroller.NewClient(api), nil
179+
return modelconfig.NewClient(api), nil
179180
}
180181

181182
// Run changes the version proposed for the juju envtools.
@@ -210,7 +211,7 @@ func (c *upgradeModelCommand) upgradeModel(ctx *cmd.Context, fetchTimeout time.D
210211
}
211212
defer modelUpgrader.Close()
212213

213-
controllerClient, err := c.getControllerAPI()
214+
controllerClient, err := c.getControllerModelConfigAPI()
214215
if err != nil {
215216
return err
216217
}
@@ -241,7 +242,7 @@ func (c *upgradeModelCommand) upgradeModel(ctx *cmd.Context, fetchTimeout time.D
241242
return errUpToDate
242243
}
243244

244-
controllerModelConfig, err := controllerClient.ModelConfig()
245+
controllerModelConfig, err := controllerClient.ModelGet()
245246
if err != nil && !params.IsCodeUnauthorized(err) {
246247
return err
247248
}

0 commit comments

Comments
 (0)
refactor: call ModelConfigAPI instead of ControllerAPI.ModelConfig · JoseFMP/juju@52dc8d7 · GitHub