Skip to content

Commit

Permalink
Use DeepCopy() to copy migration configs
Browse files Browse the repository at this point in the history
- Also add log entry for matched configs

Signed-off-by: Itamar Holder <iholder@redhat.com>
  • Loading branch information
iholder101 committed Mar 22, 2022
1 parent a8c601a commit 87251d2
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 6 deletions.
10 changes: 4 additions & 6 deletions pkg/virt-controller/watch/migration.go
Original file line number Diff line number Diff line change
Expand Up @@ -671,15 +671,14 @@ func (c *MigrationController) handleTargetPodHandoff(migration *virtv1.VirtualMa
}
}

clusterMigrationConfigs := c.clusterConfig.GetMigrationConfiguration()
clusterMigrationConfigs := c.clusterConfig.GetMigrationConfiguration().DeepCopy()
err := c.matchMigrationPolicy(vmiCopy, clusterMigrationConfigs)
if err != nil {
return fmt.Errorf("failed to match migration policy: %v", err)
}

if !c.isMigrationPolicyMatched(vmiCopy) {
clusterMigrationConfigsCopy := *clusterMigrationConfigs
vmiCopy.Status.MigrationState.MigrationConfiguration = &clusterMigrationConfigsCopy
vmiCopy.Status.MigrationState.MigrationConfiguration = clusterMigrationConfigs
}

err = c.patchVMI(vmi, vmiCopy)
Expand Down Expand Up @@ -1594,15 +1593,14 @@ func (c *MigrationController) matchMigrationPolicy(vmi *virtv1.VirtualMachineIns
return nil
}

migrationConfigCopy := *clusterMigrationConfiguration
isUpdated, err := matchedPolicy.GetMigrationConfByPolicy(&migrationConfigCopy)
isUpdated, err := matchedPolicy.GetMigrationConfByPolicy(clusterMigrationConfiguration)
if err != nil {
return err
}

if isUpdated {
vmi.Status.MigrationState.MigrationPolicyName = &matchedPolicy.Name
vmi.Status.MigrationState.MigrationConfiguration = &migrationConfigCopy
vmi.Status.MigrationState.MigrationConfiguration = clusterMigrationConfiguration
log.Log.Object(vmi).Infof("migration is updated by migration policy named %s.", matchedPolicy.Name)
}

Expand Down
1 change: 1 addition & 0 deletions pkg/virt-handler/vm.go
Original file line number Diff line number Diff line change
Expand Up @@ -2346,6 +2346,7 @@ func (d *VirtualMachineController) vmUpdateHelperMigrationSource(origVMI *v1.Vir
AllowAutoConverge: *migrationConfiguration.AllowAutoConverge,
AllowPostCopy: *migrationConfiguration.AllowPostCopy,
}
log.Log.Object(vmi).Infof("migration options matched for vmi %s: %+v", vmi.Name, options)

err = client.MigrateVirtualMachine(vmi, options)
if err != nil {
Expand Down

0 comments on commit 87251d2

Please sign in to comment.