Skip to content

Commit

Permalink
Merge pull request #15896 from hpidcock/merge-3.3-main-20230711
Browse files Browse the repository at this point in the history
#15896

Forward ports:
- #15845
- #15725
- #15852
- #15854
- #15849
- #15855
- #15857
- #15861
- #15862
- #15860
- #15864
- #15825
- #15866
- #15863
- #15870
- #15871
- #15872
- #15873
- #15874
- #15876
- #15875
- #15881
- #15727
- #15883
- #15884
- #15880
- #15879
- #15886
- #15887
- #15877
- #15888
- #15893
- #15894

Conflicts:
- cmd/juju/ssh/debugcode_test.go
- cmd/juju/ssh/debughooks_test.go
- cmd/juju/ssh/scp_unix_test.go
- cmd/juju/ssh/ssh_machine.go
- cmd/juju/ssh/ssh_machine_test.go
- cmd/juju/ssh/ssh_unix_test.go
- worker/dbaccessor/worker.go
- caas/kubernetes/provider/k8s_test.go
- caas/kubernetes/provider/operator_test.go
- caas/kubernetes/provider/package_test.go
- caas/kubernetes/provider/rbac.go
- cmd/juju/application/deployer/bundlehandler.go
- cmd/juju/application/deployer/bundlehandler_test.go
- cmd/jujud/agent/model/manifolds.go
- core/bundle/changes/changes.go
- worker/caasapplicationprovisioner/application.go
- worker/caasapplicationprovisioner/application_test.go
- worker/caasapplicationprovisioner/mock_test.go
  • Loading branch information
