github.com/Axway/agent-sdk@v1.1.101/pkg/migrate/instancemigration.go (about)

     1  package migrate
     2  
     3  import (
     4  	"context"
     5  
     6  	apiv1 "github.com/Axway/agent-sdk/pkg/apic/apiserver/models/api/v1"
     7  	management "github.com/Axway/agent-sdk/pkg/apic/apiserver/models/management/v1alpha1"
     8  	"github.com/Axway/agent-sdk/pkg/config"
     9  )
    10  
    11  // InstanceMigration - migrates api service instances
    12  type InstanceMigration struct {
    13  	migration
    14  }
    15  
    16  // NewInstanceMigration -
    17  func NewInstanceMigration(client client, cfg config.CentralConfig) *InstanceMigration {
    18  	return &InstanceMigration{
    19  		migration: migration{
    20  			client: client,
    21  			cfg:    cfg,
    22  		},
    23  	}
    24  }
    25  
    26  // Migrate migrates an api service instance
    27  func (im *InstanceMigration) Migrate(_ context.Context, ri *apiv1.ResourceInstance) (*apiv1.ResourceInstance, error) {
    28  	if ri.Kind != management.APIServiceInstanceGVK().Kind {
    29  		return ri, nil
    30  	}
    31  
    32  	if len(ri.Finalizers) == 0 {
    33  		return ri, nil
    34  	}
    35  
    36  	ri.Finalizers = make([]apiv1.Finalizer, 0)
    37  
    38  	return im.migration.client.UpdateResourceInstance(ri)
    39  }