Merge pull request #28230 from hashicorp/alisdair/only-rewrite-provider-locks-file-if-changed

cli: Only rewrite provider locks file if changed
This commit is contained in:
Alisdair McDiarmid 2021-03-30 09:12:45 -04:00 committed by GitHub
commit 4fb505631c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 8 deletions

View File

@ -798,16 +798,11 @@ Terraform has made some changes to the provider dependency selections recorded
in the .terraform.lock.hcl file. Review those changes and commit them to your
version control system if they represent changes you intended to make.`))
}
moreDiags = c.replaceLockedDependencies(newLocks)
diags = diags.Append(moreDiags)
}
// TODO: Check whether newLocks is different from previousLocks and mention
// in the UI if so. We should emit a different message if previousLocks was
// empty, because that indicates we were creating a lock file for the first
// time and so we need to introduce the user to the idea of it.
moreDiags = c.replaceLockedDependencies(newLocks)
diags = diags.Append(moreDiags)
return true, false, diags
}

View File

@ -1618,6 +1618,13 @@ provider "registry.terraform.io/hashicorp/test" {
if diff := cmp.Diff(wantLockFile, string(buf)); diff != "" {
t.Errorf("wrong dependency lock file contents\n%s", diff)
}
// Make the local directory read-only, and verify that rerunning init
// succeeds, to ensure that we don't try to rewrite an unchanged lock file
os.Chmod(".", 0555)
if code := c.Run(args); code != 0 {
t.Fatalf("bad: \n%s", ui.ErrorWriter.String())
}
}
func TestInit_providerLockFileReadonly(t *testing.T) {