Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

create var file for template variables #7511

Merged
merged 9 commits into from
Jun 29, 2018
14 changes: 10 additions & 4 deletions Tasks/PackerBuildV0/Tests/L0CustomTemplate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@ let a: any = <any>{
"code": 0,
"stdout": "{ \"some-key\": \"some-value\" }"
},
"packer validate -var client_id=abcdef -var drop-location=C:\\folder 1\\folder-2 C:\\custom.template-fixed.json": {
"packer validate -var-file=C:\\somefolder\\somevarfile.json -var-file=C:\\somefolder\\somevarfile.json C:\\custom.template-fixed.json": {
"code": 0,
"stdout": "Executed Successfully"
},
"packer build -force -var client_id=abcdef -var drop-location=C:\\folder 1\\folder-2 C:\\custom.template-fixed.json": {
"packer build -force -var-file=C:\\somefolder\\somevarfile.json -var-file=C:\\somefolder\\somevarfile.json C:\\custom.template-fixed.json": {
"code": process.env["__packer_build_fails__"] === "true" ? 1 : 0,
"stdout": process.env["__packer_build_fails__"] === "true" ? "packer build failed\r\nsome error" : "Executed Successfully\nOSDiskUri: https://bishalpackerimages.blob.core.windows.net/system/Microsoft.Compute/Images/packer/packer-osDisk.e2e08a75-2d73-49ad-97c2-77f8070b65f5.vhd\nStorageAccountLocation: SouthIndia",
}
Expand All @@ -54,7 +54,7 @@ let a: any = <any>{
};

var ut = require('../src/utilities');
tr.registerMock('./utilities', {
var utMock = {
IsNullOrEmpty : ut.IsNullOrEmpty,
HasItems : ut.HasItems,
StringWritable: ut.StringWritable,
Expand All @@ -70,6 +70,9 @@ tr.registerMock('./utilities', {
console.log('copying ' + source + ' to ' + destination);
}
},
createTemplateVarFile: function (templateVariables) {
return "C:\\somefolder\\somevarfile.json";
},
writeFile: function(filePath: string, content: string) {
console.log("writing to file " + filePath + " content: " + content);
},
Expand All @@ -82,7 +85,10 @@ tr.registerMock('./utilities', {
getCurrentDirectory: function() {
return "basedir\\currdir";
}
});
};

tr.registerMock('./utilities', utMock);
tr.registerMock('../utilities', utMock);

tr.setAnswers(a);
tr.run();
18 changes: 12 additions & 6 deletions Tasks/PackerBuildV0/Tests/L0Linux.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,23 +54,23 @@ let a: any = <any>{
"code": 0,
"stdout": "{ \"some-key\": \"some-value\" }"
},
"packer validate -var resource_group=testrg -var storage_account=teststorage -var image_publisher=Canonical -var image_offer=UbuntuServer -var image_sku=14.04.4-LTS -var location=South India -var capture_name_prefix=Release-1 -var skip_clean=true -var script_relative_path=dir3/somedir/deploy.sh -var package_path=/tmp/dir1/somedir/dir2 -var package_name=dir2 -var script_arguments=\"subdir 1\" false -var subscription_id=sId -var client_id=spId -var client_secret=spKey -var tenant_id=tenant -var object_id= /tmp/tempdir/100/default.linux.template-fixed.json": {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should modify test to ensure that these parameters are present in var file. I think test mocks Write-File to write to console. You can grep console output to ensure that this content is correct.
In this task, passing correct parameters is the most important aspect. Hence we need to test them thoroughly.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added 2 tests for this. first one verifies for default template, the other one for custom template

"packer validate -var-file=/somefolder/somevarfile.json -var-file=/somefolder/somevarfile.json /tmp/tempdir/100/default.linux.template-fixed.json": {
"code": 0,
"stdout": "Executed Successfully"
},
"packer build -force -var resource_group=testrg -var storage_account=teststorage -var image_publisher=Canonical -var image_offer=UbuntuServer -var image_sku=14.04.4-LTS -var location=South India -var capture_name_prefix=Release-1 -var skip_clean=true -var script_relative_path=dir3/somedir/deploy.sh -var package_path=/tmp/dir1/somedir/dir2 -var package_name=dir2 -var script_arguments=\"subdir 1\" false -var subscription_id=sId -var client_id=spId -var client_secret=spKey -var tenant_id=tenant -var object_id= /tmp/tempdir/100/default.linux.template-fixed.json": {
"packer build -force -var-file=/somefolder/somevarfile.json -var-file=/somefolder/somevarfile.json /tmp/tempdir/100/default.linux.template-fixed.json": {
"code": process.env["__packer_build_fails__"] === "true" ? 1 : 0,
"stdout": process.env["__packer_build_fails__"] === "true" ? "packer build failed\r\nsome error" : "Executed Successfully\nOSDiskUri: https://bishalpackerimages.blob.core.windows.net/system/Microsoft.Compute/Images/packer/packer-osDisk.e2e08a75-2d73-49ad-97c2-77f8070b65f5.vhd\nStorageAccountLocation: SouthIndia",
},
"packer fix -validate=false \\tmp\\tempdir\\100\\default.linux.template.json": {
"code": 0,
"stdout": "Executed Successfully"
},
"packer validate -var resource_group=testrg -var storage_account=teststorage -var image_publisher=Canonical -var image_offer=UbuntuServer -var image_sku=14.04.4-LTS -var location=South India -var capture_name_prefix=Release-1 -var skip_clean=true -var script_relative_path=dir3/somedir/deploy.sh -var package_path=/tmp/dir1/somedir/dir2 -var package_name=dir2 -var script_arguments=\"subdir 1\" false -var subscription_id=sId -var client_id=spId -var client_secret=spKey -var tenant_id=tenant -var object_id= \\tmp\\tempdir\\100\\default.linux.template-fixed.json": {
"packer validate -var-file=/somefolder/somevarfile.json -var-file=/somefolder/somevarfile.json \\tmp\\tempdir\\100\\default.linux.template-fixed.json": {
"code": 0,
"stdout": "Executed Successfully"
},
"packer build -force -var resource_group=testrg -var storage_account=teststorage -var image_publisher=Canonical -var image_offer=UbuntuServer -var image_sku=14.04.4-LTS -var location=South India -var capture_name_prefix=Release-1 -var skip_clean=true -var script_relative_path=dir3/somedir/deploy.sh -var package_path=/tmp/dir1/somedir/dir2 -var package_name=dir2 -var script_arguments=\"subdir 1\" false -var subscription_id=sId -var client_id=spId -var client_secret=spKey -var tenant_id=tenant -var object_id= \\tmp\\tempdir\\100\\default.linux.template-fixed.json": {
"packer build -force -var-file=/somefolder/somevarfile.json -var-file=/somefolder/somevarfile.json \\tmp\\tempdir\\100\\default.linux.template-fixed.json": {
"code": process.env["__packer_build_fails__"] === "true" ? 1 : 0,
"stdout": process.env["__packer_build_fails__"] === "true" ? "packer build failed\r\nsome error" : "Executed Successfully\nOSDiskUri: https://bishalpackerimages.blob.core.windows.net/system/Microsoft.Compute/Images/packer/packer-osDisk.e2e08a75-2d73-49ad-97c2-77f8070b65f5.vhd\nStorageAccountLocation: SouthIndia",
}
Expand All @@ -92,7 +92,7 @@ let a: any = <any>{
};

var ut = require('../src/utilities');
tr.registerMock('./utilities', {
var utMock = {
IsNullOrEmpty : ut.IsNullOrEmpty,
HasItems : ut.HasItems,
StringWritable: ut.StringWritable,
Expand All @@ -104,6 +104,9 @@ tr.registerMock('./utilities', {
copyFile: function(source: string, destination: string) {
console.log('copying ' + source + ' to ' + destination);
},
createTemplateVarFile: function (templateVariables) {
return "/somefolder/somevarfile.json";
},
writeFile: function(filePath: string, content: string) {
console.log("writing to file " + filePath + " content: " + content);
},
Expand All @@ -123,7 +126,10 @@ tr.registerMock('./utilities', {
getCurrentDirectory: function() {
return "/basedir/currdir";
}
});
};

tr.registerMock('./utilities', utMock);
tr.registerMock('../utilities', utMock);

tr.setAnswers(a);
tr.run();
Original file line number Diff line number Diff line change
Expand Up @@ -54,23 +54,23 @@ let a: any = <any>{
"code": 0,
"stdout": "{ \"some-key\": \"some-value\" }"
},
"packer validate -var resource_group=testrg -var storage_account=teststorage -var image_publisher=Canonical -var image_offer=UbuntuServer -var image_sku=14.04.4-LTS -var location=South India -var capture_name_prefix=Release-1 -var skip_clean=true -var script_relative_path=dir3/somedir/deploy.sh -var package_path=/tmp/dir1/somedir/dir2 -var package_name=dir2 -var script_arguments=\"subdir 1\" false -var subscription_id=sId -var client_id=spId -var client_secret=spKey -var tenant_id=tenant -var object_id=oId /tmp/tempdir/100/default.linux.template-builderUpdated-fixed.json": {
"packer validate -var-file=/somefolder/somevarfile.json -var-file=/somefolder/somevarfile.json /tmp/tempdir/100/default.linux.template-builderUpdated-fixed.json": {
"code": 0,
"stdout": "Executed Successfully"
},
"packer build -force -var resource_group=testrg -var storage_account=teststorage -var image_publisher=Canonical -var image_offer=UbuntuServer -var image_sku=14.04.4-LTS -var location=South India -var capture_name_prefix=Release-1 -var skip_clean=true -var script_relative_path=dir3/somedir/deploy.sh -var package_path=/tmp/dir1/somedir/dir2 -var package_name=dir2 -var script_arguments=\"subdir 1\" false -var subscription_id=sId -var client_id=spId -var client_secret=spKey -var tenant_id=tenant -var object_id=oId /tmp/tempdir/100/default.linux.template-builderUpdated-fixed.json": {
"packer build -force -var-file=/somefolder/somevarfile.json -var-file=/somefolder/somevarfile.json /tmp/tempdir/100/default.linux.template-builderUpdated-fixed.json": {
"code": process.env["__packer_build_fails__"] === "true" ? 1 : 0,
"stdout": process.env["__packer_build_fails__"] === "true" ? "packer build failed\r\nsome error" : "Executed Successfully\nOSDiskUri: https://bishalpackerimages.blob.core.windows.net/system/Microsoft.Compute/Images/packer/packer-osDisk.e2e08a75-2d73-49ad-97c2-77f8070b65f5.vhd\nStorageAccountLocation: SouthIndia",
},
"packer fix -validate=false \\tmp\\tempdir\\100\\default.linux.template-builderUpdated.json": {
"code": 0,
"stdout": "Executed Successfully"
},
"packer validate -var resource_group=testrg -var storage_account=teststorage -var image_publisher=Canonical -var image_offer=UbuntuServer -var image_sku=14.04.4-LTS -var location=South India -var capture_name_prefix=Release-1 -var skip_clean=true -var script_relative_path=dir3/somedir/deploy.sh -var package_path=/tmp/dir1/somedir/dir2 -var package_name=dir2 -var script_arguments=\"subdir 1\" false -var subscription_id=sId -var client_id=spId -var client_secret=spKey -var tenant_id=tenant -var object_id=oId \\tmp\\tempdir\\100\\default.linux.template-builderUpdated-fixed.json": {
"packer validate -var-file=/somefolder/somevarfile.json -var-file=/somefolder/somevarfile.json \\tmp\\tempdir\\100\\default.linux.template-builderUpdated-fixed.json": {
"code": 0,
"stdout": "Executed Successfully"
},
"packer build -force -var resource_group=testrg -var storage_account=teststorage -var image_publisher=Canonical -var image_offer=UbuntuServer -var image_sku=14.04.4-LTS -var location=South India -var capture_name_prefix=Release-1 -var skip_clean=true -var script_relative_path=dir3/somedir/deploy.sh -var package_path=/tmp/dir1/somedir/dir2 -var package_name=dir2 -var script_arguments=\"subdir 1\" false -var subscription_id=sId -var client_id=spId -var client_secret=spKey -var tenant_id=tenant -var object_id=oId \\tmp\\tempdir\\100\\default.linux.template-builderUpdated-fixed.json": {
"packer build -force -var-file=/somefolder/somevarfile.json -var-file=/somefolder/somevarfile.json \\tmp\\tempdir\\100\\default.linux.template-builderUpdated-fixed.json": {
"code": process.env["__packer_build_fails__"] === "true" ? 1 : 0,
"stdout": process.env["__packer_build_fails__"] === "true" ? "packer build failed\r\nsome error" : "Executed Successfully\nOSDiskUri: https://bishalpackerimages.blob.core.windows.net/system/Microsoft.Compute/Images/packer/packer-osDisk.e2e08a75-2d73-49ad-97c2-77f8070b65f5.vhd\nStorageAccountLocation: SouthIndia",
}
Expand All @@ -92,7 +92,7 @@ let a: any = <any>{
};

var ut = require('../src/utilities');
tr.registerMock('./utilities', {
var utMock = {
IsNullOrEmpty : ut.IsNullOrEmpty,
HasItems : ut.HasItems,
StringWritable: ut.StringWritable,
Expand All @@ -107,6 +107,9 @@ tr.registerMock('./utilities', {
readJsonFile: function(filePath: string) {
return "{\"builders\":[{\"type\":\"azure-arm\"}]}";
},
createTemplateVarFile: function (templateVariables) {
return "/somefolder/somevarfile.json";
},
writeFile: function(filePath: string, content: string) {
console.log("writing to file " + filePath + " content: " + content);
},
Expand All @@ -126,7 +129,10 @@ tr.registerMock('./utilities', {
getCurrentDirectory: function() {
return "/basedir/currdir";
}
});
};

tr.registerMock('./utilities', utMock);
tr.registerMock('../utilities', utMock);

tr.setAnswers(a);
tr.run();
18 changes: 12 additions & 6 deletions Tasks/PackerBuildV0/Tests/L0LinuxCustomImage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,23 +55,23 @@ let a: any = <any>{
"code": 0,
"stdout": "{ \"some-key\": \"some-value\" }"
},
"packer validate -var resource_group=testrg -var storage_account=teststorage -var image_url=https://bishalpackerimages.blob.core.windows.net/system/Microsoft.Compute/Images/vsts-buildimagetask/Release-1-osDisk.2d175222-b257-405f-a07f-0af4dc4b3dc4.vhd -var location=South India -var capture_name_prefix=Release-1 -var skip_clean=true -var script_relative_path=dir3/somedir/deploy.sh -var package_path=/tmp/dir1/somedir/dir2 -var package_name=dir2 -var script_arguments=\"subdir 1\" false -var subscription_id=sId -var client_id=spId -var client_secret=spKey -var tenant_id=tenant -var object_id=oId /tmp/tempdir/100/custom.linux.template-fixed.json": {
"packer validate -var-file=/somefolder/somevarfile.json -var-file=/somefolder/somevarfile.json /tmp/tempdir/100/custom.linux.template-fixed.json": {
"code": 0,
"stdout": "Executed Successfully"
},
"packer build -force -var resource_group=testrg -var storage_account=teststorage -var image_url=https://bishalpackerimages.blob.core.windows.net/system/Microsoft.Compute/Images/vsts-buildimagetask/Release-1-osDisk.2d175222-b257-405f-a07f-0af4dc4b3dc4.vhd -var location=South India -var capture_name_prefix=Release-1 -var skip_clean=true -var script_relative_path=dir3/somedir/deploy.sh -var package_path=/tmp/dir1/somedir/dir2 -var package_name=dir2 -var script_arguments=\"subdir 1\" false -var subscription_id=sId -var client_id=spId -var client_secret=spKey -var tenant_id=tenant -var object_id=oId /tmp/tempdir/100/custom.linux.template-fixed.json": {
"packer build -force -var-file=/somefolder/somevarfile.json -var-file=/somefolder/somevarfile.json /tmp/tempdir/100/custom.linux.template-fixed.json": {
"code": process.env["__packer_build_fails__"] === "true" ? 1 : 0,
"stdout": process.env["__packer_build_fails__"] === "true" ? "packer build failed\r\nsome error" : "Executed Successfully\nOSDiskUri: https://bishalpackerimages.blob.core.windows.net/system/Microsoft.Compute/Images/packer/packer-osDisk.e2e08a75-2d73-49ad-97c2-77f8070b65f5.vhd\nStorageAccountLocation: SouthIndia",
},
"packer fix -validate=false \\tmp\\tempdir\\100\\custom.linux.template.json": {
"code": 0,
"stdout": "Executed Successfully"
},
"packer validate -var resource_group=testrg -var storage_account=teststorage -var image_url=https://bishalpackerimages.blob.core.windows.net/system/Microsoft.Compute/Images/vsts-buildimagetask/Release-1-osDisk.2d175222-b257-405f-a07f-0af4dc4b3dc4.vhd -var location=South India -var capture_name_prefix=Release-1 -var skip_clean=true -var script_relative_path=dir3/somedir/deploy.sh -var package_path=/tmp/dir1/somedir/dir2 -var package_name=dir2 -var script_arguments=\"subdir 1\" false -var subscription_id=sId -var client_id=spId -var client_secret=spKey -var tenant_id=tenant -var object_id=oId \\tmp\\tempdir\\100\\custom.linux.template-fixed.json": {
"packer validate -var-file=/somefolder/somevarfile.json -var-file=/somefolder/somevarfile.json \\tmp\\tempdir\\100\\custom.linux.template-fixed.json": {
"code": 0,
"stdout": "Executed Successfully"
},
"packer build -force -var resource_group=testrg -var storage_account=teststorage -var image_url=https://bishalpackerimages.blob.core.windows.net/system/Microsoft.Compute/Images/vsts-buildimagetask/Release-1-osDisk.2d175222-b257-405f-a07f-0af4dc4b3dc4.vhd -var location=South India -var capture_name_prefix=Release-1 -var skip_clean=true -var script_relative_path=dir3/somedir/deploy.sh -var package_path=/tmp/dir1/somedir/dir2 -var package_name=dir2 -var script_arguments=\"subdir 1\" false -var subscription_id=sId -var client_id=spId -var client_secret=spKey -var tenant_id=tenant -var object_id=oId \\tmp\\tempdir\\100\\custom.linux.template-fixed.json": {
"packer build -force -var-file=/somefolder/somevarfile.json -var-file=/somefolder/somevarfile.json \\tmp\\tempdir\\100\\custom.linux.template-fixed.json": {
"code": process.env["__packer_build_fails__"] === "true" ? 1 : 0,
"stdout": process.env["__packer_build_fails__"] === "true" ? "packer build failed\r\nsome error" : "Executed Successfully\nOSDiskUri: https://bishalpackerimages.blob.core.windows.net/system/Microsoft.Compute/Images/packer/packer-osDisk.e2e08a75-2d73-49ad-97c2-77f8070b65f5.vhd\nStorageAccountLocation: SouthIndia",
}
Expand All @@ -93,7 +93,7 @@ let a: any = <any>{
};

var ut = require('../src/utilities');
tr.registerMock('./utilities', {
var utMock = {
IsNullOrEmpty : ut.IsNullOrEmpty,
HasItems : ut.HasItems,
StringWritable: ut.StringWritable,
Expand All @@ -109,6 +109,9 @@ tr.registerMock('./utilities', {
console.log('copying ' + source + ' to ' + destination);
}
},
createTemplateVarFile: function (templateVariables) {
return "/somefolder/somevarfile.json";
},
writeFile: function(filePath: string, content: string) {
console.log("writing to file " + filePath + " content: " + content);
},
Expand All @@ -128,7 +131,10 @@ tr.registerMock('./utilities', {
getCurrentDirectory: function() {
return "/basedir/currdir";
}
});
};

tr.registerMock('./utilities', utMock);
tr.registerMock('../utilities', utMock);

tr.setAnswers(a);
tr.run();
Loading