Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 16 additions & 4 deletions src/Sql/Sql.Test/ScenarioTests/DatabaseBackupTests.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -444,40 +444,52 @@ function Test-ShortTermRetentionPolicy

# Test default parameter set
$retention = 28
$policy = Set-AzureRmSqlDatabaseBackupShortTermRetentionPolicy -ResourceGroupName $rg.ResourceGroupName -ServerName $server.ServerName -DatabaseName $databaseName -RetentionDays $retention
$diffbackupinterval = 24
$policy = Set-AzureRmSqlDatabaseBackupShortTermRetentionPolicy -ResourceGroupName $rg.ResourceGroupName -ServerName $server.ServerName -DatabaseName $databaseName -RetentionDays $retention -DiffBackupIntervalInHours $diffbackupinterval
Assert-AreEqual $policy.Count 1
Assert-AreEqual $retention $policy[0].RetentionDays
Assert-AreEqual $retention $policy[0].DiffBackupIntervalInHours
$policy = Get-AzureRmSqlDatabaseBackupShortTermRetentionPolicy -ResourceGroupName $rg.ResourceGroupName -ServerName $server.ServerName -DatabaseName $databaseName
Assert-AreEqual $policy.Count 1
Assert-AreEqual $retention $policy[0].RetentionDays
Assert-AreEqual $retention $policy[0].DiffBackupIntervalInHours

# Test InputObject
$retention = 21
$policy = Set-AzureRmSqlDatabaseBackupShortTermRetentionPolicy -AzureSqlDatabase $db -RetentionDays $retention
$diffbackupinterval = 12
$policy = Set-AzureRmSqlDatabaseBackupShortTermRetentionPolicy -AzureSqlDatabase $db -RetentionDays $retention -DiffBackupIntervalInHours $diffbackupinterval
Assert-AreEqual 1 $policy.Count
Assert-AreEqual $retention $policy[0].RetentionDays
Assert-AreEqual $retention $policy[0].DiffBackupIntervalInHours
$policy = Get-AzureRmSqlDatabaseBackupShortTermRetentionPolicy -AzureSqlDatabase $db
Assert-AreEqual 1 $policy.Count
Assert-AreEqual $retention $policy[0].RetentionDays
Assert-AreEqual $retention $policy[0].DiffBackupIntervalInHours

# Test ResourceId
$retention = 14
$diffbackupinterval = 24
$resourceId = $db.ResourceId + "/backupShortTermRetentionPolicies/default"
$policy = Set-AzureRmSqlDatabaseBackupShortTermRetentionPolicy -ResourceId $resourceId -RetentionDays $retention
$policy = Set-AzureRmSqlDatabaseBackupShortTermRetentionPolicy -ResourceId $resourceId -RetentionDays $retention -DiffBackupIntervalInHours $diffbackupinterval
Assert-AreEqual 1 $policy.Count
Assert-AreEqual $retention $policy[0].RetentionDays
Assert-AreEqual $retention $policy[0].DiffBackupIntervalInHours
$policy = Get-AzureRmSqlDatabaseBackupShortTermRetentionPolicy -ResourceId $resourceId
Assert-AreEqual 1 $policy.Count
Assert-AreEqual $retention $policy[0].RetentionDays
Assert-AreEqual $retention $policy[0].DiffBackupIntervalInHours

