diff --git a/e2e/dractions/actions.go b/e2e/dractions/actions.go index 019d1f7a9..2c2335c48 100644 --- a/e2e/dractions/actions.go +++ b/e2e/dractions/actions.go @@ -4,8 +4,6 @@ package dractions import ( - "strings" - ramen "github.com/ramendr/ramen/api/v1alpha1" "github.com/ramendr/ramen/e2e/types" "github.com/ramendr/ramen/e2e/util" @@ -77,7 +75,7 @@ func EnableProtection(ctx types.Context) error { } drpc := generateDRPC(name, managementNamespace, clusterName, drPolicyName, placementName, appname) - if err = createDRPC(util.Ctx.Hub.Client, drpc); err != nil { + if err = createDRPC(ctx, util.Ctx.Hub.Client, drpc); err != nil { return err } @@ -107,7 +105,7 @@ func DisableProtection(ctx types.Context) error { drpcName := name client := util.Ctx.Hub.Client - if err := deleteDRPC(client, managementNamespace, drpcName); err != nil { + if err := deleteDRPC(ctx, client, managementNamespace, drpcName); err != nil { return err } @@ -216,8 +214,6 @@ func waitAndUpdateDRPC( return err } - log.Info("Updating drpc " + strings.ToLower(string(action)) + " to " + targetCluster) - return retry.RetryOnConflict(retry.DefaultBackoff, func() error { drpc, err := getDRPC(client, namespace, drpcName) if err != nil { @@ -231,6 +227,13 @@ func waitAndUpdateDRPC( drpc.Spec.PreferredCluster = targetCluster } - return updateDRPC(client, drpc) + if err := updateDRPC(client, drpc); err != nil { + return err + } + + log.Debugf("Updated drpc \"%s/%s\" with action %q to target cluster %q", + namespace, drpcName, action, targetCluster) + + return nil }) } diff --git a/e2e/dractions/crud.go b/e2e/dractions/crud.go index 54575953e..e1f5d4f88 100644 --- a/e2e/dractions/crud.go +++ b/e2e/dractions/crud.go @@ -5,6 +5,7 @@ package dractions import ( "context" + "encoding/json" ramen "github.com/ramendr/ramen/api/v1alpha1" "github.com/ramendr/ramen/e2e/deployers" @@ -46,15 +47,28 @@ func getDRPC(client client.Client, namespace, name string) (*ramen.DRPlacementCo return drpc, nil } -func createDRPC(client client.Client, drpc *ramen.DRPlacementControl) error { +func createDRPC(ctx types.Context, client client.Client, drpc *ramen.DRPlacementControl) error { + log := ctx.Logger() + err := client.Create(context.Background(), drpc) if err != nil { if !errors.IsAlreadyExists(err) { return err } - // ctx.Log.Info("drpc " + drpc.Name + " already Exists") + + log.Debugf("drpc \"%s/%s\" already exist", drpc.Namespace, drpc.Name) } + // pretty-print the drpc specification + drpcSpecJSON, err := json.MarshalIndent(drpc.Spec, "", " ") + if err != nil { + log.Errorf("Error marshaling drpc for logging: %v", err) + + return err + } + + log.Debugf("Created drpc \"%s/%s\" with spec: \n%s", drpc.Namespace, drpc.Name, string(drpcSpecJSON)) + return nil } @@ -62,7 +76,9 @@ func updateDRPC(client client.Client, drpc *ramen.DRPlacementControl) error { return client.Update(context.Background(), drpc) } -func deleteDRPC(client client.Client, namespace, name string) error { +func deleteDRPC(ctx types.Context, client client.Client, namespace, name string) error { + log := ctx.Logger() + objDrpc := &ramen.DRPlacementControl{} key := k8stypes.NamespacedName{Namespace: namespace, Name: name} @@ -72,6 +88,8 @@ func deleteDRPC(client client.Client, namespace, name string) error { return err } + log.Debugf("drpc \"%s/%s\" not found", namespace, name) + return nil } diff --git a/e2e/dractions/discovered.go b/e2e/dractions/discovered.go index 519c93abd..e47bb6c23 100644 --- a/e2e/dractions/discovered.go +++ b/e2e/dractions/discovered.go @@ -44,7 +44,7 @@ func EnableProtectionDiscoveredApps(ctx types.Context) error { drpc := generateDRPCDiscoveredApps( name, managementNamespace, clusterName, drPolicyName, placementName, appname, appNamespace) - if err = createDRPC(util.Ctx.Hub.Client, drpc); err != nil { + if err = createDRPC(ctx, util.Ctx.Hub.Client, drpc); err != nil { return err } @@ -67,7 +67,7 @@ func DisableProtectionDiscoveredApps(ctx types.Context) error { client := util.Ctx.Hub.Client - if err := deleteDRPC(client, managementNamespace, drpcName); err != nil { + if err := deleteDRPC(ctx, client, managementNamespace, drpcName); err != nil { return err } diff --git a/e2e/dractions/retry.go b/e2e/dractions/retry.go index 241544e05..3702ad42c 100644 --- a/e2e/dractions/retry.go +++ b/e2e/dractions/retry.go @@ -50,7 +50,7 @@ func waitDRPCReady(ctx types.Context, client client.Client, namespace string, dr log := ctx.Logger() startTime := time.Now() - log.Info("Waiting until drpc is ready") + log.Debugf("Waiting until drpc \"%s/%s\" is ready", namespace, drpcName) for { drpc, err := getDRPC(client, namespace, drpcName) @@ -62,7 +62,7 @@ func waitDRPCReady(ctx types.Context, client client.Client, namespace string, dr peerReady := conditionMet(drpc.Status.Conditions, ramen.ConditionPeerReady) if available && peerReady && drpc.Status.LastGroupSyncTime != nil { - log.Info("drpc is ready") + log.Debugf("drpc \"%s/%s\" is ready", namespace, drpcName) return nil } @@ -86,6 +86,8 @@ func waitDRPCPhase(ctx types.Context, client client.Client, namespace, name stri log := ctx.Logger() startTime := time.Now() + log.Debugf("Waiting until drpc \"%s/%s\" reach phase %q", namespace, name, phase) + for { drpc, err := getDRPC(client, namespace, name) if err != nil { @@ -94,7 +96,7 @@ func waitDRPCPhase(ctx types.Context, client client.Client, namespace, name stri currentPhase := drpc.Status.Phase if currentPhase == phase { - log.Infof("drpc phase is %q", phase) + log.Debugf("drpc \"%s/%s\" phase is %q", namespace, name, phase) return nil } @@ -145,16 +147,18 @@ func waitDRPCDeleted(ctx types.Context, client client.Client, namespace string, log := ctx.Logger() startTime := time.Now() + log.Debugf("Waiting until drpc \"%s/%s\" is deleted", namespace, name) + for { _, err := getDRPC(client, namespace, name) if err != nil { if errors.IsNotFound(err) { - log.Info("drpc is deleted") + log.Debugf("drpc \"%s/%s\" is deleted", namespace, name) return nil } - log.Infof("Failed to get drpc: %s", err) + log.Debugf("Failed to get drpc \"%s/%s\": %s", namespace, name, err) } if time.Since(startTime) > util.Timeout { @@ -175,6 +179,8 @@ func waitDRPCProgression( log := ctx.Logger() startTime := time.Now() + log.Debugf("Waiting until drpc \"%s/%s\" reach progression %q", namespace, name, progression) + for { drpc, err := getDRPC(client, namespace, name) if err != nil { @@ -183,7 +189,7 @@ func waitDRPCProgression( currentProgression := drpc.Status.Progression if currentProgression == progression { - log.Infof("drpc progression is %q", progression) + log.Debugf("drpc \"%s/%s\" progression is %q", namespace, name, progression) return nil }