jujubot committed Jul 11, 2023
2 parents 41b411c + 868844d commit ed59a7a
Show file tree
Hide file tree
Showing 109 changed files with 2,569 additions and 1,518 deletions.
3 changes: 2 additions & 1 deletion .github/workflows/merge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,12 +64,13 @@ jobs:
TARGET_BRANCH: ${{ steps.branch.outputs.target }}
EMAIL_TO_MM_USER: ${{ secrets.EMAIL_TO_MM_USER }}
IGNORE_EMAILS: ${{ secrets.MERGE_NOTIFY_IGNORE_EMAILS }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
MESSAGE=$(go run ./scripts/try-merge errmsg)
echo "message=$MESSAGE" >> "$GITHUB_OUTPUT"
- name: Notify if merge has conflicts
if: steps.merge.outputs.conflicts == 'true'
if: steps.merge.outputs.conflicts == 'true' && steps.message.outputs.message != ''
env:
MM_TOKEN: ${{ secrets.MM_TOKEN }}
MESSAGE: ${{ steps.message.outputs.message }}
Expand Down
2 changes: 1 addition & 1 deletion api/client/sshclient/facade.go
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ func (facade *Facade) PublicKeys(target string) ([]string, error) {
return nil, countError(len(out.Results))
}
if err := out.Results[0].Error; err != nil {
return nil, errors.Trace(err)
return nil, errors.Trace(apiservererrors.RestoreError(err))
}
return out.Results[0].PublicKeys, nil
}
Expand Down
2 changes: 1 addition & 1 deletion api/common/charms/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -390,7 +390,7 @@ func (c *charmImpl) Revision() int {

func convertCharmManifest(input *params.CharmManifest) (*charm.Manifest, error) {
if input == nil {
return &charm.Manifest{}, nil
return nil, nil
}
res := []charm.Base(nil)
for _, v := range input.Bases {
Expand Down
1 change: 0 additions & 1 deletion api/common/charms/common_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,6 @@ func (s *suite) TestApplicationCharmInfo(c *gc.C) {
Name: "foobar",
MinJujuVersion: version.MustParse("2.9.0"),
},
Manifest: &charm.Manifest{},
}
c.Assert(got, gc.DeepEquals, want)
}
7 changes: 2 additions & 5 deletions api/controller/migrationmaster/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -173,11 +173,8 @@ func (c *Client) SourceControllerInfo() (migration.SourceControllerInfo, []strin

// Prechecks verifies that the source controller and model are healthy
// and able to participate in a migration.
func (c *Client) Prechecks(targetControllerVersion version.Number) error {
args := params.PrechecksArgs{
TargetControllerVersion: targetControllerVersion,
}
return c.caller.FacadeCall("Prechecks", args, nil)
func (c *Client) Prechecks() error {
return c.caller.FacadeCall("Prechecks", params.PrechecksArgs{}, nil)
}

// Export returns a serialized representation of the model associated
Expand Down
4 changes: 2 additions & 2 deletions api/controller/migrationmaster/client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -237,9 +237,9 @@ func (s *ClientSuite) TestPrechecks(c *gc.C) {
return errors.New("blam")
})
client := migrationmaster.NewClient(apiCaller, nil)
err := client.Prechecks(version.MustParse("1.2.4"))
err := client.Prechecks()
c.Check(err, gc.ErrorMatches, "blam")
expectedArg := params.PrechecksArgs{TargetControllerVersion: version.MustParse("1.2.4")}
expectedArg := params.PrechecksArgs{}
stub.CheckCalls(c, []jujutesting.StubCall{
{"MigrationMaster.Prechecks", []interface{}{"", expectedArg}},
})
Expand Down
2 changes: 1 addition & 1 deletion api/monitor.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ func (m *monitor) pingWithTimeout() bool {
}
return err == nil
case <-m.clock.After(m.pingTimeout):
logger.Errorf("health ping timed out after %s", m.pingTimeout)
logger.Warningf("health ping timed out after %s", m.pingTimeout)
return false
}
}
7 changes: 7 additions & 0 deletions apiserver/facades/client/application/deployrepository.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (

"github.com/juju/charm/v11"
"github.com/juju/charm/v11/resource"
jujuclock "github.com/juju/clock"
"github.com/juju/collections/set"
"github.com/juju/errors"
"github.com/juju/names/v4"
Expand All @@ -24,6 +25,7 @@ import (
"github.com/juju/juju/core/constraints"
"github.com/juju/juju/core/instance"
"github.com/juju/juju/core/network"
"github.com/juju/juju/core/series"
coreseries "github.com/juju/juju/core/series"
"github.com/juju/juju/environs/bootstrap"
environsconfig "github.com/juju/juju/environs/config"
Expand Down Expand Up @@ -745,12 +747,17 @@ func (v *deployFromRepositoryValidator) resolveCharm(curl *charm.URL, requestedO
if err != nil {
return corecharm.ResolvedDataForDeploy{}, errors.Trace(err)
}
workloadBases, err := series.WorkloadBases(jujuclock.WallClock.Now(), requestedBase, modelCfg.ImageStream())
if err != nil {
return corecharm.ResolvedDataForDeploy{}, errors.Trace(err)
}
bsCfg := corecharm.SelectorConfig{
Config: modelCfg,
Force: force,
Logger: deployRepoLogger,
RequestedBase: requestedBase,
SupportedCharmBases: supportedBases,
WorkloadBases: workloadBases,
UsingImageID: cons.HasImageID() || modelCons.HasImageID(),
}
selector, err := corecharm.ConfigureBaseSelector(bsCfg)
Expand Down
1 change: 1 addition & 0 deletions apiserver/facades/client/bundle/bundle.go
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,7 @@ func (b *BundleAPI) GetChangesMapArgs(args params.BundleChangesParams) (params.B
}
return b.doGetBundleChangesMapArgs(args, vs, func(changes []bundlechanges.Change, results *params.BundleChangesMapArgsResults) error {
results.Changes = make([]*params.BundleChangesMapArgs, len(changes))
results.Errors = make([]string, len(changes))
for i, c := range changes {
args, err := c.Args()
if err != nil {
Expand Down
14 changes: 11 additions & 3 deletions apiserver/facades/client/bundle/bundle_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -528,6 +528,7 @@ func (s *bundleSuite) TestGetChangesMapArgsSuccess(c *gc.C) {
"charm": "ch:haproxy",
"revision": float64(42),
"series": "jammy",
"base": "ubuntu@22.04/stable",
},
}, {
Id: "deploy-3",
Expand All @@ -537,6 +538,7 @@ func (s *bundleSuite) TestGetChangesMapArgsSuccess(c *gc.C) {
"application": "haproxy",
"charm": "$addCharm-2",
"series": "jammy",
"base": "ubuntu@22.04/stable",
},
Requires: []string{"addCharm-2"},
}, {
Expand All @@ -548,7 +550,9 @@ func (s *bundleSuite) TestGetChangesMapArgsSuccess(c *gc.C) {
},
Requires: []string{"deploy-1", "deploy-3"},
}}, gc.Commentf("\nobtained: %s\n", pretty.Sprint(r.Changes)))
c.Assert(r.Errors, gc.IsNil)
for _, err := range r.Errors {
c.Assert(err, gc.Equals, "")
}
}

func (s *bundleSuite) TestGetChangesMapArgsSuccessCharmHubRevision(c *gc.C) {
Expand Down Expand Up @@ -581,7 +585,9 @@ func (s *bundleSuite) TestGetChangesMapArgsSuccessCharmHubRevision(c *gc.C) {
},
Requires: []string{"addCharm-0"},
}})
c.Assert(r.Errors, gc.IsNil)
for _, err := range r.Errors {
c.Assert(err, gc.Equals, "")
}
}