# Test Piping
$retention = 7
$policy = $db | Set-AzureRmSqlDatabaseBackupShortTermRetentionPolicy -RetentionDays $retention
$diffbackupinterval = 12
$policy = $db | Set-AzureRmSqlDatabaseBackupShortTermRetentionPolicy -RetentionDays $retention -DiffBackupIntervalInHours $diffbackupinterval
Assert-AreEqual 1 $policy.Count
Assert-AreEqual $retention $policy[0].RetentionDays
Assert-AreEqual $retention $policy[0].DiffBackupIntervalInHours
$policy = $db | Get-AzureRmSqlDatabaseBackupShortTermRetentionPolicy
Assert-AreEqual 1 $policy.Count
Assert-AreEqual $retention $policy[0].RetentionDays
Assert-AreEqual $retention $policy[0].DiffBackupIntervalInHours
}
finally
{
Expand Down
4 changes: 3 additions & 1 deletion src/Sql/Sql.Test/Sql.Test.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@
<PackageReference Include="Microsoft.Azure.KeyVault.WebKey" Version="3.0.1" />
<PackageReference Include="Microsoft.Azure.Management.KeyVault" Version="3.0.0" />
<PackageReference Include="Microsoft.Azure.Management.OperationalInsights" Version="0.21.0-preview" />
<PackageReference Include="Microsoft.Azure.Management.Sql" Version="1.44.0-preview" />
<Reference Include="Microsoft.Azure.Management.Sql">
<HintPath>..\..\..\..\azure-sdk-for-net\artifacts\bin\Microsoft.Azure.Management.Sql\Debug\net461\Microsoft.Azure.Management.Sql.dll</HintPath>
</Reference>
</ItemGroup>

<ItemGroup>
Expand Down
4 changes: 1 addition & 3 deletions src/Sql/Sql/ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,7 @@
- Additional information about change #1
-->
## Upcoming Release
* Added BackupStorageRedundancy to `New-AzSqlInstance` and `Get-AzSqlInstance`
* Added cmdlet `Get-AzSqlServerActiveDirectoryOnlyAuthentication`
* Added cmdlet `Enable-AzSqlServerActiveDirectoryOnlyAuthentication`
* Added DiffBackupIntervalInHours to `Set-AzSqlDatabaseBackupShortTermRetentionPolicy`
Copy link
Member

@isra-fel isra-fel Oct 19, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just noticed that the change logs of past versions were deleted accidently in this PR. Please be careful when you submit another PR. Thanks


## Version 2.9.1
* Fixed potential server name case insensitive error in `New-AzSqlServer` and `Set-AzSqlServer`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,16 @@ public class SetAzureRmSqlDatabaseBackupShortTermRetentionPolicy : AzureSqlDatab
/// Gets or sets backup retention days.
/// </summary>
[Parameter(Mandatory = true,
Position = 3,
HelpMessage = "The backup retention setting, in days.")]
[ValidateNotNullOrEmpty]
public int RetentionDays{ get; set; }
public int? RetentionDays { get; set; }

/// <summary>
/// Gets or sets differential backup interval hours.
/// </summary>
[Parameter(Mandatory = true,
HelpMessage = "The differential backup interval, in hours.")]
public int? DiffBackupIntervalInHours { get; set; }

/// <summary>
/// Get the entities from the service
/// </summary>
Expand Down Expand Up @@ -64,7 +69,7 @@ protected override IEnumerable<AzureSqlDatabaseBackupShortTermRetentionPolicyMod
ResourceGroupName,
ServerName,
DatabaseName,
new Management.Sql.Models.BackupShortTermRetentionPolicy(retentionDays: RetentionDays))
new Management.Sql.Models.BackupShortTermRetentionPolicy(retentionDays: RetentionDays, diffBackupIntervalInHours: DiffBackupIntervalInHours))
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
// limitations under the License.
// ----------------------------------------------------------------------------------

using System;

