From b945a314421389c0ce0365290c4327d2bc1559d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dennis=20Vinterfj=C3=A4rd?= Date: Fri, 2 Oct 2020 12:26:46 +0200 Subject: [PATCH 1/2] Fixed ami_root_device expected map found slice Packer expects ami_root_device to be map of values and not slice, expecting a list of BlockDeviceMapping forces the user to do workarounds like populate the ami_root_device with slice, pop it of and set it to be map afterwards. --- src/packerlicious/builder.py | 2 +- tests/packerlicious/test_builder_amazon.py | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/packerlicious/builder.py b/src/packerlicious/builder.py index 328d5b1..71f9401 100644 --- a/src/packerlicious/builder.py +++ b/src/packerlicious/builder.py @@ -448,7 +448,7 @@ class AmazonEbsSurrogate(PackerBuilder): 'instance_type': (str, True), 'region': (str, True), 'secret_key': (str, False), - 'ami_root_device': ([BlockDeviceMapping], True), + 'ami_root_device': (BlockDeviceMapping, True), 'source_device_name': (str, True), 'source_ami': (str, False), 'ami_block_device_mappings': ([BlockDeviceMapping], False), diff --git a/tests/packerlicious/test_builder_amazon.py b/tests/packerlicious/test_builder_amazon.py index 18e2f4b..4a51a9a 100644 --- a/tests/packerlicious/test_builder_amazon.py +++ b/tests/packerlicious/test_builder_amazon.py @@ -202,7 +202,7 @@ def test_exactly_one_source_ami(self): instance_type="t2.micro", source_device_name="some_device", region="us-east-1", - ami_root_device=[ami_root_dev], + ami_root_device=ami_root_dev, ) with pytest.raises(ValueError) as excinfo: @@ -217,7 +217,7 @@ def test_mutually_exclusive_security_group_ami(self): instance_type="t2.micro", source_device_name="some_device", region="us-east-1", - ami_root_device=[ami_root_dev], + ami_root_device=ami_root_dev, source_ami="dummy-source-ami", security_group_id="sg-123", security_group_ids=["sg-123", "sg-456"], @@ -235,7 +235,7 @@ def test_mutually_exclusive_subnet_id(self): instance_type="t2.micro", source_device_name="some_device", region="us-east-1", - ami_root_device=[ami_root_dev], + ami_root_device=ami_root_dev, source_ami="dummy-source-ami", subnet_id="subnet-12345def", subnet_filter=builder.AmazonSubnetFilter( @@ -260,7 +260,7 @@ def test_mutually_exclusive_vpc_id(self): instance_type="t2.micro", source_device_name="some_device", region="us-east-1", - ami_root_device=[ami_root_dev], + ami_root_device=ami_root_dev, source_ami="dummy-source-ami", vpc_id="subnet-12345def", vpc_filter=builder.AmazonVpcFilter( From 00151c3f4def2939d85954c0f12ecc3a4321d02d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dennis=20Vinterfj=C3=A4rd?= Date: Fri, 2 Oct 2020 12:32:41 +0200 Subject: [PATCH 2/2] Removed invalid parameter in AmazonEbsSurrogate AmazonEbsSurrogate was expecting prop source_device_name, running packer validate on output generated with source_device_name configured in AmazonEbsSurrogate returns unknown configuration key: "source_device_name" source_device_name is not a valid parameter for amazon ebs builder according to https://www.packer.io/docs/builders/amazon-ebs --- src/packerlicious/builder.py | 1 - tests/packerlicious/test_builder_amazon.py | 4 ---- 2 files changed, 5 deletions(-) diff --git a/src/packerlicious/builder.py b/src/packerlicious/builder.py index 71f9401..3e4bd59 100644 --- a/src/packerlicious/builder.py +++ b/src/packerlicious/builder.py @@ -449,7 +449,6 @@ class AmazonEbsSurrogate(PackerBuilder): 'region': (str, True), 'secret_key': (str, False), 'ami_root_device': (BlockDeviceMapping, True), - 'source_device_name': (str, True), 'source_ami': (str, False), 'ami_block_device_mappings': ([BlockDeviceMapping], False), 'ami_architecture': (str, False), diff --git a/tests/packerlicious/test_builder_amazon.py b/tests/packerlicious/test_builder_amazon.py index 4a51a9a..8d28379 100644 --- a/tests/packerlicious/test_builder_amazon.py +++ b/tests/packerlicious/test_builder_amazon.py @@ -200,7 +200,6 @@ def test_exactly_one_source_ami(self): access_key="dummy-access-key", secret_key="dummy-secret-key", instance_type="t2.micro", - source_device_name="some_device", region="us-east-1", ami_root_device=ami_root_dev, ) @@ -215,7 +214,6 @@ def test_mutually_exclusive_security_group_ami(self): access_key="dummy-access-key", secret_key="dummy-secret-key", instance_type="t2.micro", - source_device_name="some_device", region="us-east-1", ami_root_device=ami_root_dev, source_ami="dummy-source-ami", @@ -233,7 +231,6 @@ def test_mutually_exclusive_subnet_id(self): access_key="dummy-access-key", secret_key="dummy-secret-key", instance_type="t2.micro", - source_device_name="some_device", region="us-east-1", ami_root_device=ami_root_dev, source_ami="dummy-source-ami", @@ -258,7 +255,6 @@ def test_mutually_exclusive_vpc_id(self): access_key="dummy-access-key", secret_key="dummy-secret-key", instance_type="t2.micro", - source_device_name="some_device", region="us-east-1", ami_root_device=ami_root_dev, source_ami="dummy-source-ami",