func (s *bundleSuite) TestGetChangesMapArgsKubernetes(c *gc.C) {
Expand Down Expand Up @@ -659,7 +665,9 @@ func (s *bundleSuite) TestGetChangesMapArgsKubernetes(c *gc.C) {
},
Requires: []string{"deploy-1", "deploy-3"},
}}, gc.Commentf("\nobtained: %s\n", pretty.Sprint(r.Changes)))
c.Assert(r.Errors, gc.IsNil)
for _, err := range r.Errors {
c.Assert(err, gc.Equals, "")
}
}

func (s *bundleSuite) TestGetChangesMapArgsBundleEndpointBindingsSuccess(c *gc.C) {
Expand Down
33 changes: 6 additions & 27 deletions apiserver/facades/client/controller/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import (
"github.com/juju/loggo"
"github.com/juju/names/v4"
jujutxn "github.com/juju/txn/v3"
"github.com/juju/version/v2"
"gopkg.in/macaroon.v2"

"github.com/juju/juju/api"
Expand Down Expand Up @@ -738,7 +737,7 @@ func (c *ControllerAPI) ConfigSet(args params.ControllerConfigSet) error {
}
if _, err := c.hub.Publish(
controller.ConfigChanged,
controller.ConfigChangedMessage{cfg}); err != nil {
controller.ConfigChangedMessage{Config: cfg}); err != nil {
return errors.Trace(err)
}
return nil
Expand All @@ -758,20 +757,8 @@ var runMigrationPrechecks = func(
modelPresence := presence.ModelPresence(st.ModelUUID())
controllerPresence := presence.ModelPresence(ctlrSt.ModelUUID())

targetConn, err := api.Open(targetToAPIInfo(targetInfo), migration.ControllerDialOpts())
if err != nil {
return errors.Annotate(err, "connect to target controller")
}
defer targetConn.Close()

targetControllerVersion, err := getTargetControllerVersion(targetConn)
if err != nil {
return errors.Annotate(err, "cannot get target controller version")
}

if err := migration.SourcePrecheck(
backend,
targetControllerVersion,
modelPresence, controllerPresence,
cloudspec.MakeCloudSpecGetterForModel(st),
); err != nil {
Expand All @@ -783,6 +770,11 @@ var runMigrationPrechecks = func(
if err != nil {
return errors.Trace(err)
}
targetConn, err := api.Open(targetToAPIInfo(targetInfo), migration.ControllerDialOpts())
if err != nil {
return errors.Annotate(err, "connect to target controller")
}
defer targetConn.Close()
dstUserList, err := getTargetControllerUsers(targetConn)
if err != nil {
return errors.Trace(err)
Expand Down Expand Up @@ -923,19 +915,6 @@ func makeModelInfo(st, ctlrSt *state.State) (coremigration.ModelInfo, userList,
}, ul, nil
}

func getTargetControllerVersion(conn api.Connection) (version.Number, error) {
client := controllerclient.NewClient(conn)
result, err := client.ControllerVersion()
if err != nil {
return version.Number{}, errors.Annotate(err, "failed to obtain target controller version during prechecks")
}
number, err := version.Parse(result.Version)
if err != nil {
return version.Number{}, errors.Trace(err)
}
return number, nil
}

func getTargetControllerUsers(conn api.Connection) (userList, error) {
ul := userList{}

Expand Down
2 changes: 1 addition & 1 deletion apiserver/facades/client/secretbackends/secrets.go
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ func (s *SecretBackendsAPI) updateBackend(arg params.UpdateSecretBackendArg) err
cfg[k] = defaultVal
}
}
err = configValidator.ValidateConfig(nil, cfg)
err = configValidator.ValidateConfig(existing.Config, cfg)
if err != nil {
return errors.Annotatef(err, "invalid config for provider %q", existing.BackendType)
}
Expand Down
1 change: 0 additions & 1 deletion apiserver/facades/controller/migrationmaster/facade.go
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,6 @@ func (api *API) Prechecks(arg params.PrechecksArgs) error {
}
return migration.SourcePrecheck(
api.precheckBackend,
arg.TargetControllerVersion,
api.presence.ModelPresence(model.UUID()),
api.presence.ModelPresence(controllerModel.UUID()),
api.environscloudspecGetter,
Expand Down
2 changes: 1 addition & 1 deletion caas/kubernetes/provider/package_test.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Copyright 2018 Canonical Ltd.
// Licensed under the AGPLv3, see LICENCE file for details.

package provider_test
package provider

import (
"testing"
Expand Down
3 changes: 1 addition & 2 deletions caas/kubernetes/provider/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -186,8 +186,7 @@ func (p kubernetesEnvironProvider) Open(args environs.OpenParams) (caas.Broker,
return nil, errors.Trace(err)
}

ns, err := findControllerNamespace(
k8sClient, args.ControllerUUID)
ns, err := findControllerNamespace(k8sClient, args.ControllerUUID)
if errors.IsNotFound(err) {
// The controller is currently bootstrapping.
return newK8sBroker(
Expand Down
Loading

0 comments on commit ed59a7a

Please sign in to comment.