10
10
# This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, express or implied.
11
11
# See the License for the specific language governing permissions and limitations under the License.
12
12
import logging
13
+ import re
13
14
from datetime import datetime
14
15
from os import environ
15
16
21
22
from cfn_stacks_factory import CfnVpcStack
22
23
from conftest import inject_additional_config_settings
23
24
from conftest_networking import CIDR_FOR_CUSTOM_SUBNETS
24
- from utils import get_instance_info
25
+ from utils import get_instance_info , get_free_tier_instance_types , or_regex
25
26
26
27
PROMPTS = {
27
28
"region" : lambda region : {"prompt" : r"AWS Region ID \[.*\]: " , "response" : region },
28
29
"key_pair" : lambda key_name : {"prompt" : r"EC2 Key Pair Name \[.*\]: " , "response" : key_name },
29
30
"scheduler" : lambda scheduler : {"prompt" : r"Scheduler \[slurm\]: " , "response" : scheduler },
30
31
"os" : lambda os : {"prompt" : r"Operating System \[alinux2\]: " , "response" : os , "skip_for_batch" : True },
31
- "head_instance_type" : lambda instance : {"prompt" : r"Head node instance type \[t.\.micro\]: " , "response" : instance },
32
+ "head_instance_type" : lambda free_tier_instance_types , instance : {
33
+ "prompt" : rf"Head node instance type \[({ or_regex (free_tier_instance_types )} \]: " ,
34
+ "response" : instance ,
35
+ },
32
36
"no_of_queues" : lambda n : {"prompt" : rf"Number of queues \[{ n } \]: " , "response" : f"{ n } " , "skip_for_batch" : True },
33
37
"queue_name" : lambda queue , name : {"prompt" : rf"Name of queue { queue } \[queue{ queue } \]: " , "response" : name },
34
38
"no_of_compute_resources" : lambda queue_name , queue , n : {
35
39
"prompt" : rf"Number of compute resources for { queue_name } \[{ queue } \]: " ,
36
40
"response" : f"{ n } " ,
37
41
"skip_for_batch" : True ,
38
42
},
39
- "compute_instance_type" : lambda resource , queue_name , instance : {
40
- "prompt" : rf"Compute instance type for compute resource { resource } in { queue_name } \[t.\.micro \]: " ,
43
+ "compute_instance_type" : lambda free_tier_instance_types , resource , queue_name , instance : {
44
+ "prompt" : rf"Compute instance type for compute resource { resource } in { queue_name } \[( { or_regex ( free_tier_instance_types ) } ) \]: " ,
41
45
"response" : instance ,
42
46
"skip_for_batch" : True ,
43
47
},
@@ -161,7 +165,12 @@ def test_efa_and_placement_group(
161
165
PROMPTS ["no_of_queues" ](1 ),
162
166
PROMPTS ["queue_name" ](queue = 1 , name = "myqueue" ),
163
167
PROMPTS ["no_of_compute_resources" ](queue_name = "myqueue" , queue = 1 , n = 1 ),
164
- PROMPTS ["compute_instance_type" ](resource = 1 , queue_name = "myqueue" , instance = instance ),
168
+ PROMPTS ["compute_instance_type" ](
169
+ free_tier_instance_types = get_free_tier_instance_types (region ),
170
+ resource = 1 ,
171
+ queue_name = "myqueue" ,
172
+ instance = instance ,
173
+ ),
165
174
PROMPTS ["enable_efa" ](efa_response ),
166
175
prompt_max_size (scheduler = scheduler ),
167
176
]
@@ -237,7 +246,10 @@ def standard_first_stage_prompts(region, key_name, scheduler, os, instance):
237
246
PROMPTS ["key_pair" ](key_name ),
238
247
PROMPTS ["scheduler" ](scheduler ),
239
248
PROMPTS ["os" ](os ),
240
- PROMPTS ["head_instance_type" ](instance ),
249
+ PROMPTS ["head_instance_type" ](
250
+ free_tier_instance_types = get_free_tier_instance_types (region ),
251
+ instance = instance ,
252
+ ),
241
253
]
242
254
243
255
@@ -246,7 +258,12 @@ def standard_queue_prompts(scheduler, instance, region, size=""):
246
258
PROMPTS ["no_of_queues" ](1 ),
247
259
PROMPTS ["queue_name" ](queue = 1 , name = "myqueue" ),
248
260
PROMPTS ["no_of_compute_resources" ](queue_name = "myqueue" , queue = 1 , n = 1 ),
249
- PROMPTS ["compute_instance_type" ](resource = 1 , queue_name = "myqueue" , instance = instance ),
261
+ PROMPTS ["compute_instance_type" ](
262
+ free_tier_instance_types = get_free_tier_instance_types (region ),
263
+ resource = 1 ,
264
+ queue_name = "myqueue" ,
265
+ instance = instance ,
266
+ ),
250
267
]
251
268
252
269
is_efa_supported = False
0 commit comments