This template uses the SimplySql PowerShell module. This module had some changes where it implemented named connections to databases. Without specifying the name, it would use default. In the event of an error, the finally statement attempted to close the connection. If a failure occurred before a connection was made, the finally would also fail and mask the original error.
Results
Implemented named connections and updated the finally to include a test to see if the connection was open before attempting to close it. Failures are no longer masked if they were caused by the connection attempt itself.
Before
If a failure occurred during the connection attempt, the finally would attempt to close a connection that didn't exist and mask the original error.
After
A test-connection was added to finally to see if the connection is open before attempting to close it. Connection attempt errors are no longer masked.
Pre-requisites
[ ] Id should be a GUID that is not 00000000-0000-0000-0000-000000000000
NOTE If you are modifying an existing step template, please make sure that you do not modify the Id property (updating the Id will break the Library sync functionality in Octopus).
[ ] Version should be incremented, otherwise the integration with Octopus won't update the step template correctly
[ ] Parameter names should not start with $
[ ] Step template parameter names (the ones declared in the JSON, not the script body) should be prefixed with a namespace so that they are less likely to clash with other user-defined variables in Octopus (see this issue). For example, use an abbreviated name of the step template or the category of the step template).
[ ] LastModifiedBy field must be present, and (optionally) updated with the correct author
[ ] The best practices documented here have been applied
[ ] If a new Category has been created:
[ ] An image with the name {categoryname}.png must be present under the step-templates/logos folder
[ ] The switch in the humanize function in gulpfile.babel.js must have a case statement corresponding to it
Fixes # . If there is an open issue that this PR fixes add it here, otherwise just remove this line
Background
This template uses the SimplySql PowerShell module. This module had some changes where it implemented named connections to databases. Without specifying the name, it would use default. In the event of an error, the
finally
statement attempted to close the connection. If a failure occurred before a connection was made, thefinally
would also fail and mask the original error.Results
Implemented named connections and updated the
finally
to include a test to see if the connection was open before attempting to close it. Failures are no longer masked if they were caused by the connection attempt itself.Before
If a failure occurred during the connection attempt, the
finally
would attempt to close a connection that didn't exist and mask the original error.After
A test-connection was added to
finally
to see if the connection is open before attempting to close it. Connection attempt errors are no longer masked.Pre-requisites
Id
should be a GUID that is not00000000-0000-0000-0000-000000000000
Id
property (updating theId
will break the Library sync functionality in Octopus).Version
should be incremented, otherwise the integration with Octopus won't update the step template correctly$
LastModifiedBy
field must be present, and (optionally) updated with the correct authorCategory
has been created:{categoryname}.png
must be present under thestep-templates/logos
folderswitch
in thehumanize
function ingulpfile.babel.js
must have acase
statement corresponding to itFixes # . If there is an open issue that this PR fixes add it here, otherwise just remove this line