Jsonnet err: object comprehension can only have one field

517 Views Asked by At

Below code was returning err : object comprehension can only have one field. What is the right syntax / code in jsonet for below function ?

local generateSteps(branchName) = {
  [branchName + "_test_123"]: test_123(region, allConfigs[envName]['meta']['branch'], allConfigs[envName]['meta']['aws_access_key_id'], allConfigs[envName]['meta']['aws_secret_access_key'], allConfigs[envName]['meta']['aws_env']),
  [branchName + "_test_345"]: test_345(region, allConfigs[envName]['meta']['branch'], allConfigs[envName]['meta']['aws_access_key_id'], allConfigs[envName]['meta']['aws_secret_access_key'], allConfigs[envName]['meta']['aws_env']),
  for envName in envs
  for region in allConfigs[envName]['meta']['active_region']
}+ {
  [branchName + "_test_456"]: test_456()
}+ {
[branchName + "_notify_slack_on_failures"]: notify_slack_on_failures()
};
1

There are 1 best solutions below

0
gthy On

Thanks @sytech . Below one worked

local generateSteps(branchName) = {
  [branchName + "_test_123"]: test_123(region, allConfigs[envName]['meta']['branch'], allConfigs[envName]['meta']['aws_access_key_id'], allConfigs[envName]['meta']['aws_secret_access_key'], allConfigs[envName]['meta']['aws_env'])
  for envName in envs
  for region in allConfigs[envName]['meta']['active_region']
}+ {
  [branchName + "_test_456t"]: test_456()
}+ {[branchName + "_test_345"]: test_345(region, allConfigs[envName]['meta']['branch'], allConfigs[envName]['meta']['aws_access_key_id'], allConfigs[envName]['meta']['aws_secret_access_key'], allConfigs[envName]['meta']['aws_env'])
  for envName in envs
  for region in allConfigs[envName]['meta']['active_region']
}+{
[branchName + "_notify_slack_on_failures"]: notify_slack_on_failures()
};