55
66from scaleway_core .client import Client
77from scaleway .instance .v1 .api import InstanceV1API
8+ from scaleway .instance .v1 .types import VolumeVolumeType , BootType
89from scaleway .block .v1alpha1 import BlockV1Alpha1API
910from scaleway .instance .v1 .types import Server , VolumeServerTemplate
1011from scaleway .block .v1alpha1 .types import Volume , CreateVolumeRequestFromEmpty
1112
1213
1314server_name = f"test-sdk-python-{ uuid .uuid4 ().hex [:6 ]} "
1415max_retry = 10
15- interval = 0.1
16- volume_size = 10
16+ interval = 0.01
17+ volume_size = 10000000000
1718commercial_type = "DEV1-S"
1819zone = "fr-par-1"
1920
2021
21- @unittest .skip ("Skipping this test temporarily" )
2222class TestE2EServerCreation (unittest .TestCase ):
2323 def setUp (self ) -> None :
2424 self .zone = zone
25- self .client = Client .from_env ()
25+ self .client = Client .from_config_file_and_env ()
2626 self .instanceAPI = InstanceV1API (self .client , bypass_validation = True )
2727 self .blockAPI = BlockV1Alpha1API (self .client , bypass_validation = True )
2828 self ._server = None
@@ -33,39 +33,44 @@ def tearDown(self) -> None:
3333 self .instanceAPI .detach_server_volume (
3434 server_id = self ._server .id , volume_id = volume .id
3535 )
36-
36+ self . blockAPI . wait_for_volume ( volume_id = volume . id )
3737 self .blockAPI .delete_volume (volume_id = volume .id )
3838
3939 if self ._server :
4040 self .instanceAPI .delete_server (zone = self .zone , server_id = self ._server .id )
4141
4242 def wait_test_instance_server (self , server_id ):
43- interval = interval
43+ int = interval
4444
4545 for i in range (1 , max_retry ):
46- interval *= i
46+ int *= i
4747 s = self .instanceAPI .get_server (zone = self .zone , server_id = server_id )
4848
49- if s .state == "running" :
50- break
49+ if s .server . state == "running" or s . server . state == "stopped " :
50+ return s
5151
52- time .sleep (interval )
52+ time .sleep (int )
5353
54- self .fail ("Server did not reach 'running' state in time." )
54+ return self .fail ("Server did not reach 'running' state in time." )
5555
5656 def create_test_instance_server (self ) -> Server :
57- volume = {
57+ volumes = dict [str , VolumeServerTemplate ]()
58+ volumes = {
5859 "0" : VolumeServerTemplate (
59- volume_type = "sbs_volume" , name = "my-volume" , size = volume_size
60+ volume_type = VolumeVolumeType .L_SSD ,
61+ size = volume_size ,
62+ boot = False ,
6063 )
6164 }
62-
6365 server = self .instanceAPI ._create_server (
6466 commercial_type = commercial_type ,
6567 zone = self .zone ,
6668 name = server_name ,
67- dynamic_ip_required = True ,
68- volumes = volume ,
69+ dynamic_ip_required = False ,
70+ volumes = volumes ,
71+ protected = False ,
72+ boot_type = BootType .LOCAL ,
73+ image = "c00ae53c-1e29-4087-a384-47f3c5c1cd84" ,
6974 )
7075
7176 self ._server = server .server
@@ -77,38 +82,40 @@ def create_test_instance_server(self) -> Server:
7782 def create_test_from_empty_volume (self , number ) -> List [Volume ]:
7883 volumes : List [Volume ] = {}
7984
80- for _i in range (number ):
85+ for i in range (number ):
8186 volume = self .blockAPI .create_volume (
82- from_empty = CreateVolumeRequestFromEmpty (size = 10 ),
87+ from_empty = CreateVolumeRequestFromEmpty (size = 1000000000 ),
8388 )
8489
8590 self .blockAPI .wait_for_volume (volume_id = volume .id , zone = self .zone )
8691
8792 self ._volumes .append (volume ) # Ensure cleanup in tearDown
88- volumes . append ( volume )
93+ volumes [ i ] = volume
8994
9095 return volumes
9196
9297 def test_attach_aditionnal_volume (self ):
9398 server = self .create_test_instance_server ()
9499 additional_volumes = self .create_test_from_empty_volume (1 )
95- additional_volume = additional_volumes . values () [0 ]
100+ additional_volume = additional_volumes [0 ]
96101
97102 self .assertIsNotNone (server .id )
98103 self .assertEqual (server .zone , self .zone )
99104
100105 self .assertIsNotNone (additional_volume .id )
101- self .assertEqual (additional_volume .size , 10 )
106+ self .assertEqual (additional_volume .size , 1000000000 )
102107
103108 self .instanceAPI .attach_server_volume (
104- server_id = server .id , volume_id = additional_volume .id
109+ server_id = server .id ,
110+ volume_id = additional_volume .id ,
111+ volume_type = VolumeVolumeType .SBS_VOLUME ,
105112 )
106113
107114 self .blockAPI .wait_for_volume (volume_id = additional_volume .id , zone = self .zone )
108115
109116 updated_server = self .instanceAPI .get_server (
110117 zone = self .zone , server_id = server .id
111118 )
112- attached_volumes = updated_server .volumes or {}
113- attached_volume_ids = [v .volume . id for v in attached_volumes .values ()]
119+ attached_volumes = updated_server .server . volumes or {}
120+ attached_volume_ids = [v .id for v in attached_volumes .values ()]
114121 self .assertIn (additional_volume .id , attached_volume_ids )
0 commit comments