Open xeon22 opened 10 years ago
Can you explain a bit more? Are you saying that the artifact_file
resource fails if you pass it something like...
artifact_file "/tmp/my-artifact.tgz" do
location "com.test:my-artifact:tgz:LATEST"
owner "me"
group "foo"
action :create
end
Certainly. When the artifact_file resource downloads the location as specified above, it will resolve com.test:my-artifact:tgz:LATEST to say my-artifact-1.0-SNAPSHOT.tgz. When a call to checksum_valid? method is made, it is passed my-artifact.tgz. Thus it fails to find my-artifact.tgz to verify the checksum because my-artifact-1.0-SNAPSHOT.tgz is the file name is should be checking.
Thanks, that makes sense. I will take a look at this.
Same issue on my side ... When we are using a specified artifact version, we can build path with expected filename and lwrp is able to verify checksum.
But if you're using an unpredictive way to define version (LATEST, ***-SNAPSHOT, ...) filename stays unkown and lwrp can't check file signature and breaks.
There is definitely something left to be desired here on some particular edge cases (LATEST, SNAPSHOT). I've been thinking about ways to handle this, but haven't come up with a great fix yet.
I'm (trying) to work on this for a fix, but I got many file naming dependency problem (there is at least : real filename, destination filename, filename in chef/cache for SHA signature, metadata filename) ...
I think file lwrp should detect "rolling version" tags like *-SNAPSHOT and LATEST and switch his behavious based on this. But i'm not absolutely sure yet.
I suggested something to try to fix this problem
Please test latest master branch and see if current cookbook state fix your issue.
The file provider when passed a nexus artifact location, will fail when attempting to verify the file if the nexus artifact co-ordinates contain a LATEST string for the version of the artifact.