All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Added for new features.
- Changed for changes in existing functionality.
- Deprecated for soon-to-be removed features.
- Removed for now removed features.
- Fixed for any bug fixes.
- Security in case of vulnerabilities.
- Changed the output of the user agent string to display platform information with double-dashed separated key-value pairs.
- Added
UserAgent
parameter toConnect-Rubrik
that allows specifying additional user-agent information. - Added
UserAgentHash
parameter to private functionNew-UserAgentString
that allows specifying additional user-agent information. - Addresses Issue 517
- The link to
quick-start.md
in thereadme.md
has been updated to a relative link
- Resolved bug in
Get-RubrikSnapshot
that caused no snapshots to be returned if the amount of snapshots was larger than one - Addresses Issue 504
- Added Get-RubrikOrgAuthorization, Set-RubrikOrgAuthorization, Remove-RubrikOrgAuthorization and related tests.
- Addresses Issue 337
- The private function
Test-RubrikSLA
had a hard coded local variable - Addresses Issue 497
- Renamed Get-RubrikVAppExportOptions to
Get-RubrikVAppExportOption
to use singular nouns - Renamed Get-RubrikVAppRecoverOptions to
Get-RubrikVAppRecoverOption
to use singular nouns - Renamed Get-RubrikVcdTemplateExportOptions to
Get-RubrikVcdTemplateExportOption
to use singular nouns - Updated documentation and unit tests where required
- Addresses Issue 509
- Changed this for the following functions:
Export-RubrikVAPP
New-RubrikBootstrap
Restore-RubrikVAPP
- Addresses Issue 326
- Modified private function Submit-Request.ps1 to support adding in success/error information for empty POST, PUT and PATCH responses
- Modified status return code for Remove-RubrikManagedObject
- Addresses Issue 442
- Changed the output of
$UserAgent
string to provide more detailed information about PowerShell version and platform - Added new private function,
New-UserAgentString
and associated unit tests - Addresses Issue 506
- Added
Set-RubrikProxySetting
andRemove-RubrikProxySetting
functions - Added
Rubrik.ProxySetting.ps1xml
to provide formatting for Get- &Set-RubrikProxySetting
- Added unit tests for new functions and additional tests for
Get-RubrikProxySetting
- Updated
Get-RubrikProxySetting
to support pipelining and formatted output - Updated private function
New-BodyString
to support forced upper and lowercase for selected properties - Addresses Issue 496
- Replaced occurrences of _local or local with local within documentation around the primary_cluster_id.
- Addresses Issue 468
- Updated the links to point to rubrik.gitbook.io from rubrikinc.gitbook.io
- Changed default display of Get-RubrikVolumeGroup
- Added
-DetailedObject
parameter toGet-RubrikVolumeGroup
- Addresses Issue 487
- Replaced occurrences of _local with local within documentation around the primary_cluster_id.
- Addresses Issue 468
- Added checks within Get-RubrikReportData to detect a limit value of -1. If detected, the cmdlet will perform recursion until all paginations has occurred.
- Addresses Issue 440 and Issue 485 in getting around the maximum limit defined within the API of 10000.
- Removed the case-sensitivity issues as listed in Issue 469
- Updated behavior of New-QueryString, stop adding ?limit to non-Get calls
- Added a new property
Function
to the output of Get-RubrikAPIData, this fixes an issue with verbose output as indicated in Issue 480
- Added
-AvailabilityGroupID
andAvailabilityGroupName
parameters toGet-RubrikDatabase
- Added unit tests to validate the new functionality
- Added various cmdlets and respective unit tests to support retrieving information from the Rubrik cluster. Development mainly driven from the As Built Report module.
- New cmdlets are
Get-RubrikClusterInfo
,Get-RubrikClusterNetworkInterface
,Get-RubrikClusterStorage
,Get-RubrikDNSSetting
,Get-RubrikEmailSetting
,Get-RubrikLoginBanner
,Get-RubrikNTPServer
,Get-RubrikNetworkThrottle
,Get-RubrikNode
,Get-RubrikNotificationSetting
,Get-RubrikProxySetting
, andGetRubrikSnmpSetting
- These cmdlets also resolve Issue 208
- Scoped the ID variable to local within the URI construction of New-RubrikHost as it was pulling ID variables set within the global scope and causing errors
- Resolves Issue 470
- Migrated boolean parameters to switch parameters in order to provide a more consistent approach across all cmdlets.
- Note: This has the possibility of providing breaking changes as the syntax of calling the parameters like '-Parameter $true' will no longer be supported.
- For Example: Export-RubrikVM -PowerOn $False will continue to run, however the $False gets assigned to the VM Name. Get-RubrikOrganization -isGlobal $true will now fail. Will need to ensure these are addressed in the release notes.
- Cmdlets affected are
Export-RubrikVM
,Get-RubrikEvent
,Get-RubrikOrganization
,New-RubrikHost
,New-RubrikMount
,Set-RubrikMount
,Set-RubrikNutanixVM
,Set-RubrikSupportTunnel
andSet-RubrikVM
- Addresses Issue 352
- Modified URI list in Get-RubrikAPIData for New-RubrikSnapshot to include support for Nutanix and Hyper-V
- Addresses Issue 466
- Added documentation in all private functions including synopsis, description, parameter help and examples where appropriate
- Addresses Issue 378
- Added Add-RubrikOrganization and Remove-RubrikOrganization to add and remove organizations, and associated unit tests
- Addresses Issue 338
- Added Get-RubrikUserRole and Set-RubrikUserRole in order to get and configure user roles and permissions.
- Added private function Update-RubrikuserRole to handle the addition and removal of permissions for the various roles.
- Addresses Issue 108
- Added cmdlets
Update-RubrikVCD
,Set-RubrikVCD
,Restore-RubrikVApp
,Protect-RubrikVApp
,Get-RubrikVcdTemplateExportOptions
,Get-RubrikVCD
,Get-RubrikVappSnapshot
,RubrikVAppRecoverOptions
,Get-RubrikVAppExportOptions
,Get-RubrikVApp
,Export-RubrikVCDTemplate
,Export-RubrikVApp
and related tests as requested in Issue 273 - Updated
Get-RubrikSnapshot
to support vCD vApps - Misc bug fixes and typos corrected
- Functionality created in order to make display of return results for certain objects more user friendly.
- Added private function Set-ObjectTypeName which applies a given TypeName definition to cmdlet results.
- Added ObjectTName parameter within Get-RubrikAPIData to the listed objects below
- Added ps1xml files to a newly created ObjectDefinitions folder definining the listed objects below
- Imported all ps1xml files from within the psd1 manifest for the listed objects below
- TypeName format files created for Rubrik.APIToken, Rubrik.AvailabilityGroup, Rubrik.Event, Rubrik.Fileset, Rubrik.FilesetTemplate, Rubrik.Host, Rubrik.HyperVVM, Rubrik.LDAP, Rubrik.LogShipping, Rubrik.ManagedVolume, Rubrik.MSSQLDatabase, Rubrik.MSSQLDatabaseFiles, Rubrik.MSSQLDatabaseMount, Rubrik.NASShare, Rubrik.NutanixVM, Rubrik.OracleDatabase, Rubrik.Report, RubrikSLADomain, Rubrik.SLADomainv1, Rubrik.UnmanagedObject, Rubrik.User, Rubrik.vCenter, Rubrik.VMwareDatastore, Rubrik.VMwareHost, Rubrik.VMwareVM, and Rubrik.VolumeGroup
- Addresses Issue 323
- Added Get-RubrikUser, New-RubrikUser, Remove-RubrikUser and Set-RubrikUser and respective unit tests to manage user accounts.
- Addresses Issue 244
- Added -Name parameter to Set-RubrikManagedVolume. Name already existed within the body definition in Get-RubrikAPIData
- Addresses Issue 447
- Created unit test for Invoke-RubrikRestCall
- Addresses Issue 348
- Created Get-RubrikObject cmdlet and respective Unit test.
- Addresses Issue 349
- Created unit tests for Get-RubrikAvailabilityGroup, Get-RubrikOrganization, Get-RubrikRequest, Get-RubrikUnmanagedObject, Remove-RubrikUnmanagedObject, Set-RubrikAvailabilityGroup, and Sync-RubrikTag. Get-RubrikSnapshot was already present.
- Resolves Issue 347
- Created unit tests for both
Get-RubrikBootStrap
andNew-RubrikBootStrap
as requested in Issue 383 - Updated documentation
- Enhanced validation of strings and validatescript block
- Changed functionality of
New-RubrikLogShipping.Tests
to use inModuleScope
- Changed
New-RubrikLogShipping
If-statement validation to check based on object instead of string
- Added unit tests for
New-RubrikLogShipping
,New-RubrikLogBackup
,Get-RubrikLogShipping
,Set-RubrikLogShipping
,Reset-RubrikLogShipping
, andRemove-RubrikLogShipping
- Set
IgnoreCase
on state parameter forSet-RubrikLogShipping
as parameters must be uppercase to process in API call. - Addresses Issue 344
- Updated Api information for function in
Get-RubrikApiData
Issue 430
- Improved detection of empty strings
- Added validation for
time
field, iftime
field does not exist it will not adddate
property Issue 428
- Function is used to convert API time strings to date time objects
- Created associated unit tests to validate behavior of function
- Added new
date
property to output, uses new Convert-APIDateTime function for conversion Issue 426 - Added additional unit tests to validate proper date time conversion
- As requested in issue Issue 419
- Now uses new private function instead of the custom code in the function
- Changed behavior of
-Relic
switch, by default now retrieves both relic and non-relics.-Relic
or-Relic:$false
in addition to that - Added additional unit test
- Created parameter sets and improved parameter validation Issue 351
- Added
-Latest
parameter to return latest snapshot data - Added
-Range
to use with-Date
. This specifies how many days away from the given date to search for the closest matching snapshot. Defaults to one day. - Added
-ExactMatch
to use with-Date
. This causes no results to be returned if a matching date isn't found. Otherwise, all snapshots are returned if no match is made. - Added unit tests for
Get-RubrikSnapshot
- Updated
Test-DateDifference
, a private function used byGet-RubrikSnapshot
, to support the-Range
parameter
- Behavior of
-Name
and-Hostname
changed to only do an exact match as reported in Issue 384 - Added new
-NameFilter
and-HostNameFilter
parameters to allow for in-fix matching - Added new tests for
Get-RubrikFileSet
- The Get-RubrikSQLInstance PrimaryClusterID had a bug as reported in issue Issue 399
- Updated parameter help to correctly suggest
local
to be used - Added additional examples that describe usage of the -PrimaryClusterID parameter
- Default behavior of Get-RubrikReportData updated to reflect default behavior of other parameters, setting limit to maximum amount unless specified. Issue 408
- Removed references to the completed refactor branch Issue 411
- Added ability to configure archival and replication settings to address Issue 368
- Changed logic for $AdvancedConfig. It's not required anymore to set this parameter directly when piping from Get-RubrikSLA and advanced configuration was already enabled.
- Added Unit Tests for Get-RubrikFileset, Get-RubrikFilesetTemplate, New-RubrikFileset, New-RubrikFilesetTemplate, Protect-RubrikFilset, and Remove-RubrikFileset
- Addresses Issue 343
- Fixed bug in example, added additional example
- Added unit tests for Get-RubrikReport, Get-RubrikReportData, New-RubrikReport, and Remove-RubrikReport. Export-RubrikReport unit test already existed.
- Addresses Issue 342
- Now populating the $WebResult variable in order to show HTTP Status Codes/Descriptions as well as proper status messages for PowerShell versions prior to 6.
- Address Issue 402
- Added support for archival and replication settings to New-RubrikSLA to address Issue 367
- Removed unnecessary braces for the frequencies array in the request body when using API v2 to address Issue 391
- Fixed the $FirstFullBackupDay variable to be an integer when the value is retrieved from the pipeline with Get-RubrikSLA
- Multiple limit flags were added to the GET query as reported in Issue 353, this has been fixed
- No endpoint is available for FileSet snapshots, working has been created Issue 393
- DetailedObject parameter has been added to Get-RubrikFileSet function to retrieve all object properties
- Incorrect endpoint was used for Oracle database in combination Get-RubrikSnapshot Issue 394
- Added ability to specify allowed backup window settings, both for the first full backup and subsequent incremental backups in New-RubrikSLA to address Issue 365
- Added ability to specify allowed backup window settings, both for the first full backup and subsequent incremental backups in Set-RubrikSLA to address Issue 366
- Added Unit Tests for Get-RubrikMount, Set-RubrikMount, New-RubrikMount, Remove-RubrikMount, Set-RubrikBlackout, Get-RubrikSupportTunnel, Set-RubrikSupportTunnel, Get-RubrikVersion, Get-RubrikAPIVersion and Get-RubrikSoftwareVersion
- Added filtering abilities in Get-RubrikAPIData to support id and vmid filtering in the Get-RubrikMount cmdlet
- Resolves Issue 346
- Added unit tests for Get-RubrikDatabase, Get-RubrikDatabaseFiles, Get-RubrikDatabaseMount, Get-RubrikDatabaseRecoverableRange, New-RubrikDatabaseMount, Protect-RubrikDatabase, Remove-RubrikDatabaseMount, Restore-RubrikDatabase, Set-RubrikDatabase, Get-RubrikSQLInstance, Set-RubrikSQLInstace
- Minor changes to the cmdlets listed above so they will pass new unit tests
- Added unit tests for Get-RubrikSLA, New-RubrikSLA, Remove-RubrikSLA
- Added Userid to RubrikConnection variable when connecting using an API-token
- Resolves Issue 381
- Added ability to specify advanced SLA configuration settings introduced in 5.0 on New-RubrikSLA to address Issue 304
- Changed -HourlyFrequency to take input in days or weeks instead of hours
- Added new
Register-RubrikBackupService
cmdlet to register the Rubrik Backup Service installed on the specified VM with the Rubrik cluster. This addresses issue 219. Like in the UI, there is a delay between the successful execution of the command and the actual registration of RBS.
- Added new
New-RubrikBootstrap
function to send a Rubrik Bootstrap Request - Added new
Get-RubrikBootstrap
function that Connects to the Rubrik cluster and retrieves the bootstrap process progress - Created a templates folder with examples of Rubrik bootstrap
- Added validation step for token, a query is executed against the cluster endpoint to validate the token
- Get-RubrikAPIToken pwsh 5 bug fixed
- Changed output type for http status codes and errors to PSCustomObject
- Added new
Set-RubrikSLA
cmdlet to update an existing SLA Domain. This addresses issue 283
- Get-RubrikReportData now correctly returns all data
- Performance of JSON parsing improved for PowerShell 6 and later
- Added unit tests for Get-RubrikManagedVolume, Get-RubrikManagedVolumeExport, Get-RubrikVolumeGroup, Get-RubrikVolumeGroupMount, New-RubrikManagedVolume, New-RubrikManagedVolumeExport, New-RubrikVolumeGroupMount, Remove-RubrikManagedVolume, Remove-RubrikManagedVolumeExport, Remove-RubrikVolumeGroupMount, Set-RubrikManagedVolume, Start-RubrikManagedVolumeSnapshot, Start-RubrikManagedVolumeSnapshot to address Issue 340
- Note - Set-RubrikVolumeFilterDriver already contained a unit test.
- Added global attribute 'authType' to $rubrikconnection to remove reliance on userId.
- Added logic to disconnect to address the deletion of tokens when using token based authenticaion as per Issue 363
- Added unit tests for Update-RubrikHost and Update-RubrikvCenter to address Issue 339
- Added ability to specify -DetailedObject on Get-RubrikDatabase to address Issue 354
- Added unit tests for Get-RubrikHyperVVM, Get-RubrikNutanixVM, Move-RubrikMountVMDK, New-RubrikVMDKMount, Protect-RubrikHyperVVM ,Protect-RubrikNutanixVM. Protect-RubrikVM, Set-RubrikHyperVVM, Set-RubrikNutanixVM, Set-RubrikVM
- Minor updates to parameter configurations of Get-RubrikHyperVVM, Get-RubrikNutanixVM, Move-RubrikMountVMDK, New-RubrikVMDKMount, Protect-RubrikHyperVVM ,Protect-RubrikNutanixVM. Protect-RubrikVM, Set-RubrikHyperVVM, Set-RubrikNutanixVM, Set-RubrikVM so they pass associated unit tests
- Parameter now has 3 states -Relic -Relic:$false or not specified
- Added Unit Tests for Export-RubrikReport & Export-RubrikDatabase to address Issue 333
- To improve PowerShell 6, and onwards compatibility we have standardized on using | Out-Null
- Added examples of how to do Full backups of Oracle and MSSQL databases
- Added a 4th option for downloading and distributing the Rubrik SDK for PowerShell
- Added -DetailedObject to Get-RubrikVM in order to return the snapshots
- Added a third annotation to store the date of the latest Rubrik snapshot.
- Added associated unit tests for Sync-RubrikAnnotation
- Cmdlet will now display a warning if -ForceFull is set on any other protected object other than Oracle or SQL databases.
- This is just a warning and the cmdlet will continue to run, performing an incremental backup.
- This addresses 315
- modified Protect-RubrikTag in order to ignore relic's when retrieving the vCenter UUID.
- Addresses Issue 311
- added associated Unit test for the cmdlet.
- Added unit test for Get-RubrikHost cmdlet
- Added Get-RubrikAPIToken cmdlet to address 321 and associated unit test.
- Added support for Oracle to New-RubrikSnapshot
- Added tests for New-RubrikSnapshot
- Added formating around $result to convert to an array in order to support -DetailedObject with older versions of Powershell. Addresses 319
- Added New-RubrikAPIToken cmdlet to address 316 and associated unit test.
- Added Remove-RubrikAPIToken cmdlet to address 316 and associated unit test.
- Added Get-RubrikOracleDB cmdlet to address 255 and associated unit test
- Added Remove-RubrikVMSnapshot cmdlet to address 148 and associated unit test
- Updated Invoke-RubrikWebRequest so the HTTP status code returned from the API call is displayed when verbose logging is enabled
- Updated Submit-Request to handle
Delete
API calls differently than other calls. PreviouslyDelete
operations did not surface any status to the user. With this change, the HTTP response code is checked to verify it matches the expected response. If so, it returns a PSObject with the HTTP code and Status = 'Success'.
- Added new
Update-RubrikVMwareVM
cmdlet to refresh a single VMware VM's metadata. This addresses issue 305
- Added Export-RubrikVM cmdlet to address Issue 239. Since the cmdlet requires IDs for both a VMware datastore and a VMware host, 2 other cmdlets were developed, Get-RubrikVMwareDatastore and Get-RubrikVMwareHost to make the whole process easier.
- Resolved bug in New-RubrikVMDKMount, thanks @Pierre-PvF
- Added Set-RubrikVolumeFilterDriver cmdlet to support the installation/uninstallation of the Rubrik VFD on registered Windows hosts as per reported in Issue 291. Set-RubrikVolumeFilterDriver takes an array of string (hostIds) and an installed (true/false) parameter to determine whether to install or uninstall the VFD on the given hosts.
- Added a DetailedObject switch (similar to that on Get-RubrikVM) to the Get-RubrikHost cmdlet in order to grab more information when not querying by hostID. This allows for more information to be returned by the API (IE hostVfdDriverState, hostVfdEnabled). This way users could query Rubrik hosts by name, check installation status, and pipe id's to the new Set-RubrikVolumeFilterDriver cmdlet for VFD installation.
- Added
-ApplicationTag
parameter support to New-RubrikManagedVolume so users can specify which application the managed volume will be used for. This addresses issue 285.
- Updated Move-RubrikMountVMDK and Test-DateDifference to resolve bugs reported in 250. Move-RubrikMountVMDK will try to find the snapshot closest to the date specified, within one day. Any valid PowerShell
datetime
formatted string will be accepted as an input, but greater specificity will lead to a much better chance of matching the intended snapshot.
- Added -name parameter to Get-RubrikOrganization
- Updated Get-RubrikDatabase, Get-RubrikFileset, Get-RubrikHyperVVM, GetRubrikNutanixVM and Get-RubrikVolumeGroup to address issue 223. Calls to Test-RubrikSLA were inadvertently overwriting the $SLAID variable, causing the paramater to be ignored.
- Added Custom User Agent value to HTTP headers in Connect-Rubrik function
- Get-RubrikOrganization will only return an exact match as per 224
- Updated documentation to fix errors on Protect-RubrikVM entry as per 162
- Updated Typo in Quickstart Documentation
- Added parameter sets and parameter validation to Get-RubrikVM
- Added ValidateNullNotEmpty to selected parameters in Get-RubrikVM
- Added additional 5 tests to validate parameters sets and validation work as intended
- Updated example 2 in comment-based help of Invoke-RubrikRESTCall
- Added -DetailedObject parameter for Get-RubrikVM
- Prevent Get-RubrikVM $SLAID parameter value overwrite when it has a value as per 165
Set-RubrikSupportTunnel
- Modifies the configuration of the Support Tunnel.Get-RubrikSupportTunnel
- Checks the status of the Support Tunnel.- This Changelog - moving forward, related changes will be documented here in an easy to read format for human eyeballs.
- Dynamic documentation creation via GitBook.
- GitHub Pull Request Template.
- GitHub Issue Template.
- Invoke-RubrikRESTCall.
- TLS v1.2 support triggered during the usage of
Connect-Rubrik
. Get-RubrikLDAPSettings
- Checks all LDAP server settingsGet-RubrikSettings
- Checks cluster settingsGet-RubrikVCenter
- Checks all vCenter server settingsNew-RubrikLDAPSettings
- Creates new LDAP server connectionNew-RubrikVCenter
- Creates new vCenter server connectionRemove-RubrikVCenter
- Removes vCenter server connectionSet-RubrikSettings
- Modifes cluster settingsSet-RubrikVCenter
- Modifies vCenter server connection settings
- Track
user_error
responses in theSubmit-Request
private function - The
Get-RubrikSnapshot
function supports HyperV VMs. - Updated API Data for 4.1 against
Get-RubrikReport
andGet-RubrikReportData
. - Modified
Get-RubrikAPIData
to use RCDM versions instead of API versions.
- Dynamic documentation using ReadTheDocs and reStructuredText.
- Removed old session endpoint data from
Connect-Rubrik
used by RCDM versions 1.x and 2.x.