@@ -447,10 +447,10 @@ func buildVolumes(api *instance.API, zone scw.Zone, serverName, rootVolume strin
447447 return nil , err
448448 }
449449 index := strconv .Itoa (i + 1 )
450- volumeTemplate .Name = serverName + "-" + index
450+ volumeTemplate .Name = scw . StringPtr ( serverName + "-" + index )
451451
452452 // Remove extra data for API validation.
453- if volumeTemplate .ID != "" {
453+ if volumeTemplate .ID != nil {
454454 volumeTemplate = & instance.VolumeServerTemplate {
455455 ID : volumeTemplate .ID ,
456456 Name : volumeTemplate .Name ,
@@ -495,7 +495,7 @@ func buildVolumeTemplate(api *instance.API, zone scw.Zone, flagV string) (*insta
495495 if err != nil {
496496 return nil , fmt .Errorf ("invalid size format %s in %s volume" , parts [1 ], flagV )
497497 }
498- vt .Size = scw .Size (size )
498+ vt .Size = scw .SizePtr ( scw . Size (size ) )
499499
500500 return vt , nil
501501 }
@@ -534,9 +534,9 @@ func buildVolumeTemplateFromUUID(api *instance.API, zone scw.Zone, volumeUUID st
534534 }
535535
536536 return & instance.VolumeServerTemplate {
537- ID : res .Volume .ID ,
537+ ID : & res .Volume .ID ,
538538 VolumeType : res .Volume .VolumeType ,
539- Size : res .Volume .Size ,
539+ Size : & res .Volume .Size ,
540540 }, nil
541541}
542542
@@ -562,10 +562,10 @@ func buildVolumeTemplateFromSnapshot(api *instance.API, zone scw.Zone, snapshotU
562562 }
563563
564564 return & instance.VolumeServerTemplate {
565- Name : res .Snapshot .Name ,
565+ Name : & res .Snapshot .Name ,
566566 VolumeType : volumeType ,
567- BaseSnapshot : res .Snapshot .ID ,
568- Size : res .Snapshot .Size ,
567+ BaseSnapshot : & res .Snapshot .ID ,
568+ Size : & res .Snapshot .Size ,
569569 }, nil
570570}
571571
@@ -592,8 +592,8 @@ func validateLocalVolumeSizes(volumes map[string]*instance.VolumeServerTemplate,
592592 // Calculate local volume total size.
593593 var localVolumeTotalSize scw.Size
594594 for _ , volume := range volumes {
595- if volume .VolumeType == instance .VolumeVolumeTypeLSSD {
596- localVolumeTotalSize += volume .Size
595+ if volume .VolumeType == instance .VolumeVolumeTypeLSSD && volume . Size != nil {
596+ localVolumeTotalSize += * volume .Size
597597 }
598598 }
599599
@@ -622,14 +622,14 @@ func validateRootVolume(imageRequiredSize scw.Size, rootVolume *instance.VolumeS
622622 return nil
623623 }
624624
625- if rootVolume .ID != "" {
625+ if rootVolume .ID != nil {
626626 return & core.CliError {
627627 Err : fmt .Errorf ("you cannot use an existing volume as a root volume" ),
628628 Details : "You must create an image of this volume and use its ID in the 'image' argument." ,
629629 }
630630 }
631631
632- if rootVolume .Size < imageRequiredSize {
632+ if rootVolume .Size != nil && * rootVolume . Size < imageRequiredSize {
633633 return fmt .Errorf ("first volume size must be at least %s for this image" , humanize .Bytes (uint64 (imageRequiredSize )))
634634 }
635635
@@ -641,22 +641,22 @@ func sanitizeVolumeMap(serverName string, volumes map[string]*instance.VolumeSer
641641 m := make (map [string ]* instance.VolumeServerTemplate )
642642
643643 for index , v := range volumes {
644- v .Name = serverName + "-" + index
644+ v .Name = scw . StringPtr ( serverName + "-" + index )
645645
646646 // Remove extra data for API validation.
647647 switch {
648- case v .ID != "" :
648+ case v .ID != nil :
649649 v = & instance.VolumeServerTemplate {
650650 ID : v .ID ,
651651 Name : v .Name ,
652652 }
653- case v .BaseSnapshot != "" :
653+ case v .BaseSnapshot != nil :
654654 v = & instance.VolumeServerTemplate {
655655 BaseSnapshot : v .BaseSnapshot ,
656656 Name : v .Name ,
657657 VolumeType : v .VolumeType ,
658658 }
659- case index == "0" && v .Size != 0 :
659+ case index == "0" && v .Size != nil :
660660 v = & instance.VolumeServerTemplate {
661661 VolumeType : v .VolumeType ,
662662 Size : v .Size ,
0 commit comments