Skip to content

Bug fix for update circuit billing type #2068

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Apr 26, 2016
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 @@ -88,7 +88,7 @@
<HintPath>..\..\..\packages\Microsoft.WindowsAzure.Management.4.1.1\lib\net40\Microsoft.WindowsAzure.Management.dll</HintPath>
</Reference>
<Reference Include="Microsoft.WindowsAzure.Management.ExpressRoute">
<HintPath>..\..\..\packages\Microsoft.WindowsAzure.Management.ExpressRoute.0.18.14-preview\lib\net40\Microsoft.WindowsAzure.Management.ExpressRoute.dll</HintPath>
<HintPath>..\..\..\packages\Microsoft.WindowsAzure.Management.ExpressRoute.0.19.0-preview\lib\net40\Microsoft.WindowsAzure.Management.ExpressRoute.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,19 +33,23 @@ public class SetAzureDedicatedCircuitPropertiesCommand : ExpressRouteBaseCmdlet
[Parameter(Mandatory = false, ValueFromPipelineByPropertyName = true, HelpMessage = "Circuit Sku")]
public CircuitSku? Sku { get; set; }

[Parameter(Mandatory = false, ValueFromPipelineByPropertyName = true, HelpMessage = "Circuit Billing Type")]
[ValidateSet("MeteredData", "UnlimitedData", IgnoreCase = true)]
public BillingType? BillingType { get; set; }

[Parameter(HelpMessage = "Do not confirm Azure Dedicated Circuit Update")]
public SwitchParameter Force { get; set; }

