Finalizing ebs migration.
This commit is contained in:
		
							parent
							
								
									88aab59332
								
							
						
					
					
						commit
						7a89a7c39f
					
				| 
						 | 
				
			
			@ -267,7 +267,7 @@ func (c *Cluster) executeEBSMigration() error {
 | 
			
		|||
	volumeIds := []string{}
 | 
			
		||||
	var volumeID string
 | 
			
		||||
	for _, pv := range pvs {
 | 
			
		||||
		volumeID, err = c.VolumeResizer.GetProviderVolumeID(pv)
 | 
			
		||||
		volumeID, err = c.VolumeResizer.ExtractVolumeID(pv.Spec.AWSElasticBlockStore.VolumeID)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -289,6 +289,10 @@ func TestMigrateEBS(t *testing.T) {
 | 
			
		|||
	defer ctrl.Finish()
 | 
			
		||||
 | 
			
		||||
	resizer := mocks.NewMockVolumeResizer(ctrl)
 | 
			
		||||
 | 
			
		||||
	resizer.EXPECT().ExtractVolumeID(gomock.Eq("aws://eu-central-1b/ebs-volume-1")).Return("ebs-volume-1", nil)
 | 
			
		||||
	resizer.EXPECT().ExtractVolumeID(gomock.Eq("aws://eu-central-1b/ebs-volume-2")).Return("ebs-volume-2", nil)
 | 
			
		||||
 | 
			
		||||
	resizer.EXPECT().DescribeVolumes(gomock.Eq([]string{"ebs-volume-1", "ebs-volume-2"})).Return(
 | 
			
		||||
		[]volumes.VolumeProperties{
 | 
			
		||||
			{VolumeID: "ebs-volume-1", VolumeType: "gp2", Size: 100},
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -39,12 +39,8 @@ func (r *EBSVolumeResizer) VolumeBelongsToProvider(pv *v1.PersistentVolume) bool
 | 
			
		|||
	return pv.Spec.AWSElasticBlockStore != nil && pv.Annotations[constants.VolumeStorateProvisionerAnnotation] == constants.EBSProvisioner
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetProviderVolumeID converts aws://eu-central-1b/vol-00f93d4827217c629 to vol-00f93d4827217c629 for EBS volumes
 | 
			
		||||
func (r *EBSVolumeResizer) GetProviderVolumeID(pv *v1.PersistentVolume) (string, error) {
 | 
			
		||||
	volumeID := pv.Spec.AWSElasticBlockStore.VolumeID
 | 
			
		||||
	if volumeID == "" {
 | 
			
		||||
		return "", fmt.Errorf("volume id is empty for volume %q", pv.Name)
 | 
			
		||||
	}
 | 
			
		||||
// ExtractVolumeID extracts volumeID
 | 
			
		||||
func (r *EBSVolumeResizer) ExtractVolumeID(volumeID string) (string, error) {
 | 
			
		||||
	idx := strings.LastIndex(volumeID, constants.EBSVolumeIDStart) + 1
 | 
			
		||||
	if idx == 0 {
 | 
			
		||||
		return "", fmt.Errorf("malformed EBS volume id %q", volumeID)
 | 
			
		||||
| 
						 | 
				
			
			@ -52,6 +48,16 @@ func (r *EBSVolumeResizer) GetProviderVolumeID(pv *v1.PersistentVolume) (string,
 | 
			
		|||
	return volumeID[idx:], nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetProviderVolumeID converts aws://eu-central-1b/vol-00f93d4827217c629 to vol-00f93d4827217c629 for EBS volumes
 | 
			
		||||
func (r *EBSVolumeResizer) GetProviderVolumeID(pv *v1.PersistentVolume) (string, error) {
 | 
			
		||||
	volumeID := pv.Spec.AWSElasticBlockStore.VolumeID
 | 
			
		||||
	if volumeID == "" {
 | 
			
		||||
		return "", fmt.Errorf("got empty volume id for volume %v", pv)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return r.ExtractVolumeID(volumeID)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DescribeVolumes ...
 | 
			
		||||
func (r *EBSVolumeResizer) DescribeVolumes(volumeIds []string) ([]VolumeProperties, error) {
 | 
			
		||||
	if !r.IsConnectedToProvider() {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,6 +19,7 @@ type VolumeResizer interface {
 | 
			
		|||
	IsConnectedToProvider() bool
 | 
			
		||||
	VolumeBelongsToProvider(pv *v1.PersistentVolume) bool
 | 
			
		||||
	GetProviderVolumeID(pv *v1.PersistentVolume) (string, error)
 | 
			
		||||
	ExtractVolumeID(volumeID string) (string, error)
 | 
			
		||||
	ResizeVolume(providerVolumeID string, newSize int64) error
 | 
			
		||||
	ModifyVolume(providerVolumeID string, newType string, newSize int64, iops int64, throughput int64) error
 | 
			
		||||
	DisconnectFromProvider() error
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue