Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.
If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!
Using curl to either check or download a script file in Otter
-
Hello Alana,
We want to add to our current functionality and make it backward compatible. We have an archive job running in Jenkins which then uploads a config file to Otter and triggers a job. That Otter job runs remotely using Otter\PowerShell scripts with that config file and an input. What we want to do is have a related archive job with its own config file use the same Otter\PowerShell scripts. The issue is, we cannot guarantee that both config files will exist. It would help greatly if we can conditionally get an asset.
Thanks,
Scott -
Hi @scusson_9923 ,
One idea ... how about a try/catch block?
It's not great.... but the
catchwill indicate the file doesn't exist.Just a thought...
Thanks,
Alana -
Hello Alana,
I tried that, but the catch returns as error if the file doesn't exist and fails the job.
Thanks,
Scott -
Hi @scusson_9923 ,
Can you share the OtterScript where you tried the
try/catch? Perhasp that's just something we can more easily fix.-- Dean
-
Hello Dean,
Here is a test script:
try { Get-Asset FooBar.ps1 ( Overwrite: true, Type: Script, To: D:\temp\FooBar.ps1 ); } catch { Log-Information did we catch?; }Here is the Otter output:
DEBUG: Beginning execution run... INFO: Execution run succeeded. DEBUG: Beginning execution run... INFO: Execution run succeeded. DEBUG: Beginning execution run... INFO: Execution run succeeded. DEBUG: Beginning execution run... INFO: Execution run succeeded. DEBUG: Job will be run against servers sequentially (not asynchronously). DEBUG: Targeting servers: Otter host <host> INFO: did we catch? INFO: did we catch? ERROR: The raft Default does not contain an asset of type Script with the name FooBar.ps1. DEBUG: Cleaning up temporary files on Local Server...Thanks,
Scott -
Hi @scusson_9923 ,
Sorry on the slow reply; i wanted to test this, but didn't get a chance and figure I'd just share this now (which should work):
set $scriptExists = true; try { Get-Asset FooBar.ps1 ( Overwrite: true, Type: Script, To: D:\temp\FooBar.ps1 ); } catch { set $scriptExists = false; force normal; } Log-Information scriptExists: $scriptExists;Cheers,
Steve -
Hi Steve,
Unfortunately, I still get 'ERROR: The raft Default does not contain an asset of type Script with the name FooBar.ps1.'
Thanks,
Scott -
Hi @scusson_9923 ,
The message is expected, but you should see
scriptExists: falsewritten at the end, and aNormal status (i.e. green) for the execution.Is that not the case?
Thanks,
Steve -
Hi Steve,
scriptExists does come back as false. But my main point is that the job is marked as failure regardless. Odd that I see 'INFO: Execution run succeeded' in a job failure. I assume that this message indicates that the process itself did not experience any "internal errors"?
Thanks,
Scott -
Hi @scusson_9923 ,
Looks like this is a bug in not overriding the job/execution status; the
force normalstatement should make it "green" and a normal execution status. Anyway we'll get it fixed via OT-524.Cheers,
Steve -
Hello,
Great news!
Thanks,
Scott
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login