We are trying to create a custom fixlet deployment for an Apple Mac client.
We have manually cached the dmg file on our BES server, and used the sha1 utility to create the “continue if” statement.
continue if {(size of it = 583098368 and sha1 of it = “f805718dd76f699e6b68ad3915c6dbd600e9141c”) of file “nameoffile.dmg” of folder “__Download”}
The error is: Command failed (Relevance substitution failed)
I noticed that some of the other Mac content includes “of client folder of current site” at the end of this statement. I tried that and got the same result. Haven’t found anything on the site or within the forums that explains what this error means.
The error “Relevance substitution failed” means that the relevance between the brackets {} returned an error… Looking at your example, I would guess the failure would be that the folder “__Download” doesn’t exist because of local path issues on the Mac Agent being different from this technique on the Windows agent.
Did you say you tried this?
continue if {(size of it = 583098368 and sha1 of it = “f805718dd76f699e6b68ad3915c6dbd600e9141c”) of file “nameoffile.dmg” of folder “__Download” of client folder of current site}
Or maybe you can switch to the newer command “prefetch” and you won’t need the continue if statement:
I think I’ve written the fixlet incorrectly. I tried using the prefetch method, and included “MANUAL_BES_CACHING_REQUIRED” in the URL to the file. The file itself has been cached on the server. The action now states “Pending Downloads” indefinitely. Client logs show a check for “DownloadsAvailable” that comes back as “false”. Log then shows “End monitoring action”, but the action itself doesn’t end or fail.
The only special syntax needed in order to be able to precache a file is to have the size and sha1 check in the continue if statement or use the prefetch command as Ben specified. If the action is failing on the continue if line with “Relevance substitution failed,” it means that the relevance statement encountered an error while evaluating. For a size and sha1 check that would only happen if the file or folder did not exist. Does your file have any special characters in the name?
There are characters that are valid on Mac that might need to be percent encoded in relevance in order to translate properly. Can you post the filename you have in the download command, and your exact continue if statement?
If prefetch isn’t working, then you might try deleting and re-copying the file into the BES Server cache. Maybe the file got corrupted so the sha1 doesn’t match. Double-check that the file is renamed to the right sha1 value, in case a character got lost in the cut and paste.
The file name has spaces - Which I thought might be an issue.
Is there an official syntax for the manual caching? I’ve basically “borrowed” from existing fixlets that require manual caching and have no idea if i’m doing it correctly.