Commit ddc4d385 authored by Elyézer Rezende's avatar Elyézer Rezende
Browse files

Use addfinalizer to terminate the instances

parent 1737f025
Loading
Loading
Loading
Loading
+5 −8
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@
:testtype: functional
:upstream: yes
"""
import functools
import gzip
import json
import operator
@@ -165,7 +166,6 @@ def aws_profile(request):
def image_fixture(request, aws_profile):
    """Power on instances for each image and terminate after tests."""
    images = []
    terminate_instances = []
    for image_to_test in request.param:
        aws_profile_name = aws_profile['name']
        # Create some instances to detect on creation, random choice from every
@@ -180,20 +180,17 @@ def image_fixture(request, aws_profile):
        # Run an instance
        instance_id = aws_utils.run_instances_by_name(
            aws_profile_name, image_type, image_name, count=1)[0]

        terminate_instances.append((aws_profile_name, instance_id))
        request.addfinalizer(functools.partial(
            aws_utils.terminate_instance,
            (aws_profile_name, instance_id)
        ))
        final_image_data = ImageData(image_type,
                                     image_name,
                                     source_image,
                                     instance_id)
        images.append(final_image_data)

    yield images

    # Teardown
    for instance in terminate_instances:
        aws_utils.terminate_instance(instance)


def get_s3_bucket_name():
    """Get the cloudigrade bucket name and raise an exception if not found."""