Skip to content

Commit 75d04ca

Browse files
committed
[Test] In test_pcluster_configure, assert that head node and compute instance types are taken from the current free tier.
1 parent fa24de9 commit 75d04ca

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

tests/integration-tests/tests/configure/test_pcluster_configure.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
# This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, express or implied.
1111
# See the License for the specific language governing permissions and limitations under the License.
1212
import logging
13+
import re
1314
from datetime import datetime
1415
from os import environ
1516

@@ -21,14 +22,16 @@
2122
from cfn_stacks_factory import CfnVpcStack
2223
from conftest import inject_additional_config_settings
2324
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
26+
27+
REGEX_FREE_TIER_INSTANCE_TYPES = '|'.join(map(re.escape, get_free_tier_instance_types()))
2528

2629
PROMPTS = {
2730
"region": lambda region: {"prompt": r"AWS Region ID \[.*\]: ", "response": region},
2831
"key_pair": lambda key_name: {"prompt": r"EC2 Key Pair Name \[.*\]: ", "response": key_name},
2932
"scheduler": lambda scheduler: {"prompt": r"Scheduler \[slurm\]: ", "response": scheduler},
3033
"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},
34+
"head_instance_type": lambda instance: {"prompt": rf"Head node instance type \[({REGEX_FREE_TIER_INSTANCE_TYPES})\]: ", "response": instance},
3235
"no_of_queues": lambda n: {"prompt": rf"Number of queues \[{n}\]: ", "response": f"{n}", "skip_for_batch": True},
3336
"queue_name": lambda queue, name: {"prompt": rf"Name of queue {queue} \[queue{queue}\]: ", "response": name},
3437
"no_of_compute_resources": lambda queue_name, queue, n: {
@@ -37,7 +40,7 @@
3740
"skip_for_batch": True,
3841
},
3942
"compute_instance_type": lambda resource, queue_name, instance: {
40-
"prompt": rf"Compute instance type for compute resource {resource} in {queue_name} \[t.\.micro\]: ",
43+
"prompt": rf"Compute instance type for compute resource {resource} in {queue_name} \[({REGEX_FREE_TIER_INSTANCE_TYPES})\]: ",
4144
"response": instance,
4245
"skip_for_batch": True,
4346
},

tests/integration-tests/utils.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -908,3 +908,14 @@ def find_stack_by_tag(tag, region, stack_prefix):
908908
logging.info(f"Found stack: {name} (created on {creation_date})")
909909
return name
910910
return None
911+
912+
913+
def get_free_tier_instance_types(region: str = None):
914+
ec2 = boto3.client('ec2', region_name=region)
915+
response = ec2.describe_instance_types(
916+
Filters=[
917+
{'Name': 'free-tier-eligible', 'Values': ['true']},
918+
{"Name": "current-generation", "Values": ["true"]},
919+
]
920+
)
921+
return [instance['InstanceType'] for instance in response['InstanceTypes']]

0 commit comments

Comments
 (0)