Skip to content

Commit fb53c70

Browse files
Add the cluster stack name to the metadata table for quick identification (#6385)
Also add the cw log group name as the stack name for now. Adds a dummy cluster test for quick iteration as well.
1 parent 0c9627c commit fb53c70

File tree

6 files changed

+62
-14
lines changed

6 files changed

+62
-14
lines changed

tests/integration-tests/conftest.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -392,16 +392,19 @@ def clusters_factory(request, region):
392392

393393
def _cluster_factory(cluster_config, upper_case_cluster_name=False, custom_cli_credentials=None, **kwargs):
394394
cluster_config = _write_config_to_outdir(request, cluster_config, "clusters_configs")
395+
cluster_name = (
396+
request.config.getoption("cluster")
397+
if request.config.getoption("cluster")
398+
else "integ-tests-{0}{1}{2}".format(
399+
random_alphanumeric().upper() if upper_case_cluster_name else random_alphanumeric(),
400+
"-" if request.config.getoption("stackname_suffix") else "",
401+
request.config.getoption("stackname_suffix"),
402+
)
403+
)
404+
request.node.user_properties.append(("cluster_stack_name", f"{cluster_name}"))
405+
request.node.user_properties.append(("cw_log_group_name", f"{cluster_name}"))
395406
cluster = Cluster(
396-
name=(
397-
request.config.getoption("cluster")
398-
if request.config.getoption("cluster")
399-
else "integ-tests-{0}{1}{2}".format(
400-
random_alphanumeric().upper() if upper_case_cluster_name else random_alphanumeric(),
401-
"-" if request.config.getoption("stackname_suffix") else "",
402-
request.config.getoption("stackname_suffix"),
403-
)
404-
),
407+
name=cluster_name,
405408
config_file=cluster_config,
406409
ssh_key=request.config.getoption("key_path"),
407410
region=region,

tests/integration-tests/conftest_utils.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,15 +192,15 @@ def publish_test_metadata(item: pytest.Item, rep: pytest.TestReport):
192192
cli_commit=item.config.getoption("--pcluster-git-ref"),
193193
cookbook_commit=item.config.getoption("--cookbook-git-ref"),
194194
node_commit=item.config.getoption("--node-git-ref"),
195+
cluster_stack_name="none",
196+
cw_log_group_name="none",
195197
setup_metadata=PhaseMetadata(
196198
rep.when,
197199
status=rep.outcome,
198200
start_time=get_user_prop(item, f"start_time_{rep.when}"),
199201
end_time=get_user_prop(item, f"end_time_{rep.when}"),
200202
),
201203
)
202-
# Create the metadata table on the fly if it doesn't exist
203-
metadata_table_mgr.create_metadata_table()
204204
if rep.when == "call":
205205
# Update the call test data
206206
test_metadata = jsonpickle.decode(get_user_prop(item, "metadata"))
@@ -210,6 +210,8 @@ def publish_test_metadata(item: pytest.Item, rep: pytest.TestReport):
210210
start_time=get_user_prop(item, f"start_time_{rep.when}"),
211211
end_time=get_user_prop(item, f"end_time_{rep.when}"),
212212
)
213+
test_metadata.cluster_stack_name = get_user_prop(item, "cluster_stack_name")
214+
test_metadata.cw_log_group_name = get_user_prop(item, "cw_log_group_name")
213215
if rep.when == "teardown":
214216
# Update the teardown test data
215217
test_metadata = jsonpickle.decode(get_user_prop(item, "metadata"))

tests/integration-tests/framework/metadata_table_manager.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class TestMetadata:
4141
cli_commit: str = ""
4242
cookbook_commit: str = ""
4343
node_commit: str = ""
44-
cfn_stack_name: str = ""
44+
cluster_stack_name: str = ""
4545
cw_log_group_name: str = ""
4646
global_build_number: int = 0
4747

@@ -118,7 +118,7 @@ def publish_metadata(self, metadata: List[TestMetadata]):
118118
"cli_commit": {"S": datum.cli_commit if datum.cli_commit else "None"},
119119
"cookbook_commit": {"S": datum.cookbook_commit if datum.cookbook_commit else "None"},
120120
"node_commit": {"S": datum.node_commit if datum.node_commit else "None"},
121-
"cfn_stack_name": {"S": datum.cfn_stack_name if datum.cfn_stack_name else "None"},
121+
"cluster_stack_name": {"S": datum.cluster_stack_name if datum.cluster_stack_name else "None"},
122122
"cw_log_group_name": {"S": datum.cw_log_group_name if datum.cw_log_group_name else "None"},
123123
"global_build_number": {
124124
"N": str(datum.global_build_number) if datum.global_build_number else "0"
@@ -166,7 +166,7 @@ def get_metadata(self, ids: List[str]) -> List[TestMetadata]:
166166
cli_commit=response["Item"]["cli_commit"]["S"],
167167
cookbook_commit=response["Item"]["cookbook_commit"]["S"],
168168
node_commit=response["Item"]["node_commit"]["S"],
169-
cfn_stack_name=response["Item"]["cfn_stack_name"]["S"],
169+
cluster_stack_name=response["Item"]["cluster_stack_name"]["S"],
170170
cw_log_group_name=response["Item"]["cw_log_group_name"]["S"],
171171
global_build_number=int(response["Item"]["global_build_number"]["N"]),
172172
)

tests/integration-tests/requirements.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@ assertpy
44
boto3
55
cfn_flip
66
click
7+
decorator
78
#https://github.com/fabric/fabric/issues/2204
89
fabric==2.6.0
910
filelock
1011
jinja2
1112
jsonpickle
1213
junitparser
14+
lexicon
1315
matplotlib
1416
pexpect
1517
psutil

tests/integration-tests/tests/dummy/test_dummy.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,19 @@ def test_dummy(
2626
):
2727
"""Do nothing"""
2828
logging.info("Do nothing but test hooks")
29+
30+
31+
@pytest.mark.usefixtures("os", "scheduler", "instance")
32+
def test_dummy_cluster(
33+
region,
34+
scheduler,
35+
pcluster_config_reader,
36+
vpc_stack,
37+
s3_bucket_factory,
38+
test_datadir,
39+
clusters_factory,
40+
):
41+
"""Do nothing"""
42+
logging.info("Do nothing but launch a cluster")
43+
cluster_config = pcluster_config_reader()
44+
clusters_factory(cluster_config)
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
Image:
2+
Os: {{ os }}
3+
HeadNode:
4+
InstanceType: {{ instance }}
5+
Networking:
6+
SubnetId: {{ public_subnet_id }}
7+
Ssh:
8+
KeyName: {{ key_name }}
9+
Imds:
10+
Secured: {{ imds_secured }}
11+
Scheduling:
12+
Scheduler: {{ scheduler }}
13+
{{ scheduler_prefix }}Queues:
14+
- Name: ondemand1
15+
Networking:
16+
SubnetIds:
17+
- {{ private_subnet_id }}
18+
ComputeResources:
19+
- Name: compute-resource-11
20+
Instances:
21+
- InstanceType: c5.large
22+
- Name: compute-resource-12
23+
Instances:
24+
- InstanceType: {{ instance }}
25+
MinCount: 0

0 commit comments

Comments
 (0)