Skip to content

Commit 1246f4a

Browse files
committed
Merge pull request #2068 from dihan0604/dev
Bug fix for update circuit billing type
2 parents 40ff809 + 540a2bb commit 1246f4a

File tree

7 files changed

+60
-9
lines changed

7 files changed

+60
-9
lines changed

src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/Commands.ExpressRoute.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@
8888
<HintPath>..\..\..\packages\Microsoft.WindowsAzure.Management.4.1.1\lib\net40\Microsoft.WindowsAzure.Management.dll</HintPath>
8989
</Reference>
9090
<Reference Include="Microsoft.WindowsAzure.Management.ExpressRoute">
91-
<HintPath>..\..\..\packages\Microsoft.WindowsAzure.Management.ExpressRoute.0.18.14-preview\lib\net40\Microsoft.WindowsAzure.Management.ExpressRoute.dll</HintPath>
91+
<HintPath>..\..\..\packages\Microsoft.WindowsAzure.Management.ExpressRoute.0.19.0-preview\lib\net40\Microsoft.WindowsAzure.Management.ExpressRoute.dll</HintPath>
9292
<Private>True</Private>
9393
</Reference>
9494
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">

src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/DedicatedCircuitProperties/SetAzureDedicatedCircuitProperties.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,23 @@ public class SetAzureDedicatedCircuitPropertiesCommand : ExpressRouteBaseCmdlet
3333
[Parameter(Mandatory = false, ValueFromPipelineByPropertyName = true, HelpMessage = "Circuit Sku")]
3434
public CircuitSku? Sku { get; set; }
3535

36+
[Parameter(Mandatory = false, ValueFromPipelineByPropertyName = true, HelpMessage = "Circuit Billing Type")]
37+
[ValidateSet("MeteredData", "UnlimitedData", IgnoreCase = true)]
38+
public BillingType? BillingType { get; set; }
39+
3640
[Parameter(HelpMessage = "Do not confirm Azure Dedicated Circuit Update")]
3741
public SwitchParameter Force { get; set; }
3842

