diff options
Diffstat (limited to 'ansible_collections/lowlydba/sqlserver/plugins/modules/nonquery.ps1')
-rw-r--r-- | ansible_collections/lowlydba/sqlserver/plugins/modules/nonquery.ps1 | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/ansible_collections/lowlydba/sqlserver/plugins/modules/nonquery.ps1 b/ansible_collections/lowlydba/sqlserver/plugins/modules/nonquery.ps1 new file mode 100644 index 000000000..fdc34d170 --- /dev/null +++ b/ansible_collections/lowlydba/sqlserver/plugins/modules/nonquery.ps1 @@ -0,0 +1,51 @@ +#!powershell +# -*- coding: utf-8 -*- + +# (c) 2022, John McCall (@lowlydba) +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +#AnsibleRequires -CSharpUtil Ansible.Basic +#AnsibleRequires -PowerShell ansible_collections.lowlydba.sqlserver.plugins.module_utils._SqlServerUtils +#Requires -Modules @{ ModuleName="dbatools"; ModuleVersion="1.1.112" } + +$ErrorActionPreference = "Stop" + +# Get Csharp utility module +$spec = @{ + supports_check_mode = $true + options = @{ + database = @{type = 'str'; required = $true } + nonquery = @{type = 'str'; required = $true } + query_timeout = @{type = 'int'; required = $false; default = 60 } + } +} + +$module = [Ansible.Basic.AnsibleModule]::Create($args, $spec, @(Get-LowlyDbaSqlServerAuthSpec)) +$sqlInstance, $sqlCredential = Get-SqlCredential -Module $module +$database = $module.Params.database +$nonquery = $module.Params.nonquery +$queryTimeout = $module.Params.query_timeout +$checkMode = $module.CheckMode + +$module.Result.changed = $false + +try { + $invokeQuerySplat = @{ + SqlInstance = $sqlInstance + SqlCredential = $sqlCredential + Database = $database + Query = $nonquery + QueryTimeout = $queryTimeout + EnableException = $true + } + if ($checkMode) { + $invokeQuerySplat.Add("NoExec", $true) + } + $null = Invoke-DbaQuery @invokeQuerySplat + + $module.Result.changed = $true + $module.ExitJson() +} +catch { + $module.FailJson("Executing nonquery failed.", $_) +} |