5
5
6
6
from scaleway_core .client import Client
7
7
from scaleway .instance .v1 .api import InstanceV1API
8
+ from scaleway .instance .v1 .types import VolumeVolumeType , BootType
8
9
from scaleway .block .v1alpha1 import BlockV1Alpha1API
9
10
from scaleway .instance .v1 .types import Server , VolumeServerTemplate
10
11
from scaleway .block .v1alpha1 .types import Volume , CreateVolumeRequestFromEmpty
11
12
12
13
13
14
server_name = f"test-sdk-python-{ uuid .uuid4 ().hex [:6 ]} "
14
15
max_retry = 10
15
- interval = 0.1
16
- volume_size = 10
16
+ interval = 0.01
17
+ volume_size = 10000000000
17
18
commercial_type = "DEV1-S"
18
19
zone = "fr-par-1"
19
20
20
21
21
- @unittest .skip ("Skipping this test temporarily" )
22
22
class TestE2EServerCreation (unittest .TestCase ):
23
23
def setUp (self ) -> None :
24
24
self .zone = zone
25
- self .client = Client .from_env ()
25
+ self .client = Client .from_config_file_and_env ()
26
26
self .instanceAPI = InstanceV1API (self .client , bypass_validation = True )
27
27
self .blockAPI = BlockV1Alpha1API (self .client , bypass_validation = True )
28
28
self ._server = None
@@ -33,39 +33,44 @@ def tearDown(self) -> None:
33
33
self .instanceAPI .detach_server_volume (
34
34
server_id = self ._server .id , volume_id = volume .id
35
35
)
36
-
36
+ self . blockAPI . wait_for_volume ( volume_id = volume . id )
37
37
self .blockAPI .delete_volume (volume_id = volume .id )
38
38
39
39
if self ._server :
40
40
self .instanceAPI .delete_server (zone = self .zone , server_id = self ._server .id )
41
41
42
42
def wait_test_instance_server (self , server_id ):
43
- interval = interval
43
+ int = interval
44
44
45
45
for i in range (1 , max_retry ):
46
- interval *= i
46
+ int *= i
47
47
s = self .instanceAPI .get_server (zone = self .zone , server_id = server_id )
48
48
49
- if s .state == "running" :
50
- break
49
+ if s .server . state == "running" or s . server . state == "stopped " :
50
+ return s
51
51
52
- time .sleep (interval )
52
+ time .sleep (int )
53
53
54
54
self .fail ("Server did not reach 'running' state in time." )
55
55
56
56
def create_test_instance_server (self ) -> Server :
57
- volume = {
57
+ volumes = dict [str , VolumeServerTemplate ]()
58
+ volumes = {
58
59
"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 ,
60
63
)
61
64
}
62
-
63
65
server = self .instanceAPI ._create_server (
64
66
commercial_type = commercial_type ,
65
67
zone = self .zone ,
66
68
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" ,
69
74
)
70
75
71
76
self ._server = server .server
@@ -77,38 +82,38 @@ def create_test_instance_server(self) -> Server:
77
82
def create_test_from_empty_volume (self , number ) -> List [Volume ]:
78
83
volumes : List [Volume ] = {}
79
84
80
- for _i in range (number ):
85
+ for i in range (number ):
81
86
volume = self .blockAPI .create_volume (
82
- from_empty = CreateVolumeRequestFromEmpty (size = 10 ),
87
+ from_empty = CreateVolumeRequestFromEmpty (size = 1000000000 ),
83
88
)
84
89
85
90
self .blockAPI .wait_for_volume (volume_id = volume .id , zone = self .zone )
86
91
87
92
self ._volumes .append (volume ) # Ensure cleanup in tearDown
88
- volumes . append ( volume )
93
+ volumes [ i ] = volume
89
94
90
95
return volumes
91
96
92
97
def test_attach_aditionnal_volume (self ):
93
98
server = self .create_test_instance_server ()
94
99
additional_volumes = self .create_test_from_empty_volume (1 )
95
- additional_volume = additional_volumes . values () [0 ]
100
+ additional_volume = additional_volumes [0 ]
96
101
97
102
self .assertIsNotNone (server .id )
98
103
self .assertEqual (server .zone , self .zone )
99
104
100
105
self .assertIsNotNone (additional_volume .id )
101
- self .assertEqual (additional_volume .size , 10 )
106
+ self .assertEqual (additional_volume .size , 1000000000 )
102
107
103
108
self .instanceAPI .attach_server_volume (
104
- server_id = server .id , volume_id = additional_volume .id
109
+ server_id = server .id , volume_id = additional_volume .id , volume_type = VolumeVolumeType . SBS_VOLUME
105
110
)
106
111
107
112
self .blockAPI .wait_for_volume (volume_id = additional_volume .id , zone = self .zone )
108
113
109
114
updated_server = self .instanceAPI .get_server (
110
115
zone = self .zone , server_id = server .id
111
116
)
112
- attached_volumes = updated_server .volumes or {}
113
- attached_volume_ids = [v .volume . id for v in attached_volumes .values ()]
117
+ attached_volumes = updated_server .server . volumes or {}
118
+ attached_volume_ids = [v .id for v in attached_volumes .values ()]
114
119
self .assertIn (additional_volume .id , attached_volume_ids )
0 commit comments