3943
public override void ExecuteCmdlet()
4044
{
4145
ConfirmAction(
4246
Force.IsPresent,
43-
string.Format(Resources.SetAzureDedicatedCircuitBandwidthWarning, ServiceKey, Bandwidth),
47+
string.Format(Resources.SetAzureDedicatedCircuitBandwidthWarning, ServiceKey, Bandwidth, Sku, BillingType),
4448
Resources.SetAzureDedicatedCircuitBandwidthMessage,
4549
ServiceKey.ToString(),
4650
() =>
4751
{
48-
var circuit = ExpressRouteClient.SetAzureDedicatedCircuitProperties(ServiceKey, Bandwidth, Sku);
52+
var circuit = ExpressRouteClient.SetAzureDedicatedCircuitProperties(ServiceKey, Bandwidth, Sku, BillingType);
4953

5054
WriteObject(circuit);
5155

src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/ExpressRouteClient.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ public IEnumerable<AzureDedicatedCircuit> ListAzureDedicatedCircuit()
167167
return (Client.DedicatedCircuits.List().DedicatedCircuits);
168168
}
169169

170-
public AzureDedicatedCircuit SetAzureDedicatedCircuitProperties(Guid serviceKey, UInt32? bandwidth, CircuitSku? sku)
170+
public AzureDedicatedCircuit SetAzureDedicatedCircuitProperties(Guid serviceKey, UInt32? bandwidth, CircuitSku? sku, BillingType? billingType)
171171
{
172172
var updateParams = new DedicatedCircuitUpdateParameters() { };
173173

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

184+
if (billingType.HasValue)
185+
{
186+
updateParams.BillingType = billingType.Value;
187+
}
188+
184189
var result = Client.DedicatedCircuits.Update(serviceKey.ToString(), updateParams);
185190

186191
if (result.HttpStatusCode.Equals(HttpStatusCode.OK))

src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@
1212
<package id="Microsoft.Rest.ClientRuntime" version="2.1.0" targetFramework="net45" />
1313
<package id="Microsoft.Rest.ClientRuntime.Azure.Authentication" version="2.0.1-preview" targetFramework="net45" />
1414
<package id="Microsoft.WindowsAzure.Management" version="4.1.1" targetFramework="net45" />
15-
<package id="Microsoft.WindowsAzure.Management.ExpressRoute" version="0.18.14-preview" targetFramework="net45" />
15+
<package id="Microsoft.WindowsAzure.Management.ExpressRoute" version="0.19.0-preview" targetFramework="net45" />
1616
<package id="Newtonsoft.Json" version="6.0.8" targetFramework="net45" />
1717
</packages>

src/ServiceManagement/Services/Commands.Test/Commands.Test.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@
133133
<HintPath>..\..\..\packages\Microsoft.WindowsAzure.Management.Compute.12.6.0\lib\net40\Microsoft.WindowsAzure.Management.Compute.dll</HintPath>
134134
</Reference>
135135
<Reference Include="Microsoft.WindowsAzure.Management.ExpressRoute, Version=0.9.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
136-
<HintPath>..\..\..\packages\Microsoft.WindowsAzure.Management.ExpressRoute.0.18.14-preview\lib\net40\Microsoft.WindowsAzure.Management.ExpressRoute.dll</HintPath>
136+
<HintPath>..\..\..\packages\Microsoft.WindowsAzure.Management.ExpressRoute.0.19.0-preview\lib\net40\Microsoft.WindowsAzure.Management.ExpressRoute.dll</HintPath>
137137
<Private>True</Private>
138138
</Reference>
139139
<Reference Include="Microsoft.WindowsAzure.Management.MediaServices">

src/ServiceManagement/Services/Commands.Test/ExpressRoute/AzureDedicatedCircuitTests.cs

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ public void NewAzureDedicatedCircuitSuccessful()
5656
string serviceProviderName = "TestProvider";
5757
string location = "us-west";
5858
string serviceKey = "aa28cd19-b10a-41ff-981b-53c6bbf15ead";
59-
BillingType billingType = BillingType.UnlimitedData;
59+
BillingType billingType = BillingType.MeteredData;
60+
CircuitSku sku = CircuitSku.Premium;
6061

6162
MockCommandRuntime mockCommandRuntime = new MockCommandRuntime();
6263
Mock<ExpressRouteManagementClient> client = InitExpressRouteManagementClient();
@@ -75,6 +76,7 @@ public void NewAzureDedicatedCircuitSuccessful()
7576
ServiceKey = serviceKey,
7677
ServiceProviderProvisioningState = ProviderProvisioningState.NotProvisioned,
7778
Status = DedicatedCircuitState.Enabled,
79+
Sku = sku
7880
},
7981
RequestId = "",
8082
StatusCode = new HttpStatusCode()
@@ -91,8 +93,25 @@ public void NewAzureDedicatedCircuitSuccessful()
9193
var tNew = new Task<ExpressRouteOperationStatusResponse>(() => expectedStatus);
9294
tNew.Start();
9395

94-
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);
96+
ExpressRouteOperationStatusResponse expectedUpdateStatus = new ExpressRouteOperationStatusResponse()
97+
{
98+
HttpStatusCode = HttpStatusCode.OK,
99+
Data = serviceKey
100+
};
101+
102+
var tUpdate = new Task<ExpressRouteOperationStatusResponse>(() => expectedUpdateStatus);
103+
tUpdate.Start();
104+
105+
dcMock.Setup(f => f.NewAsync(It.Is<DedicatedCircuitNewParameters>(x => x.Bandwidth == bandwidth &&
106+
x.CircuitName == circuitName && x.Location == location && x.ServiceProviderName == serviceProviderName),
107+
It.IsAny<CancellationToken>())).Returns((DedicatedCircuitNewParameters param, CancellationToken cancellation) => tNew);
108+
95109
dcMock.Setup(f => f.GetAsync(It.Is<string>(sKey => sKey == serviceKey), It.IsAny<CancellationToken>())).Returns((string sKey, CancellationToken cancellation) => tGet);
110+
111+
dcMock.Setup(f => f.UpdateAsync(It.Is<string>(sKey => sKey == serviceKey),
112+
It.Is<DedicatedCircuitUpdateParameters>(y => y.Bandwidth == bandwidth.ToString() && y.BillingType == billingType && y.Sku == sku.ToString()),
113+
It.IsAny<CancellationToken>())).Returns((string sKey, DedicatedCircuitUpdateParameters updateParam,
114+
CancellationToken cancellation) => tUpdate);
96115
client.SetupGet(f => f.DedicatedCircuits).Returns(dcMock.Object);
97116

98117
NewAzureDedicatedCircuitCommand cmdlet = new NewAzureDedicatedCircuitCommand()
@@ -102,6 +121,7 @@ public void NewAzureDedicatedCircuitSuccessful()
102121
BillingType = billingType,
103122
Location = location,
104123
ServiceProviderName = serviceProviderName,
124+
Sku = sku,
105125
CommandRuntime = mockCommandRuntime,
106126
ExpressRouteClient = new ExpressRouteClient(client.Object)
107127
};
@@ -118,6 +138,28 @@ public void NewAzureDedicatedCircuitSuccessful()
118138
Assert.Equal(expected.DedicatedCircuit.ServiceProviderProvisioningState, actual.ServiceProviderProvisioningState);
119139
Assert.Equal(expected.DedicatedCircuit.Status, actual.Status);
120140
Assert.Equal<string>(expected.DedicatedCircuit.ServiceKey, actual.ServiceKey);
141+
Assert.Equal<CircuitSku>(expected.DedicatedCircuit.Sku, actual.Sku);
142+
143+
SetAzureDedicatedCircuitPropertiesCommand setCmdlet = new SetAzureDedicatedCircuitPropertiesCommand()
144+
{
145+
ServiceKey = Guid.Parse(actual.ServiceKey),
146+
Bandwidth = bandwidth,
147+
BillingType = billingType,
148+
Sku = sku,
149+
CommandRuntime = mockCommandRuntime,
150+
ExpressRouteClient = new ExpressRouteClient(client.Object)
151+
};
152+
setCmdlet.ExecuteCmdlet();
153+
actual = mockCommandRuntime.OutputPipeline[0] as AzureDedicatedCircuit;
154+
Assert.Equal<string>(expected.DedicatedCircuit.CircuitName, actual.CircuitName);
155+
Assert.Equal<string>(expected.DedicatedCircuit.BillingType, actual.BillingType);
156+
Assert.Equal<uint>(expected.DedicatedCircuit.Bandwidth, actual.Bandwidth);
157+
Assert.Equal<string>(expected.DedicatedCircuit.Location, actual.Location);
158+
Assert.Equal<string>(expected.DedicatedCircuit.ServiceProviderName, actual.ServiceProviderName);
159+
Assert.Equal(expected.DedicatedCircuit.ServiceProviderProvisioningState, actual.ServiceProviderProvisioningState);
160+
Assert.Equal(expected.DedicatedCircuit.Status, actual.Status);
161+
Assert.Equal<string>(expected.DedicatedCircuit.ServiceKey, actual.ServiceKey);
162+
Assert.Equal<CircuitSku>(expected.DedicatedCircuit.Sku, actual.Sku);
121163
}
122164

123165
[Fact]

src/ServiceManagement/Services/Commands.Test/packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<package id="Microsoft.WindowsAzure.ConfigurationManager" version="3.2.0" targetFramework="net45" />
2121
<package id="Microsoft.WindowsAzure.Management" version="4.1.1" targetFramework="net45" />
2222
<package id="Microsoft.WindowsAzure.Management.Compute" version="12.6.0" targetFramework="net45" />
23-
<package id="Microsoft.WindowsAzure.Management.ExpressRoute" version="0.18.14-preview" targetFramework="net45" />
23+
<package id="Microsoft.WindowsAzure.Management.ExpressRoute" version="0.19.0-preview" targetFramework="net45" />
2424
<package id="Microsoft.WindowsAzure.Management.MediaServices" version="4.0.0" targetFramework="net45" />
2525
<package id="Microsoft.WindowsAzure.Management.ServiceBus" version="0.18.0-preview" targetFramework="net45" />
2626
<package id="Microsoft.WindowsAzure.Management.Storage" version="5.1.1" targetFramework="net45" />

0 commit comments

Comments
 (0)