Quantcast
Channel: Terraform - HashiCorp Discuss
Viewing all articles
Browse latest Browse all 11446

Null_resource + for_each: process incoming files in the filename sort order

$
0
0

Hi,

Input: incoming files in directory “.\incoming”:

00100.sql
00101.sql
00102.sql
00103.sql
00104.sql
00105.sql

Trying to process incoming files with:

terraform {
  required_version = ">= 0.13"
}

locals {
   input_files = sort(tolist(fileset(".\\incoming", "*.sql")))
   input_files_map = {
      for f in local.input_files: f => join("\\", [".\\incoming", f])
   }
}

resource "null_resource" "incoming_sql_files" {
   for_each = local.input_files_map

   triggers = {
      sequence = each.key
   }

   provisioner "local-exec" {
      interpreter = ["PowerShell", "-Command"]
      command = "Write-Host ${each.value}"
   }
}

, even with disabled parallelism, files being processed in ‘random’ order:

PS C:\> terraform apply -parallelism=1 -auto-approve

null_resource.incoming_sql_files["00103.sql"]: Creating...
null_resource.incoming_sql_files["00103.sql"]: Provisioning with 'local-exec'...
null_resource.incoming_sql_files["00103.sql"] (local-exec): Executing: ["PowerShell" "-Command" "Write-Host .\\incoming\\00103.sql"]
null_resource.incoming_sql_files["00103.sql"] (local-exec): .\incoming\00103.sql
null_resource.incoming_sql_files["00103.sql"]: Creation complete after 0s [id=8013475637114309158]
null_resource.incoming_sql_files["00101.sql"]: Creating...
null_resource.incoming_sql_files["00101.sql"]: Provisioning with 'local-exec'...
null_resource.incoming_sql_files["00101.sql"] (local-exec): Executing: ["PowerShell" "-Command" "Write-Host .\\incoming\\00101.sql"]
null_resource.incoming_sql_files["00101.sql"] (local-exec): .\incoming\00101.sql
null_resource.incoming_sql_files["00101.sql"]: Creation complete after 1s [id=8455477174421328302]
null_resource.incoming_sql_files["00105.sql"]: Creating...
null_resource.incoming_sql_files["00105.sql"]: Provisioning with 'local-exec'...
null_resource.incoming_sql_files["00105.sql"] (local-exec): Executing: ["PowerShell" "-Command" "Write-Host .\\incoming\\00105.sql"]
null_resource.incoming_sql_files["00105.sql"] (local-exec): .\incoming\00105.sql
null_resource.incoming_sql_files["00105.sql"]: Creation complete after 0s [id=737936411081243738]
null_resource.incoming_sql_files["00104.sql"]: Creating...
null_resource.incoming_sql_files["00104.sql"]: Provisioning with 'local-exec'...
null_resource.incoming_sql_files["00104.sql"] (local-exec): Executing: ["PowerShell" "-Command" "Write-Host .\\incoming\\00104.sql"]
null_resource.incoming_sql_files["00104.sql"] (local-exec): .\incoming\00104.sql
null_resource.incoming_sql_files["00104.sql"]: Creation complete after 0s [id=3703604562436926496]
null_resource.incoming_sql_files["00100.sql"]: Creating...
null_resource.incoming_sql_files["00100.sql"]: Provisioning with 'local-exec'...
null_resource.incoming_sql_files["00100.sql"] (local-exec): Executing: ["PowerShell" "-Command" "Write-Host .\\incoming\\00100.sql"]
null_resource.incoming_sql_files["00100.sql"] (local-exec): .\incoming\00100.sql
null_resource.incoming_sql_files["00100.sql"]: Creation complete after 1s [id=6010998834953611068]
null_resource.incoming_sql_files["00102.sql"]: Creating...
null_resource.incoming_sql_files["00102.sql"]: Provisioning with 'local-exec'...
null_resource.incoming_sql_files["00102.sql"] (local-exec): Executing: ["PowerShell" "-Command" "Write-Host .\\incoming\\00102.sql"]
null_resource.incoming_sql_files["00102.sql"] (local-exec): .\incoming\00102.sql
null_resource.incoming_sql_files["00102.sql"]: Creation complete after 0s [id=8858832982545845436]

Apply complete! Resources: 6 added, 0 changed, 0 destroyed.

Is there a way to force the processing in filename sort order?

Thanks!

1 post - 1 participant

Read full topic


Viewing all articles
Browse latest Browse all 11446

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>