@@ -62,7 +62,6 @@ const (
6262 testAggregateName = "tenant_filter_tests"
6363 testProjectName = "test"
6464 testDomainName = "cc3test"
65- testFlavorName = "c_k_c2_m2_v2"
6665 testImageName = "cirros-d240801-kvm"
6766 testPrefixName = "ohooc-"
6867 testVolumeType = "kvm-pilot"
@@ -484,72 +483,22 @@ func (r *OnboardingController) createOrGetTestServer(ctx context.Context, zone,
484483 return foundServer , nil
485484 }
486485
487- flavorPages , err := flavors . ListDetail ( r . testComputeClient , nil ). AllPages (ctx )
486+ flavorRef , err := r . findTestFlavor (ctx )
488487 if err != nil {
489488 return nil , err
490489 }
491- extractedFlavors , err := flavors .ExtractFlavors (flavorPages )
492- if err != nil {
493- return nil , err
494- }
495-
496- var flavorRef string
497- for _ , flavor := range extractedFlavors {
498- if flavor .Name == testFlavorName {
499- flavorRef = flavor .ID
500- break
501- }
502- }
503-
504- if flavorRef == "" {
505- return nil , errors .New ("couldn't find flavor" )
506- }
507-
508- var imageRef string
509-
510- imagePages , err := images .List (r .testImageClient , images.ListOpts {Name : testImageName }).AllPages (ctx )
511- if err != nil {
512- return nil , err
513- }
514-
515- imagesList , err := images .ExtractImages (imagePages )
516- if err != nil {
517- return nil , err
518- }
519-
520- for _ , image := range imagesList {
521- if image .Name == testImageName {
522- imageRef = image .ID
523- break
524- }
525- }
526-
527- if imageRef == "" {
528- return nil , errors .New ("couldn't find image" )
529- }
530490
531- falseVal := false
532- networkPages , err := networks .List (r .testNetworkClient , networks.ListOpts {Shared : & falseVal }).AllPages (ctx )
491+ imageRef , err := r .findTestImage (ctx )
533492 if err != nil {
534493 return nil , fmt .Errorf ("could not list networks due to %w" , err )
535494 }
536495
537- extractedNetworks , err := networks . ExtractNetworks ( networkPages )
496+ networkRef , err := r . findTestNetwork ( ctx )
538497 if err != nil {
539498 return nil , fmt .Errorf ("could not extract network due to %w" , err )
540499 }
541500
542- var networkRef string
543- for _ , network := range extractedNetworks {
544- networkRef = network .ID
545- break
546- }
547-
548- if networkRef == "" {
549- return nil , errors .New ("couldn't find network" )
550- }
551-
552- log .Info ("creating server" , "name" , serverName )
501+ log .Info ("creating server" , "name" , serverName , "flavor" , flavorRef )
553502 server , err := servers .Create (ctx , r .testComputeClient , servers.CreateOpts {
554503 Name : serverName ,
555504 AvailabilityZone : fmt .Sprintf ("%v:%v" , zone , computeHost ),
@@ -581,6 +530,67 @@ func (r *OnboardingController) createOrGetTestServer(ctx context.Context, zone,
581530 return server , nil
582531}
583532
533+ func (r * OnboardingController ) findTestNetwork (ctx context.Context ) (string , error ) {
534+ falseVal := false
535+ networkPages , err := networks .List (r .testNetworkClient , networks.ListOpts {Shared : & falseVal }).AllPages (ctx )
536+ if err != nil {
537+ return "" , err
538+ }
539+
540+ extractedNetworks , err := networks .ExtractNetworks (networkPages )
541+ if err != nil {
542+ return "" , err
543+ }
544+
545+ for _ , network := range extractedNetworks {
546+ return network .ID , nil
547+ }
548+
549+ return "" , errors .New ("couldn't find network" )
550+ }
551+
552+ func (r * OnboardingController ) findTestImage (ctx context.Context ) (string , error ) {
553+ imagePages , err := images .List (r .testImageClient , images.ListOpts {Name : testImageName }).AllPages (ctx )
554+ if err != nil {
555+ return "" , err
556+ }
557+
558+ imagesList , err := images .ExtractImages (imagePages )
559+ if err != nil {
560+ return "" , err
561+ }
562+
563+ for _ , image := range imagesList {
564+ if image .Name == testImageName {
565+ return image .ID , nil
566+ }
567+ }
568+
569+ return "" , errors .New ("couldn't find image" )
570+ }
571+
572+ func (r * OnboardingController ) findTestFlavor (ctx context.Context ) (string , error ) {
573+ flavorPages , err := flavors .ListDetail (r .testComputeClient , flavors.ListOpts {SortDir : "asc" , SortKey : "memory_mb" }).AllPages (ctx )
574+ if err != nil {
575+ return "" , err
576+ }
577+
578+ extractedFlavors , err := flavors .ExtractFlavors (flavorPages )
579+ if err != nil {
580+ return "" , err
581+ }
582+
583+ for _ , flavor := range extractedFlavors {
584+ _ , found := flavor .ExtraSpecs ["capabilities:hypervisor_type" ]
585+ if ! found {
586+ // Flavor does not restrict the hypervisor-type
587+ return flavor .ID , nil
588+ }
589+ }
590+
591+ return "" , errors .New ("couldn't find flavor" )
592+ }
593+
584594// SetupWithManager sets up the controller with the Manager.
585595func (r * OnboardingController ) SetupWithManager (mgr ctrl.Manager ) error {
586596 ctx := context .Background ()
0 commit comments