Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using Microsoft.Azure.Management.DataLake.Analytics;
using Microsoft.Azure.Management.DataLake.Analytics.Models;
using Microsoft.Azure.Test;
using Microsoft.Rest.Azure;
using Microsoft.Rest.ClientRuntime.Azure.TestFramework;
using System;
using System.Collections.Generic;
Expand Down Expand Up @@ -236,5 +237,110 @@ public void CreateGetUpdateDeleteTest()
clientToUse.Account.Delete(commonData.ResourceGroupName, accountToChange.Name);
}
}

[Fact]
public void FirewallTest()
{
using (var context = MockContext.Start(this.GetType().FullName))
{
commonData = new CommonTestFixture(context);
var clientToUse = this.GetDataLakeAnalyticsAccountManagementClient(context);

// Create a an account with trusted ID provider and firewall rules.
var firewallStart = "127.0.0.1";
var firewallEnd = "127.0.0.2";
var firewallRuleName1 = TestUtilities.GenerateName("firerule1");
var adlaAcocunt = TestUtilities.GenerateName("adla01");
// Create a test account
var responseCreate =
clientToUse.Account.Create(commonData.ResourceGroupName, adlaAcocunt,
parameters: new DataLakeAnalyticsAccount
{
Location = commonData.Location,
DefaultDataLakeStoreAccount = commonData.DataLakeStoreAccountName,
DataLakeStoreAccounts = new List<DataLakeStoreAccountInfo>
{
new DataLakeStoreAccountInfo
{
Name = commonData.DataLakeStoreAccountName,
Suffix = commonData.DataLakeStoreAccountSuffix
}
},
FirewallRules = new List<FirewallRule>
{
new FirewallRule(firewallStart, firewallEnd, name: firewallRuleName1)
},
FirewallAllowAzureIps = FirewallAllowAzureIpsState.Enabled,
FirewallState = FirewallState.Enabled
});

Assert.Equal(DataLakeAnalyticsAccountStatus.Succeeded, responseCreate.ProvisioningState);

// get the account and ensure that all the values are properly set.
var responseGet = clientToUse.Account.Get(commonData.ResourceGroupName, adlaAcocunt);

// validate the account creation process
Assert.Equal(DataLakeAnalyticsAccountStatus.Succeeded, responseGet.ProvisioningState);
Assert.NotNull(responseCreate.Id);
Assert.NotNull(responseGet.Id);
Assert.Contains(adlaAcocunt, responseGet.Id);
Assert.Equal(commonData.Location, responseGet.Location);
Assert.Equal(adlaAcocunt, responseGet.Name);
Assert.Equal("Microsoft.DataLakeAnalytics/accounts", responseGet.Type);

// validate firewall state
Assert.Equal(FirewallState.Enabled, responseGet.FirewallState);
Assert.Equal(1, responseGet.FirewallRules.Count());
Assert.Equal(firewallStart, responseGet.FirewallRules[0].StartIpAddress);
Assert.Equal(firewallEnd, responseGet.FirewallRules[0].EndIpAddress);
Assert.Equal(firewallRuleName1, responseGet.FirewallRules[0].Name);
Assert.Equal(FirewallAllowAzureIpsState.Enabled, responseGet.FirewallAllowAzureIps);

// Test getting the specific firewall rules
var firewallRule = clientToUse.FirewallRules.Get(commonData.ResourceGroupName, adlaAcocunt, firewallRuleName1);
Assert.Equal(firewallStart, firewallRule.StartIpAddress);
Assert.Equal(firewallEnd, firewallRule.EndIpAddress);
Assert.Equal(firewallRuleName1, firewallRule.Name);


var updatedFirewallStart = "192.168.0.0";
var updatedFirewallEnd = "192.168.0.1";
firewallRule.StartIpAddress = updatedFirewallStart;
firewallRule.EndIpAddress = updatedFirewallEnd;

// Update the firewall rule to change the start/end ip addresses
firewallRule = clientToUse.FirewallRules.CreateOrUpdate(commonData.ResourceGroupName, adlaAcocunt, firewallRuleName1, firewallRule);
Assert.Equal(updatedFirewallStart, firewallRule.StartIpAddress);
Assert.Equal(updatedFirewallEnd, firewallRule.EndIpAddress);
Assert.Equal(firewallRuleName1, firewallRule.Name);

// just update the firewall rule start IP
firewallRule = clientToUse.FirewallRules.Update(
commonData.ResourceGroupName,
adlaAcocunt,
firewallRuleName1,
new UpdateFirewallRuleParameters
{
StartIpAddress = firewallStart
});

Assert.Equal(firewallStart, firewallRule.StartIpAddress);
Assert.Equal(updatedFirewallEnd, firewallRule.EndIpAddress);
Assert.Equal(firewallRuleName1, firewallRule.Name);

// Remove the firewall rule and verify it is gone.
clientToUse.FirewallRules.Delete(commonData.ResourceGroupName, adlaAcocunt, firewallRuleName1);

try
{
firewallRule = clientToUse.FirewallRules.Get(commonData.ResourceGroupName, adlaAcocunt, firewallRuleName1);
Assert.True(false, "Attempting to retrieve a deleted firewall rule did not throw.");
}
catch (CloudException e)
{
Assert.Equal(HttpStatusCode.NotFound, e.Response.StatusCode);
}
}
}
}
}

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@
"Microsoft.Rest.ClientRuntime": "[2.3.2,3.0)" ,
"Microsoft.Azure.Management.Storage": "[5.0.2-preview]",
"Microsoft.Azure.Management.ResourceManager": "1.1.3-preview",
"Microsoft.Azure.Management.DataLake.Analytics": "[1.0.1-preview,2.0.0)",
"Microsoft.Azure.Management.DataLake.Store": "[1.0.1-preview,2.0.0)",
"Microsoft.Azure.Management.DataLake.Analytics": "[2.0.1-preview, 3.0.0-preview)",
"Microsoft.Azure.Management.DataLake.Store": "[2.0.1-preview, 3.0.0-preview)",
"xunit": "2.2.0-beta2-build3300",
"dotnet-test-xunit": "2.2.0-preview2-build1029"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ internal static class DataLakeAnalyticsCustomizationHelper
/// This constant is used as the default package version to place in the user agent.
/// It should mirror the package version in the project.json file.
/// </summary>
internal const string PackageVersion = "2.0.0";
internal const string PackageVersion = "2.0.1-preview";

internal const string DefaultAdlaDnsSuffix = "azuredatalakeanalytics.net";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,11 @@ public partial class DataLakeAnalyticsAccountManagementClient : ServiceClient<Da
/// </summary>
public bool? GenerateClientRequestId { get; set; }

/// <summary>
/// Gets the IFirewallRulesOperations.
/// </summary>
public virtual IFirewallRulesOperations FirewallRules { get; private set; }

/// <summary>
/// Gets the IStorageAccountsOperations.
/// </summary>
Expand Down Expand Up @@ -295,6 +300,7 @@ internal DataLakeAnalyticsAccountManagementClient(System.Uri baseUri, ServiceCli
/// </summary>
private void Initialize()
{
FirewallRules = new FirewallRulesOperations(this);
StorageAccounts = new StorageAccountsOperations(this);
DataLakeStoreAccounts = new DataLakeStoreAccountsOperations(this);
Account = new AccountOperations(this);
Expand Down
Loading