namespace Microsoft.Azure.Commands.Sql.Backup.Model
{
public class AzureSqlDatabaseBackupShortTermRetentionPolicyModel
Expand All @@ -34,7 +36,12 @@ public class AzureSqlDatabaseBackupShortTermRetentionPolicyModel
/// <summary>
/// Gets or sets the retention days of this policy.
/// </summary>
public int RetentionDays { get; set; }
public int? RetentionDays { get; set; }

/// <summary>
/// Gets or sets the differential backup interval of this policy.
/// </summary>
public int? DiffBackupIntervalInHours { get; set; }

/// <summary>
/// Construct AzureSqlDatabaseBackupShortTermRetentionPolicyModel from Management.Sql.BackupShortTermRetentionPolicy object
Expand All @@ -44,10 +51,16 @@ public class AzureSqlDatabaseBackupShortTermRetentionPolicyModel
/// <param name="policy"></param>
public AzureSqlDatabaseBackupShortTermRetentionPolicyModel(string resourceGroup, string serverName, string databaseName, Management.Sql.Models.BackupShortTermRetentionPolicy policy)
{
if (policy.RetentionDays == null && policy.DiffBackupIntervalInHours == null)
{
throw new ArgumentException(string.Format(Microsoft.Azure.Commands.Sql.Properties.Resources.SetAzSqlDatabaseBackupShortTermRetentionInvalidParameters, "RetentionDays", "DiffBackupIntervalInHours"));
}

ResourceGroupName = resourceGroup;
ServerName = serverName;
DatabaseName = databaseName;
RetentionDays = policy.RetentionDays.Value;
DiffBackupIntervalInHours = policy.DiffBackupIntervalInHours.Value;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -581,7 +581,8 @@ internal AzureSqlDatabaseBackupShortTermRetentionPolicyModel SetDatabaseBackupSh
databaseName,
new Management.Sql.Models.BackupShortTermRetentionPolicy()
{
RetentionDays = model.RetentionDays
RetentionDays = model.RetentionDays,
DiffBackupIntervalInHours = model.DiffBackupIntervalInHours
});

return new AzureSqlDatabaseBackupShortTermRetentionPolicyModel(resourceGroup, serverName, databaseName, baPolicy);
Expand Down
15 changes: 12 additions & 3 deletions src/Sql/Sql/Properties/Resources.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions src/Sql/Sql/Properties/Resources.resx
Original file line number Diff line number Diff line change
Expand Up @@ -634,4 +634,7 @@
<data name="ServerNameInvalid" xml:space="preserve">
<value>The server name '{0}' cannot be empty or null. The server name can only be made up of lowercase letters a-z, the numbers 0-9 and the hyphen. The hyphen may not lead or trail in the server name. Please fix the server name and retry. Please contact Microsoft support if the issue persists.</value>
</data>
<data name="SetAzSqlDatabaseBackupShortTermRetentionInvalidParameters" xml:space="preserve">
<value>Parameter '{0}' and '{1}' both being null is not allowed.</value>
</data>
</root>
4 changes: 3 additions & 1 deletion src/Sql/Sql/Sql.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Azure.Management.Sql" Version="1.44.0-preview" />
<Reference Include="Microsoft.Azure.Management.Sql">
<HintPath>..\..\..\..\azure-sdk-for-net\artifacts\bin\Microsoft.Azure.Management.Sql\Debug\net461\Microsoft.Azure.Management.Sql.dll</HintPath>
</Reference>
<PackageReference Include="System.Security.Permissions" Version="4.5.0" />
</ItemGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,17 +32,17 @@ Get-AzSqlDatabaseBackupShortTermRetentionPolicy -ResourceId <String> [-DefaultPr

## DESCRIPTION
The **Get-AzSqlDatabaseBackupShortTermRetentionPolicy** cmdlet gets the short term retention policy registered to this database.
The policy is the retention period, in days, for point-in-time restore backups.
The policy is the retention period in days and differential backup interval in hours, for point-in-time restore backups.

## EXAMPLES

### Example 1
```powershell
PS C:\> Get-AzSqlDatabaseBackupShortTermRetentionPolicy -ResourceGroupName resourcegroup01 -ServerName server01 -DatabaseName database01

ResourceGroupName ServerName DatabaseName RetentionDays
----------------- ---------- ------------ -------------
resourcegroup01 server01 database01 35
ResourceGroupName ServerName DatabaseName RetentionDays DiffBackupIntervalInHours
----------------- ---------- ------------ ------------- -------------------------
resourcegroup01 server01 database01 7 24
```

This command gets the short term retention policy for database01.
Expand All @@ -51,9 +51,9 @@ This command gets the short term retention policy for database01.
```powershell
PS C:\> Get-AzSqlDatabase -ResourceGroupName resourcegroup01 -ServerName server01 -DatabaseName database01 | Get-AzSqlDatabaseBackupShortTermRetentionPolicy

ResourceGroupName ServerName DatabaseName RetentionDays
----------------- ---------- ------------ -------------
resourcegroup01 server01 database01 35
ResourceGroupName ServerName DatabaseName RetentionDays DiffBackupIntervalInHours
----------------- ---------- ------------ ------------- -------------------------
resourcegroup01 server01 database01 7 24
```

This command gets the short term retention policy for database01 via piping in a database object.
Expand Down
53 changes: 33 additions & 20 deletions src/Sql/Sql/help/Set-AzSqlDatabaseBackupShortTermRetentionPolicy.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,49 +14,49 @@ Sets a backup short term retention policy.

### PolicyByResourceServerDatabaseSet (Default)
```
Set-AzSqlDatabaseBackupShortTermRetentionPolicy [-RetentionDays] <Int32> [-ResourceGroupName] <String>
[-ServerName] <String> [-DatabaseName] <String> [-DefaultProfile <IAzureContextContainer>] [-WhatIf]
[-Confirm] [<CommonParameters>]
Set-AzSqlDatabaseBackupShortTermRetentionPolicy [-RetentionDays] <Int32> [-DiffBackupIntervalInHours] <Int32>
[-ResourceGroupName] <String> [-ServerName] <String> [-DatabaseName] <String> [-DefaultProfile <IAzureContextContainer>]
[-WhatIf] [-Confirm] [<CommonParameters>]
```

### PolicyByInputObjectSet
```
Set-AzSqlDatabaseBackupShortTermRetentionPolicy [-RetentionDays] <Int32>
Set-AzSqlDatabaseBackupShortTermRetentionPolicy [-RetentionDays] <Int32> [-DiffBackupIntervalInHours] <Int32>
-AzureSqlDatabaseObject <AzureSqlDatabaseModel> [-DefaultProfile <IAzureContextContainer>] [-WhatIf]
[-Confirm] [<CommonParameters>]
```

### PolicyByResourceIdSet
```
Set-AzSqlDatabaseBackupShortTermRetentionPolicy [-RetentionDays] <Int32> -ResourceId <String>
[-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
Set-AzSqlDatabaseBackupShortTermRetentionPolicy [-RetentionDays] <Int32> [-DiffBackupIntervalInHours] <Int32>
-ResourceId <String> [-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
```

## DESCRIPTION
The **Set-AzSqlDatabaseBackupShortTermRetentionPolicy** cmdlet gets the short term retention policy registered to this database.
The policy is the retention period, in days, for point-in-time restore backups.
The **Set-AzSqlDatabaseBackupShortTermRetentionPolicy** cmdlet sets the short term retention policy registered to this database.
The policy is the retention period in days and differential backup interval in hours, for point-in-time restore backups.

## EXAMPLES

### Example 1
```powershell
PS C:\> Set-AzSqlDatabaseBackupShortTermRetentionPolicy -ResourceGroupName resourcegroup01 -ServerName server01 -DatabaseName database01 -RetentionDays 35
ResourceGroupName ServerName DatabaseName RetentionDays
----------------- ---------- ------------ -------------
resourcegroup01 server01 database01 35
PS C:\> Set-AzSqlDatabaseBackupShortTermRetentionPolicy -ResourceGroupName resourcegroup01 -ServerName server01 -DatabaseName database01 -RetentionDays 35 -DiffBackupIntervalInHours 24
ResourceGroupName ServerName DatabaseName RetentionDays DiffBackupIntervalInHours
----------------- ---------- ------------ ------------- -------------------------
resourcegroup01 server01 database01 7 24
```

This command sets the short term retention policy for database01 to 35 days.
This command sets the short term retention policy for database01 to 7 retention days and 24 differential backup interval hours.

### Example 2
```powershell
PS C:\> Get-AzSqlDatabase -ResourceGroupName resourcegroup01 -ServerName server01 -DatabaseName database01 | Set-AzSqlDatabaseBackupShortTermRetentionPolicy -RetentionDays 35
ResourceGroupName ServerName DatabaseName RetentionDays
----------------- ---------- ------------ -------------
resourcegroup01 server01 database01 35
PS C:\> Get-AzSqlDatabase -ResourceGroupName resourcegroup01 -ServerName server01 -DatabaseName database01 | Set-AzSqlDatabaseBackupShortTermRetentionPolicy -RetentionDays 35 -DiffBackupIntervalInHours 24
ResourceGroupName ServerName DatabaseName RetentionDays DiffBackupIntervalInHours
----------------- ---------- ------------ ------------- ------------------------
resourcegroup01 server01 database01 7 24
```

This command sets the short term retention policy for database01 to 35 days via piping in a database object.
This command sets the short term retention policy for database01 to 7 retention days and 24 differential backup interval hours via piping in a database object.

## PARAMETERS

Expand Down Expand Up @@ -144,8 +144,21 @@ Parameter Sets: (All)
Aliases:

Required: True
Position: 3
Default value: None
Default value: 7
Accept pipeline input: False
Accept wildcard characters: False
```

### -DiffBackupIntervalInHours
The differential backup interval, in hours.

```yaml
Type: System.Int32
Parameter Sets: (All)
Aliases:

Required: True
Default value: 24
Accept pipeline input: False
Accept wildcard characters: False
```
Expand Down