rubrik-sdk-for-powershell icon indicating copy to clipboard operation
rubrik-sdk-for-powershell copied to clipboard

Export-RubrikDatabase for sqlserver generates malformed request ?

Open ALZDBA opened this issue 1 year ago • 0 comments

Current Behavior

$restore = Export-RubrikDatabase  -Id $RubrikSourceDb.ID `
                                                    -TargetInstanceId $RubrikTargetInstanceId `
                                                    -TargetDatabaseName $ReqDbRestore.TargetDb `
                                                    -TargetFilePaths $TargetDbInfo `
                                                    -RecoveryDateTime $($ReqDbRestore.PointInTime) `
                                                    -Overwrite `
                                                    -FinishRecovery
              
<#
Name                          Value
----                          -----
TargetInstanceId              MssqlInstance:::770194d3-d2d8-4194-a2d7-f2fd0956781c
TargetFilePaths               {@{LogicalName=mytestdb; FilePath=X:\MSSQL16.GNKD006\MSSQL\UserData\mytestdb.mdf}, @{LogicalName=mytestdb_log; FilePath=X:\MSSQL16.GNKD006\MSSQL\UserData\mytestdblog.ldf}
TargetDatabaseName            mytestdb
RecoveryDateTime              2024-11-22 14:12:51
Id                            MssqlDatabase:::e704bf28-62fe-455b-80c3-94582885e028
FinishRecovery                True
#>
 
This is supposed to restore mytestdb from one server to another.
 
Error message:
Invoke-WebRequest: C:\Program Files\WindowsPowerShell\Modules\Rubrik\9.0.0\Private\Invoke-RubrikWebRequest.ps1:28:23
Line |
 28 | …  $result = Invoke-WebRequest -UseBasicParsing -SkipCertificateCheck …
    |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    | Request malformed

--------------------------------------------------------------------------------------------
 
Verbose logging:
 
VERBOSE: Found a Rubrik token for authentication
VERBOSE: Gather API Data for Export-RubrikDatabase
VERBOSE: Selected 1.0 API Data for Export-RubrikDatabase
VERBOSE: Load API data for Export-RubrikDatabase
VERBOSE: Description: Export MSSQL Database from Rubrik to Destination Instance.
VERBOSE: Build the URI
VERBOSE: URI = https://Rubrik2022/api/v1/mssql/db/MssqlDatabase:::e704bf28-62fe-455b-80c3-94582885e028/export
VERBOSE: Build the query parameters for <null>
VERBOSE: URI = https://Rubrik2022/api/v1/mssql/db/MssqlDatabase:::e704bf28-62fe-455b-80c3-94582885e028/export
VERBOSE: Build the body
VERBOSE: Adding Advanced Mode File Paths
VERBOSE: Body = {
 "targetFilePaths": [
   {
     "LogicalName": "MyTestDb",
     "FilePath": "X:\\MSSQL16.GNKD006\\MSSQL\\UserData\\MyTestDb.mdf"
   },
   {
     "LogicalName": "MyTestDb_log",
     "FilePath": "X:\\MSSQL16.GNKD006\\MSSQL\\UserLog\\MyTestDb_log.LDF"
   }
 ],
 "targetDatabaseName": "MyTestDb",
 "allowOverwrite": true,
 "recoveryPoint": {
   "timestampMs": 1732282672000
 },
 "targetInstanceId": "MssqlInstance:::770194d3-d2d8-4194-a2d7-f2fd0956781c",
 "finishRecovery": true
}
VERBOSE: Submitting the request
VERBOSE: Submitting "Post" request as "text/plain
VERBOSE: Invoking request with a custom timeout of 100 seconds
VERBOSE: Requested HTTP/1.1 POST with 533-byte payload
VERBOSE: Received HTTP/1.1 response of content type text/plain of unknown size
>> TerminatingError(Invoke-WebRequest): "Request malformed"
>> TerminatingError(Invoke-WebRequest): "Request malformed"
>> TerminatingError(Invoke-WebRequest): "Request malformed"
>> TerminatingError(Invoke-WebRequest): "Request malformed"
>> TerminatingError(Invoke-WebRequest): "Request malformed"
>> TerminatingError(Invoke-WebRequest): "Request malformed"
Request malformed
Invoke-WebRequest: C:\Program Files\WindowsPowerShell\Modules\Rubrik\9.0.0\Private\Invoke-RubrikWebRequest.ps1:28:23
Line |
 28 | …  $result = Invoke-WebRequest -UseBasicParsing -SkipCertificateCheck …
    |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    | Request malformed

Expected Behavior

Goal is to restore a sqlserver database from a source instance to a target instance and overwrite an existing database. Apparently this body json does not contain any source db information. Any idea what this body should look like to be working ?

Steps to Reproduce

No response

Context

PSVersion                     : 7.4.4
PSEdition                     : Core
GitCommitId                   : 7.4.4
OS                            : Microsoft Windows 10.0.20348
Platform                      : Win32NT
PSCompatibleVersions          : {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion     : 2.3
SerializationVersion          : 1.1.0.1
WSManStackVersion             : 3.0
HostConsoleName               : Visual Studio Code Host
HostConsoleVersion            : 2024.4.0
HostCulture                   : nl-BE
HostCultureUI                 : en-US
RubrikConnection              : True
UserAgentString               : RubrikPowerShellSDK-9.0.0--7.4.4--platform--Win32NT--platform_version--Microsoft Windows 10.0.20348
RubrikAuthentication          : Bearer
RubrikClusterVersion          : 8.1.1-p1-24326
RubrikCurrentModuleVersion    : 9.0.0
RubrikInstalledModule         : 9.0.0, 6.0.1, 6.0.0
RubrikModuleOptions           : ApplyCustomViewDefinitions = True; CredentialPath = ; DefaultWebRequestTimeOut = 100
RubrikModuleDefaultParameters :

Failure Logs

Request malformed

Invoke-WebRequest: C:\Program Files\WindowsPowerShell\Modules\Rubrik\9.0.0\Private\Invoke-RubrikWebRequest.ps1:28:23 Line | 28 | … $result = Invoke-WebRequest -UseBasicParsing -SkipCertificateCheck … | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | Request malformed

ALZDBA avatar Nov 25 '24 09:11 ALZDBA