1+ import logging
2+ import sys
13from typing import List
24import unittest
35import uuid
46import time
57
8+ from scaleway .instance .v1 import CreateServerResponse
69from scaleway_core .client import Client
710from scaleway .instance .v1 .api import InstanceV1API
811from scaleway .block .v1alpha1 import BlockV1Alpha1API
9- from scaleway .instance .v1 .types import Server , VolumeServerTemplate
12+ from scaleway .instance .v1 .types import Server , VolumeServerTemplate , VolumeVolumeType , ServerAction
1013from scaleway .block .v1alpha1 .types import Volume , CreateVolumeRequestFromEmpty
1114
1215
1316server_name = f"test-sdk-python-{ uuid .uuid4 ().hex [:6 ]} "
14- max_retry = 10
15- interval = 0.1
17+ max_retry = 60
18+ INTERVAL = 5
1619volume_size = 10
1720commercial_type = "DEV1-S"
1821zone = "fr-par-1"
22+ image = "ubuntu_focal"
1923
24+ logger = logging .getLogger ()
25+ logger .level = logging .DEBUG
26+ stream_handler = logging .StreamHandler (sys .stdout )
27+ logger .addHandler (stream_handler )
2028
21- @unittest .skip ("Skipping this test temporarily" )
2229class TestE2EServerCreation (unittest .TestCase ):
2330 def setUp (self ) -> None :
2431 self .zone = zone
@@ -40,46 +47,43 @@ def tearDown(self) -> None:
4047 self .instanceAPI .delete_server (zone = self .zone , server_id = self ._server .id )
4148
4249 def wait_test_instance_server (self , server_id ):
43- interval = interval
50+ interval = INTERVAL
4451
4552 for i in range (1 , max_retry ):
53+ logger .log (1 , "value of i: " , i )
4654 interval *= i
4755 s = self .instanceAPI .get_server (zone = self .zone , server_id = server_id )
48-
49- if s .state == "running" :
50- break
51-
56+ if s .server .state == "running" :
57+ return
5258 time .sleep (interval )
5359
5460 self .fail ("Server did not reach 'running' state in time." )
5561
56- def create_test_instance_server (self ) -> Server :
57- volume = {
58- "0" : VolumeServerTemplate (
59- volume_type = "sbs_volume" , name = "my-volume" , size = volume_size
60- )
61- }
62-
62+ def create_test_instance_server (self ) -> Server | None :
6363 server = self .instanceAPI ._create_server (
6464 commercial_type = commercial_type ,
6565 zone = self .zone ,
6666 name = server_name ,
6767 dynamic_ip_required = True ,
68- volumes = volume ,
68+ protected = False ,
69+ image = image ,
6970 )
7071
71- self ._server = server .server
72+ self .instanceAPI .server_action (server_id = server .server .id , zone = self .zone , action = ServerAction .POWERON )
73+
74+ logging .log (1 , "value of server" , server )
7275
7376 self .wait_test_instance_server (server_id = server .server .id )
77+ self ._server = server .server
7478
7579 return server .server
7680
7781 def create_test_from_empty_volume (self , number ) -> List [Volume ]:
78- volumes : List [Volume ] = {}
82+ volumes : List [Volume ] = []
7983
8084 for i in range (number ):
8185 volume = self .blockAPI .create_volume (
82- from_empty = CreateVolumeRequestFromEmpty (size = 10 ),
86+ from_empty = CreateVolumeRequestFromEmpty (size = 10 ), zone = self . zone
8387 )
8488
8589 self .blockAPI .wait_for_volume (volume_id = volume .id , zone = self .zone )
@@ -92,7 +96,7 @@ def create_test_from_empty_volume(self, number) -> List[Volume]:
9296 def test_attach_aditionnal_volume (self ):
9397 server = self .create_test_instance_server ()
9498 additional_volumes = self .create_test_from_empty_volume (1 )
95- additional_volume = additional_volumes . values () [0 ]
99+ additional_volume = additional_volumes [0 ]
96100
97101 self .assertIsNotNone (server .id )
98102 self .assertEqual (server .zone , self .zone )
@@ -109,6 +113,6 @@ def test_attach_aditionnal_volume(self):
109113 updated_server = self .instanceAPI .get_server (
110114 zone = self .zone , server_id = server .id
111115 )
112- attached_volumes = updated_server .volumes or {}
113- attached_volume_ids = [v .volume . id for v in attached_volumes .values ()]
116+ attached_volumes = updated_server .server . volumes or {}
117+ attached_volume_ids = [v .id for v in attached_volumes .values ()]
114118 self .assertIn (additional_volume .id , attached_volume_ids )
0 commit comments