RiotGamesCookbooks / artifact-cookbook

Provides your cookbooks with the Artifact Deploy LWRP
Other
134 stars 91 forks source link

File provider checksum_valid? fails to verify file #115

Open xeon22 opened 10 years ago

xeon22 commented 10 years ago

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.

KAllan357 commented 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
xeon22 commented 10 years ago

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.

KAllan357 commented 10 years ago

Thanks, that makes sense. I will take a look at this.

BarthV commented 10 years ago

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.

KAllan357 commented 10 years ago

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.

BarthV commented 10 years ago

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.

BarthV commented 10 years ago

I suggested something to try to fix this problem

BarthV commented 10 years ago

Please test latest master branch and see if current cookbook state fix your issue.