From 9dba5b531dd2319e7880c3e18d8887345776a2e3 Mon Sep 17 00:00:00 2001 From: Kian Parvin Date: Fri, 1 Dec 2023 09:28:19 +0200 Subject: [PATCH] Tweaks to how we return err info --- cmd/jimmctl/cmd/migratemodel_test.go | 4 ++-- internal/jimm/controller.go | 2 +- internal/jimm/jimm.go | 2 +- internal/jujuapi/controller.go | 3 +-- internal/jujuapi/jimm.go | 3 +-- internal/jujuapi/jimm_test.go | 7 ++++--- 6 files changed, 10 insertions(+), 11 deletions(-) diff --git a/cmd/jimmctl/cmd/migratemodel_test.go b/cmd/jimmctl/cmd/migratemodel_test.go index 027211bba..6303bbcba 100644 --- a/cmd/jimmctl/cmd/migratemodel_test.go +++ b/cmd/jimmctl/cmd/migratemodel_test.go @@ -19,13 +19,13 @@ type migrateModelSuite struct { var _ = gc.Suite(&migrateModelSuite{}) var migrationResultRegex = `results: -- modeltag: "" +- modeltag: model-.* error: message: 'target prechecks failed: model with same UUID already exists (.*)' code: "" info: {} migrationid: "" -- modeltag: "" +- modeltag: model-.* error: message: 'target prechecks failed: model with same UUID already exists (.*)' code: "" diff --git a/internal/jimm/controller.go b/internal/jimm/controller.go index fa14f5c7a..16debf5d1 100644 --- a/internal/jimm/controller.go +++ b/internal/jimm/controller.go @@ -679,7 +679,7 @@ func (j *JIMM) InitiateMigration(ctx context.Context, user *openfga.User, spec j err = j.Database.UpdateModel(ctx, &model) if err != nil { zapctx.Error(ctx, "failed to update model with migration info", zap.Error(err)) - return result, errors.E(op, fmt.Sprintf("migration started but failed to queue JIMM automatic update\n migration ID = %s\n", result.MigrationId), err) + return result, errors.E(op, "migration started but failed to queue JIMM automatic update", err) } return result, nil diff --git a/internal/jimm/jimm.go b/internal/jimm/jimm.go index efd15ad73..0db0ec385 100644 --- a/internal/jimm/jimm.go +++ b/internal/jimm/jimm.go @@ -545,7 +545,7 @@ func (j *JIMM) InitiateInternalMigration(ctx context.Context, user *openfga.User spec := jujuparams.MigrationSpec{ModelTag: modelTag.String(), TargetInfo: migrationTarget} result, err := initiateMigration(ctx, j, user, spec, controllerID) if err != nil { - return jujuparams.InitiateMigrationResult{}, errors.E(op, err) + return result, errors.E(op, err) } return result, nil } diff --git a/internal/jujuapi/controller.go b/internal/jujuapi/controller.go index 4827ed908..422d8722c 100644 --- a/internal/jujuapi/controller.go +++ b/internal/jujuapi/controller.go @@ -299,8 +299,7 @@ func (r *controllerRoot) InitiateMigration(ctx context.Context, args jujuparams. for i, spec := range args.Specs { result, err := r.jimm.InitiateMigration(ctx, r.user, spec, 0) if err != nil { - results[i].Error = mapError(errors.E(op, err)) - continue + result.Error = mapError(errors.E(op, err)) } results[i] = result } diff --git a/internal/jujuapi/jimm.go b/internal/jujuapi/jimm.go index e1e759eea..dbbde615e 100644 --- a/internal/jujuapi/jimm.go +++ b/internal/jujuapi/jimm.go @@ -486,8 +486,7 @@ func (r *controllerRoot) MigrateModel(ctx context.Context, args apiparams.Migrat } result, err := r.jimm.InitiateInternalMigration(ctx, r.user, mt, arg.TargetController) if err != nil { - results[i].Error = mapError(errors.E(op, err)) - continue + result.Error = mapError(errors.E(op, err)) } results[i] = result } diff --git a/internal/jujuapi/jimm_test.go b/internal/jujuapi/jimm_test.go index 9678a1bbf..88a10285f 100644 --- a/internal/jujuapi/jimm_test.go +++ b/internal/jujuapi/jimm_test.go @@ -792,7 +792,8 @@ func (s *jimmSuite) TestJimmModelMigration(c *gc.C) { }) c.Assert(err, gc.IsNil) c.Assert(res.Results, gc.HasLen, 1) - for _, item := range res.Results { - c.Assert(item.Error.Message, gc.Matches, "target prechecks failed: model with same UUID already exists .*") - } + item := res.Results[0] + c.Assert(item.ModelTag, gc.Equals, mt.String()) + c.Assert(item.MigrationId, gc.Equals, "") + c.Assert(item.Error.Message, gc.Matches, "target prechecks failed: model with same UUID already exists .*") }