diff --git a/lib/manager/terraform/extract.js b/lib/manager/terraform/extract.js index b7969ed0a27f86bb157bec7a515a3924387fd5e4..79c531664b7746feb8860cb2326e00043ea75cc6 100644 --- a/lib/manager/terraform/extract.js +++ b/lib/manager/terraform/extract.js @@ -20,6 +20,7 @@ function extractPackageFile(content) { logger.trace(`Matched module on line ${lineNumber}`); const dep = { moduleName: module[1], + managerData: {}, }; do { lineNumber += 1; @@ -54,7 +55,7 @@ function extractPackageFile(content) { dep.currentValue = githubRefMatch[3]; dep.datasource = 'github'; dep.lookupName = githubRefMatch[2]; - dep.lineNumber = dep.sourceLine; + dep.managerData.lineNumber = dep.sourceLine; if (!isVersion(dep.currentValue)) { dep.skipReason = 'unsupported-version'; } @@ -66,10 +67,10 @@ function extractPackageFile(content) { dep.depType = 'terraform'; dep.depName = moduleParts.join('/'); dep.depNameShort = dep.depName; - dep.lineNumber = dep.versionLine; + dep.managerData.lineNumber = dep.versionLine; dep.datasource = 'terraform'; } - if (dep.lineNumber) { + if (dep.managerData.lineNumber) { if (!isValid(dep.currentValue)) { dep.skipReason = 'unsupported-version'; } diff --git a/lib/manager/terraform/update.js b/lib/manager/terraform/update.js index c96cd04c4654c8e2c1ff16d18b44657521aa1f96..07f132aec63bb9218bfb36c32b6f876f43bba783 100644 --- a/lib/manager/terraform/update.js +++ b/lib/manager/terraform/update.js @@ -8,7 +8,7 @@ function updateDependency(currentFileContent, upgrade) { try { logger.debug(`terraform.updateDependency: ${upgrade.newValue}`); const lines = currentFileContent.split('\n'); - const lineToChange = lines[upgrade.lineNumber]; + const lineToChange = lines[upgrade.managerData.lineNumber]; let newLine = lineToChange; if (upgrade.depType === 'github') { if (!lineToChange.includes(upgrade.depNameShort)) { @@ -28,7 +28,7 @@ function updateDependency(currentFileContent, upgrade) { logger.debug('No changes necessary'); return currentFileContent; } - lines[upgrade.lineNumber] = newLine; + lines[upgrade.managerData.lineNumber] = newLine; return lines.join('\n'); } catch (err) /* istanbul ignore next */ { logger.info({ err }, 'Error setting new terraform module version'); diff --git a/test/manager/terraform/__snapshots__/extract.spec.js.snap b/test/manager/terraform/__snapshots__/extract.spec.js.snap index 70d701dd62b4587104d0ae7770190195c7057b1a..6da4a2bd894147a5797e0383c72baa9bc692d881 100644 --- a/test/manager/terraform/__snapshots__/extract.spec.js.snap +++ b/test/manager/terraform/__snapshots__/extract.spec.js.snap @@ -9,8 +9,10 @@ Object { "depName": "github.com/hashicorp/example", "depNameShort": "hashicorp/example", "depType": "github", - "lineNumber": 1, "lookupName": "hashicorp/example", + "managerData": Object { + "lineNumber": 1, + }, "moduleName": "foo", "source": "github.com/hashicorp/example?ref=v1.0.0", }, @@ -20,8 +22,10 @@ Object { "depName": "github.com/hashicorp/example", "depNameShort": "hashicorp/example", "depType": "github", - "lineNumber": 5, "lookupName": "hashicorp/example", + "managerData": Object { + "lineNumber": 5, + }, "moduleName": "bar", "skipReason": "unsupported-version", "source": "github.com/hashicorp/example?ref=next", @@ -32,7 +36,9 @@ Object { "depName": "hashicorp/consul/aws", "depNameShort": "hashicorp/consul/aws", "depType": "terraform", - "lineNumber": 10, + "managerData": Object { + "lineNumber": 10, + }, "moduleName": "consul", "source": "hashicorp/consul/aws", }, @@ -42,8 +48,10 @@ Object { "depName": "github.com/tieto-cem/terraform-aws-ecs-task-definition", "depNameShort": "tieto-cem/terraform-aws-ecs-task-definition", "depType": "github", - "lineNumber": 14, "lookupName": "tieto-cem/terraform-aws-ecs-task-definition", + "managerData": Object { + "lineNumber": 14, + }, "moduleName": "container_definition", "source": "github.com/tieto-cem/terraform-aws-ecs-task-definition//modules/container-definition?ref=v0.1.0", }, @@ -53,8 +61,10 @@ Object { "depName": "github.com/tieto-cem/terraform-aws-ecs-task-definition", "depNameShort": "tieto-cem/terraform-aws-ecs-task-definition", "depType": "github", - "lineNumber": 25, "lookupName": "tieto-cem/terraform-aws-ecs-task-definition", + "managerData": Object { + "lineNumber": 25, + }, "moduleName": "task_definition", "source": "github.com/tieto-cem/terraform-aws-ecs-task-definition?ref=v0.1.0", }, @@ -64,8 +74,10 @@ Object { "depName": "github.com/hashicorp/example", "depNameShort": "hashicorp/example", "depType": "github", - "lineNumber": 31, "lookupName": "hashicorp/example", + "managerData": Object { + "lineNumber": 31, + }, "moduleName": "consul", "source": "git@github.com:hashicorp/example.git?ref=v2.0.0", }, @@ -74,7 +86,9 @@ Object { "depName": "terraform-aws-modules/security-group/aws", "depNameShort": "terraform-aws-modules/security-group/aws", "depType": "terraform", - "lineNumber": undefined, + "managerData": Object { + "lineNumber": undefined, + }, "moduleName": "web_server_sg", "skipReason": "no-version", "source": "terraform-aws-modules/security-group/aws//modules/http-80", @@ -85,7 +99,9 @@ Object { "depName": "terraform-aws-modules/security-group/aws", "depNameShort": "terraform-aws-modules/security-group/aws", "depType": "terraform", - "lineNumber": 46, + "managerData": Object { + "lineNumber": 46, + }, "moduleName": "vote_service_sg", "source": "terraform-aws-modules/security-group/aws", }, @@ -95,7 +111,9 @@ Object { "depName": "app.terraform.io/example-corp/k8s-cluster/azurerm", "depNameShort": "app.terraform.io/example-corp/k8s-cluster/azurerm", "depType": "terraform", - "lineNumber": 71, + "managerData": Object { + "lineNumber": 71, + }, "moduleName": "consul", "source": "app.terraform.io/example-corp/k8s-cluster/azurerm", }, @@ -105,7 +123,9 @@ Object { "depName": "app.terraform.io/example-corp/k8s-cluster/azurerm", "depNameShort": "app.terraform.io/example-corp/k8s-cluster/azurerm", "depType": "terraform", - "lineNumber": 76, + "managerData": Object { + "lineNumber": 76, + }, "moduleName": "consul2", "source": "app.terraform.io/example-corp/k8s-cluster/azurerm", }, @@ -115,7 +135,9 @@ Object { "depName": "app.terraform.io/example-corp/k8s-cluster/azurerm", "depNameShort": "app.terraform.io/example-corp/k8s-cluster/azurerm", "depType": "terraform", - "lineNumber": 81, + "managerData": Object { + "lineNumber": 81, + }, "moduleName": "consul3", "skipReason": "unsupported-version", "source": "app.terraform.io/example-corp/k8s-cluster/azurerm", @@ -126,16 +148,20 @@ Object { "depName": "hashicorp/consul/aws", "depNameShort": "hashicorp/consul/aws", "depType": "terraform", - "lineNumber": 86, + "managerData": Object { + "lineNumber": 86, + }, "moduleName": "consul3", "source": "hashicorp/consul/aws", }, Object { + "managerData": Object {}, "moduleName": "relative", "skipReason": "local", "source": "../../modules/fe", }, Object { + "managerData": Object {}, "moduleName": "nosauce", "skipReason": "no-source", }, diff --git a/test/manager/terraform/update.spec.js b/test/manager/terraform/update.spec.js index 5be5bfdc94417c4e0c590a2f40a9f04bf02b4f94..6fdab55761e2554f625a5135b524bf4410d79bee 100644 --- a/test/manager/terraform/update.spec.js +++ b/test/manager/terraform/update.spec.js @@ -9,7 +9,7 @@ describe('manager/terraform/update', () => { const upgrade = { depType: 'github', depName: 'foo', - lineNumber: 1, + managerData: { lineNumber: 1 }, depNameShort: 'hashicorp/example', newValue: 'v1.0.1', }; @@ -21,7 +21,7 @@ describe('manager/terraform/update', () => { const upgrade = { depType: 'github', depName: 'foo', - lineNumber: 1, + managerData: { lineNumber: 1 }, depNameShort: 'hashicorp/example', newValue: 'v1.0.0', }; @@ -32,7 +32,7 @@ describe('manager/terraform/update', () => { const upgrade = { depType: 'github', depName: 'foo', - lineNumber: 2, + managerData: { lineNumber: 2 }, depNameShort: 'hashicorp/example', newValue: 'v1.0.0', }; @@ -46,7 +46,7 @@ describe('manager/terraform/update', () => { newValue: 'v0.1.3', depName: 'github.com/tieto-cem/terraform-aws-ecs-task-definition', depNameShort: 'tieto-cem/terraform-aws-ecs-task-definition', - lineNumber: 14, + managerData: { lineNumber: 14 }, moduleName: 'container_definition', source: 'github.com/tieto-cem/terraform-aws-ecs-task-definition//modules/container-definition?ref=v0.1.0', @@ -61,7 +61,7 @@ describe('manager/terraform/update', () => { depName: 'hashicorp/consul/aws', depNameShort: 'hashicorp/consul/aws', depType: 'terraform', - lineNumber: 11, + managerData: { lineNumber: 11 }, moduleName: 'consul', source: 'hashicorp/consul/aws', newValue: '0.4.0', @@ -75,7 +75,7 @@ describe('manager/terraform/update', () => { depName: 'hashicorp/consul/aws', depNameShort: 'hashicorp/consul/aws', depType: 'terraform', - lineNumber: 10, + managerData: { lineNumber: 10 }, moduleName: 'consul', source: 'hashicorp/consul/aws', newValue: '0.4.0',