public override void ExecuteCmdlet()
{
ConfirmAction(
Force.IsPresent,
string.Format(Resources.SetAzureDedicatedCircuitBandwidthWarning, ServiceKey, Bandwidth),
string.Format(Resources.SetAzureDedicatedCircuitBandwidthWarning, ServiceKey, Bandwidth, Sku, BillingType),
Resources.SetAzureDedicatedCircuitBandwidthMessage,
ServiceKey.ToString(),
() =>
{
var circuit = ExpressRouteClient.SetAzureDedicatedCircuitProperties(ServiceKey, Bandwidth, Sku);
var circuit = ExpressRouteClient.SetAzureDedicatedCircuitProperties(ServiceKey, Bandwidth, Sku, BillingType);

WriteObject(circuit);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ public IEnumerable<AzureDedicatedCircuit> ListAzureDedicatedCircuit()
return (Client.DedicatedCircuits.List().DedicatedCircuits);
}

public AzureDedicatedCircuit SetAzureDedicatedCircuitProperties(Guid serviceKey, UInt32? bandwidth, CircuitSku? sku)
public AzureDedicatedCircuit SetAzureDedicatedCircuitProperties(Guid serviceKey, UInt32? bandwidth, CircuitSku? sku, BillingType? billingType)
{
var updateParams = new DedicatedCircuitUpdateParameters() { };

Expand All @@ -181,6 +181,11 @@ public AzureDedicatedCircuit SetAzureDedicatedCircuitProperties(Guid serviceKey,
updateParams.Sku = sku.Value.ToString();
}

if (billingType.HasValue)
{
updateParams.BillingType = billingType.Value;
}

var result = Client.DedicatedCircuits.Update(serviceKey.ToString(), updateParams);

if (result.HttpStatusCode.Equals(HttpStatusCode.OK))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@
<package id="Microsoft.Rest.ClientRuntime" version="2.1.0" targetFramework="net45" />
<package id="Microsoft.Rest.ClientRuntime.Azure.Authentication" version="2.0.1-preview" targetFramework="net45" />
<package id="Microsoft.WindowsAzure.Management" version="4.1.1" targetFramework="net45" />
<package id="Microsoft.WindowsAzure.Management.ExpressRoute" version="0.18.14-preview" targetFramework="net45" />
<package id="Microsoft.WindowsAzure.Management.ExpressRoute" version="0.19.0-preview" targetFramework="net45" />
<package id="Newtonsoft.Json" version="6.0.8" targetFramework="net45" />
</packages>
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@
<HintPath>..\..\..\packages\Microsoft.WindowsAzure.Management.Compute.12.6.0\lib\net40\Microsoft.WindowsAzure.Management.Compute.dll</HintPath>
</Reference>
<Reference Include="Microsoft.WindowsAzure.Management.ExpressRoute, Version=0.9.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.WindowsAzure.Management.ExpressRoute.0.18.14-preview\lib\net40\Microsoft.WindowsAzure.Management.ExpressRoute.dll</HintPath>
<HintPath>..\..\..\packages\Microsoft.WindowsAzure.Management.ExpressRoute.0.19.0-preview\lib\net40\Microsoft.WindowsAzure.Management.ExpressRoute.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.WindowsAzure.Management.MediaServices">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,8 @@ public void NewAzureDedicatedCircuitSuccessful()
string serviceProviderName = "TestProvider";
string location = "us-west";
string serviceKey = "aa28cd19-b10a-41ff-981b-53c6bbf15ead";
BillingType billingType = BillingType.UnlimitedData;
BillingType billingType = BillingType.MeteredData;
CircuitSku sku = CircuitSku.Premium;

MockCommandRuntime mockCommandRuntime = new MockCommandRuntime();
Mock<ExpressRouteManagementClient> client = InitExpressRouteManagementClient();
Expand All @@ -75,6 +76,7 @@ public void NewAzureDedicatedCircuitSuccessful()
ServiceKey = serviceKey,
ServiceProviderProvisioningState = ProviderProvisioningState.NotProvisioned,
Status = DedicatedCircuitState.Enabled,
Sku = sku
},
RequestId = "",
StatusCode = new HttpStatusCode()
Expand All @@ -91,8 +93,25 @@ public void NewAzureDedicatedCircuitSuccessful()
var tNew = new Task<ExpressRouteOperationStatusResponse>(() => expectedStatus);
tNew.Start();

dcMock.Setup(f => f.NewAsync(It.Is<DedicatedCircuitNewParameters>(x => x.Bandwidth == bandwidth && x.CircuitName == circuitName && x.Location == location && x.ServiceProviderName == serviceProviderName), It.IsAny<CancellationToken>())).Returns((DedicatedCircuitNewParameters param, CancellationToken cancellation) => tNew);
ExpressRouteOperationStatusResponse expectedUpdateStatus = new ExpressRouteOperationStatusResponse()
{
HttpStatusCode = HttpStatusCode.OK,
Data = serviceKey
};

var tUpdate = new Task<ExpressRouteOperationStatusResponse>(() => expectedUpdateStatus);
tUpdate.Start();

dcMock.Setup(f => f.NewAsync(It.Is<DedicatedCircuitNewParameters>(x => x.Bandwidth == bandwidth &&
x.CircuitName == circuitName && x.Location == location && x.ServiceProviderName == serviceProviderName),
It.IsAny<CancellationToken>())).Returns((DedicatedCircuitNewParameters param, CancellationToken cancellation) => tNew);

dcMock.Setup(f => f.GetAsync(It.Is<string>(sKey => sKey == serviceKey), It.IsAny<CancellationToken>())).Returns((string sKey, CancellationToken cancellation) => tGet);

dcMock.Setup(f => f.UpdateAsync(It.Is<string>(sKey => sKey == serviceKey),
It.Is<DedicatedCircuitUpdateParameters>(y => y.Bandwidth == bandwidth.ToString() && y.BillingType == billingType && y.Sku == sku.ToString()),
It.IsAny<CancellationToken>())).Returns((string sKey, DedicatedCircuitUpdateParameters updateParam,
CancellationToken cancellation) => tUpdate);
client.SetupGet(f => f.DedicatedCircuits).Returns(dcMock.Object);

NewAzureDedicatedCircuitCommand cmdlet = new NewAzureDedicatedCircuitCommand()
Expand All @@ -102,6 +121,7 @@ public void NewAzureDedicatedCircuitSuccessful()
BillingType = billingType,
Location = location,
ServiceProviderName = serviceProviderName,
Sku = sku,
CommandRuntime = mockCommandRuntime,
ExpressRouteClient = new ExpressRouteClient(client.Object)
};
Expand All @@ -118,6 +138,28 @@ public void NewAzureDedicatedCircuitSuccessful()
Assert.Equal(expected.DedicatedCircuit.ServiceProviderProvisioningState, actual.ServiceProviderProvisioningState);
Assert.Equal(expected.DedicatedCircuit.Status, actual.Status);
Assert.Equal<string>(expected.DedicatedCircuit.ServiceKey, actual.ServiceKey);
Assert.Equal<CircuitSku>(expected.DedicatedCircuit.Sku, actual.Sku);

SetAzureDedicatedCircuitPropertiesCommand setCmdlet = new SetAzureDedicatedCircuitPropertiesCommand()
{
ServiceKey = Guid.Parse(actual.ServiceKey),
Bandwidth = bandwidth,
BillingType = billingType,
Sku = sku,
CommandRuntime = mockCommandRuntime,
ExpressRouteClient = new ExpressRouteClient(client.Object)
};
setCmdlet.ExecuteCmdlet();
actual = mockCommandRuntime.OutputPipeline[0] as AzureDedicatedCircuit;
Assert.Equal<string>(expected.DedicatedCircuit.CircuitName, actual.CircuitName);
Assert.Equal<string>(expected.DedicatedCircuit.BillingType, actual.BillingType);
Assert.Equal<uint>(expected.DedicatedCircuit.Bandwidth, actual.Bandwidth);
Assert.Equal<string>(expected.DedicatedCircuit.Location, actual.Location);
Assert.Equal<string>(expected.DedicatedCircuit.ServiceProviderName, actual.ServiceProviderName);
Assert.Equal(expected.DedicatedCircuit.ServiceProviderProvisioningState, actual.ServiceProviderProvisioningState);
Assert.Equal(expected.DedicatedCircuit.Status, actual.Status);
Assert.Equal<string>(expected.DedicatedCircuit.ServiceKey, actual.ServiceKey);
Assert.Equal<CircuitSku>(expected.DedicatedCircuit.Sku, actual.Sku);
}

[Fact]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<package id="Microsoft.WindowsAzure.ConfigurationManager" version="3.2.0" targetFramework="net45" />
<package id="Microsoft.WindowsAzure.Management" version="4.1.1" targetFramework="net45" />
<package id="Microsoft.WindowsAzure.Management.Compute" version="12.6.0" targetFramework="net45" />
<package id="Microsoft.WindowsAzure.Management.ExpressRoute" version="0.18.14-preview" targetFramework="net45" />
<package id="Microsoft.WindowsAzure.Management.ExpressRoute" version="0.19.0-preview" targetFramework="net45" />
<package id="Microsoft.WindowsAzure.Management.MediaServices" version="4.0.0" targetFramework="net45" />
<package id="Microsoft.WindowsAzure.Management.ServiceBus" version="0.18.0-preview" targetFramework="net45" />
<package id="Microsoft.WindowsAzure.Management.Storage" version="5.1.1" targetFramework="net45" />
Expand Down