Skip to content

Commit a76c2ca

Browse files
authored
Merge pull request #559 from Azure/dev
HPF PR: dev <- Azure:dev
2 parents 6ac24a3 + a343619 commit a76c2ca

File tree

133 files changed

+412
-288
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

133 files changed

+412
-288
lines changed

src/ResourceManager/Network/Commands.Network/Commands.Network.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,7 @@
237237
<Compile Include="ApplicationGateway\UrlPathMap\SetAzureApplicationGatewayUrlPathMapConfigCommand.cs" />
238238
<Compile Include="Common\NetworkBaseCmdlet.cs" />
239239
<Compile Include="Common\NetworkClient.cs" />
240+
<Compile Include="Common\NetworkCloudException.cs" />
240241
<Compile Include="Common\NetworkResourceManagerProfile.cs" />
241242
<Compile Include="ExpressRouteCircuit\Authorization\AddAzureExpressRouteCircuitAuthorizationCommand.cs" />
242243
<Compile Include="ExpressRouteCircuit\Authorization\AzureExpressRouteCircuitAuthorizationBase.cs" />
@@ -286,6 +287,7 @@
286287
<Compile Include="Models\PSExpressRouteServiceProviderBandwidthsOffered.cs" />
287288
<Compile Include="Models\PSExpressRouteServiceProvider.cs" />
288289
<Compile Include="Models\PSIPConfiguration.cs" />
290+
<Compile Include="Models\PSNetworkLongRunningOperation.cs" />
289291
<Compile Include="Models\PSServiceProviderProperties.cs" />
290292
<Compile Include="Models\PSPeering.cs" />
291293
<Compile Include="Models\PSPeeringConfig.cs" />

src/ResourceManager/Network/Commands.Network/Common/NetworkBaseCmdlet.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
using Microsoft.Azure.Commands.ResourceManager.Common;
1616
using System;
17+
using Microsoft.Azure.Commands.Network.Common;
1718

1819
namespace Microsoft.Azure.Commands.Network
1920
{
@@ -44,6 +45,17 @@ public override void ExecuteCmdlet()
4445
{
4546
base.ExecuteCmdlet();
4647
NetworkResourceManagerProfile.Initialize();
48+
try
49+
{
50+
Execute();
51+
}
52+
catch (Rest.Azure.CloudException ex)
53+
{
54+
throw new NetworkCloudException(ex);
55+
}
56+
}
57+
public virtual void Execute()
58+
{
4759
}
4860

4961
public static string GetResourceGroup(string resourceId)
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
// ----------------------------------------------------------------------------------
2+
//
3+
// Copyright Microsoft Corporation
4+
// Licensed under the Apache License, Version 2.0 (the "License");
5+
// you may not use this file except in compliance with the License.
6+
// You may obtain a copy of the License at
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
// Unless required by applicable law or agreed to in writing, software
9+
// distributed under the License is distributed on an "AS IS" BASIS,
10+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11+
// See the License for the specific language governing permissions and
12+
// limitations under the License.
13+
// ----------------------------------------------------------------------------------
14+
15+
16+
using Microsoft.Azure.Commands.Network.Models;
17+
using Microsoft.Azure.Management.Network.Models;
18+
using Newtonsoft.Json;
19+
using System;
20+
using System.Net;
21+
using System.Text;
22+
using System.Text.RegularExpressions;
23+
24+
namespace Microsoft.Azure.Commands.Network.Common
25+
{
26+
public class NetworkCloudException : Rest.Azure.CloudException
27+
{
28+
protected const string RequestIdHeaderInResponse = "x-ms-request-id";
29+
30+
public NetworkCloudException(Rest.Azure.CloudException ex)
31+
: base(GetErrorMessageWithRequestIdInfo(ex), ex)
32+
{
33+
}
34+
35+
protected static string GetErrorMessageWithRequestIdInfo(Rest.Azure.CloudException cloudException)
36+
{
37+
if (cloudException == null)
38+
{
39+
throw new ArgumentNullException("cloudException");
40+
}
41+
42+
var sb = new StringBuilder();
43+
44+
if (!string.IsNullOrEmpty(cloudException.Message))
45+
{
46+
sb.Append(cloudException.Message);
47+
}
48+
49+
if (cloudException.Response == null)
50+
{
51+
return sb.ToString();
52+
}
53+
54+
if (cloudException.Response.StatusCode.Equals(HttpStatusCode.OK)
55+
&& cloudException.Response.Content != null)
56+
{
57+
58+
var errorReturned = JsonConvert.DeserializeObject<PSNetworkLongRunningOperation>(
59+
cloudException.Response.Content);
60+
61+
62+
sb.AppendLine().AppendFormat("Status: {0}", errorReturned.Status);
63+
if (errorReturned.Error == null)
64+
{
65+
return sb.ToString();
66+
}
67+
68+
sb.AppendLine().AppendFormat("ErrorMessage: {0}", errorReturned.Error.Message);
69+
70+
}
71+
else
72+
{
73+
sb.AppendLine().AppendFormat("StatusCode: {0}", cloudException.Response.StatusCode.GetHashCode());
74+
sb.AppendLine().AppendFormat("ReasonPhrase: {0}", cloudException.Response.ReasonPhrase);
75+
if (cloudException.Response.Headers == null
76+
|| !cloudException.Response.Headers.ContainsKey(RequestIdHeaderInResponse))
77+
{
78+
return sb.ToString();
79+
}
80+
81+
string operationId = cloudException.RequestId;
82+
83+
sb.AppendLine().AppendFormat(
84+
"OperationID : '{0}'",
85+
operationId);
86+
}
87+
return sb.ToString();
88+
}
89+
}
90+
}
91+

src/ResourceManager/Network/Commands.Network/ExpressRouteCircuit/Authorization/AddAzureExpressRouteCircuitAuthorizationCommand.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ public class AddAzureExpressRouteCircuitAuthorizationCommand : AzureExpressRoute
3535
HelpMessage = "The ExpressRouteCircuit")]
3636
public PSExpressRouteCircuit ExpressRouteCircuit { get; set; }
3737

38-
protected override void ProcessRecord()
38+
public override void Execute()
3939
{
40-
base.ProcessRecord();
40+
base.Execute();
4141
var authorization = this.ExpressRouteCircuit.Authorizations.SingleOrDefault(resource => string.Equals(resource.Name, this.Name, System.StringComparison.CurrentCultureIgnoreCase));
4242

4343
if (authorization != null)

src/ResourceManager/Network/Commands.Network/ExpressRouteCircuit/Authorization/GetAzureExpressRouteCircuitAuthorizationCommand.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ public class GetAzureExpressRouteCircuitAuthorizationCommand : NetworkBaseCmdlet
3333
HelpMessage = "The ExpressRouteCircuit")]
3434
public PSExpressRouteCircuit ExpressRouteCircuit { get; set; }
3535

36-
protected override void ProcessRecord()
36+
public override void Execute()
3737
{
38-
base.ProcessRecord();
38+
base.Execute();
3939
if (!string.IsNullOrEmpty(this.Name))
4040
{
4141
var authorization =

src/ResourceManager/Network/Commands.Network/ExpressRouteCircuit/Authorization/NewAzureExpressRouteCircuitAuthorizationCommand.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,9 @@ public class NewAzureExpressRouteCircuitAuthorizationCommand : AzureExpressRoute
2626
[ValidateNotNullOrEmpty]
2727
public override string Name { get; set; }
2828

29-
protected override void ProcessRecord()
29+
public override void Execute()
3030
{
31-
base.ProcessRecord();
32-
31+
base.Execute();
3332
var authorization = new PSExpressRouteCircuitAuthorization();
3433

3534
authorization.Name = this.Name;

src/ResourceManager/Network/Commands.Network/ExpressRouteCircuit/Authorization/RemoveAzureExpressRouteCircuitAuthorizationCommand.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,9 @@ public class RemoveAzureExpressRouteCircuitAuthorizationCommand : NetworkBaseCmd
3333
HelpMessage = "The ExpressRouteCircuit")]
3434
public PSExpressRouteCircuit ExpressRouteCircuit { get; set; }
3535

36-
protected override void ProcessRecord()
36+
public override void Execute()
3737
{
38-
base.ProcessRecord();
39-
38+
base.Execute();
4039
var authorization = this.ExpressRouteCircuit.Authorizations.SingleOrDefault(resource => string.Equals(resource.Name, this.Name, System.StringComparison.CurrentCultureIgnoreCase));
4140

4241
if (authorization != null)

src/ResourceManager/Network/Commands.Network/ExpressRouteCircuit/GetAzureExpressRouteCircuitCommand.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ public class GetAzureExpressRouteCircuitCommand : ExpressRouteCircuitBaseCmdlet
3737
[ValidateNotNullOrEmpty]
3838
public virtual string ResourceGroupName { get; set; }
3939

40-
public override void ExecuteCmdlet()
40+
public override void Execute()
4141
{
42-
base.ExecuteCmdlet();
42+
base.Execute();
4343
if (!string.IsNullOrEmpty(this.Name))
4444
{
4545
var circuit = this.GetExpressRouteCircuit(this.ResourceGroupName, this.Name);

src/ResourceManager/Network/Commands.Network/ExpressRouteCircuit/MoveAzureExpressRouteCircuitCommand.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,9 @@ public class MoveAzureExpressRouteCircuitCommand : ExpressRouteCircuitBaseCmdlet
6666
HelpMessage = "Do not ask for confirmation if you want to overrite a resource")]
6767
public SwitchParameter Force { get; set; }
6868

69-
public override void ExecuteCmdlet()
69+
public override void Execute()
7070
{
71-
base.ExecuteCmdlet();
72-
71+
base.Execute();
7372
if (this.IsExpressRouteCircuitPresent(this.ResourceGroupName, this.Name))
7473
{
7574
ConfirmAction(

src/ResourceManager/Network/Commands.Network/ExpressRouteCircuit/NewAzureExpressRouteCircuitCommand.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,10 +111,8 @@ public class NewAzureExpressRouteCircuitCommand : ExpressRouteCircuitBaseCmdlet
111111
HelpMessage = "Do not ask for confirmation if you want to overrite a resource")]
112112
public SwitchParameter Force { get; set; }
113113

114-
public override void ExecuteCmdlet()
114+
public override void Execute()
115115
{
116-
base.ExecuteCmdlet();
117-
118116
WriteWarning("The output object type of this cmdlet will be modified in a future release. Also, the usability of Tag parameter in this cmdlet will be modified in a future release. This will impact creating, updating and appending tags for Azure resources. For more details about the change, please visit https://github.com/Azure/azure-powershell/issues/726#issuecomment-213545494");
119117

120118
if (this.IsExpressRouteCircuitPresent(this.ResourceGroupName, this.Name))
@@ -138,6 +136,7 @@ public override void ExecuteCmdlet()
138136

139137
private PSExpressRouteCircuit CreateExpressRouteCircuit()
140138
{
139+
base.Execute();
141140
var circuit = new PSExpressRouteCircuit();
142141
circuit.Name = this.Name;
143142
circuit.ResourceGroupName = this.ResourceGroupName;

src/ResourceManager/Network/Commands.Network/ExpressRouteCircuit/Peering/AddAzureExpressRouteCircuitPeeringConfigCommand.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,9 @@ public class AddAzureExpressRouteCircuitPeeringConfigCommand : AzureExpressRoute
3434
HelpMessage = "The ExpressRouteCircuit")]
3535
public PSExpressRouteCircuit ExpressRouteCircuit { get; set; }
3636

37-
public override void ExecuteCmdlet()
37+
public override void Execute()
3838
{
39-
base.ExecuteCmdlet();
40-
39+
base.Execute();
4140
// Verify if the subnet exists in the VirtualNetwork
4241
var peering = this.ExpressRouteCircuit.Peerings.SingleOrDefault(resource => string.Equals(resource.Name, this.Name, System.StringComparison.CurrentCultureIgnoreCase));
4342

src/ResourceManager/Network/Commands.Network/ExpressRouteCircuit/Peering/GetAzureExpressRouteCircuitPeeringConfigCommand.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,9 @@ public class GetAzureExpressRouteCircuitPeeringConfigCommand : NetworkBaseCmdlet
3232
HelpMessage = "The circuit")]
3333
public PSExpressRouteCircuit ExpressRouteCircuit { get; set; }
3434

35-
public override void ExecuteCmdlet()
35+
public override void Execute()
3636
{
37-
base.ExecuteCmdlet();
38-
37+
base.Execute();
3938
if (!string.IsNullOrEmpty(this.Name))
4039
{
4140
var peering =

src/ResourceManager/Network/Commands.Network/ExpressRouteCircuit/Peering/NewAzureExpressRouteCircuitPeeringConfigCommand.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,10 @@ public class NewAzureExpressRouteCircuitPeeringConfigCommand : AzureExpressRoute
2828
[ValidateNotNullOrEmpty]
2929
public override string Name { get; set; }
3030

31-
public override void ExecuteCmdlet()
31+
public override void Execute()
3232
{
33-
base.ExecuteCmdlet();
34-
35-
var peering = new PSPeering();
33+
base.Execute();
34+
var peering = new PSPeering();
3635

3736
peering.Name = this.Name;
3837
peering.PeeringType = this.PeeringType;

src/ResourceManager/Network/Commands.Network/ExpressRouteCircuit/Peering/RemoveAzureExpressRouteCircuitPeeringConfigCommand.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,9 @@ public class RemoveAzureExpressRouteCircuitPeeringConfigCommand : NetworkBaseCmd
3333
HelpMessage = "The ExpressRouteCircuit")]
3434
public PSExpressRouteCircuit ExpressRouteCircuit { get; set; }
3535

36-
public override void ExecuteCmdlet()
36+
public override void Execute()
3737
{
38-
base.ExecuteCmdlet();
39-
38+
base.Execute();
4039
var auth = this.ExpressRouteCircuit.Peerings.SingleOrDefault(resource => string.Equals(resource.Name, this.Name, System.StringComparison.CurrentCultureIgnoreCase));
4140

4241
if (auth != null)

src/ResourceManager/Network/Commands.Network/ExpressRouteCircuit/Peering/SetAzureExpressRouteCircuitPeeringConfigCommand.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,9 @@ public class SetAzureExpressRouteCircuitPeeringConfigCommand : AzureExpressRoute
3434
HelpMessage = "The ExpressRouteCircuit")]
3535
public PSExpressRouteCircuit ExpressRouteCircuit { get; set; }
3636

37-
public override void ExecuteCmdlet()
37+
public override void Execute()
3838
{
39-
base.ExecuteCmdlet();
40-
39+
base.Execute();
4140
// Verify if the subnet exists in the VirtualNetwork
4241
var peering = this.ExpressRouteCircuit.Peerings.SingleOrDefault(resource => string.Equals(resource.Name, this.Name, StringComparison.CurrentCultureIgnoreCase));
4342

src/ResourceManager/Network/Commands.Network/ExpressRouteCircuit/RemoveAzureExpressRouteCircuitCommand.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,9 @@ public class RemoveAzureExpressRouteCircuitCommand : ExpressRouteCircuitBaseCmdl
4343
[Parameter(Mandatory = false)]
4444
public SwitchParameter PassThru { get; set; }
4545

46-
public override void ExecuteCmdlet()
46+
public override void Execute()
4747
{
48-
base.ExecuteCmdlet();
49-
48+
base.Execute();
5049
ConfirmAction(
5150
Force.IsPresent,
5251
string.Format(Microsoft.Azure.Commands.Network.Properties.Resources.RemovingResource, Name),

src/ResourceManager/Network/Commands.Network/ExpressRouteCircuit/SetAzureExpressRouteCircuitCommand.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,9 @@ public class SetAzureExpressRouteCircuitCommand : ExpressRouteCircuitBaseCmdlet
3131
HelpMessage = "The ExpressRouteCircuit")]
3232
public PSExpressRouteCircuit ExpressRouteCircuit { get; set; }
3333

34-
public override void ExecuteCmdlet()
34+
public override void Execute()
3535
{
36-
base.ExecuteCmdlet();
37-
36+
base.Execute();
3837
if (!this.IsExpressRouteCircuitPresent(this.ExpressRouteCircuit.ResourceGroupName, this.ExpressRouteCircuit.Name))
3938
{
4039
throw new ArgumentException(Microsoft.Azure.Commands.Network.Properties.Resources.ResourceNotFound);

src/ResourceManager/Network/Commands.Network/ExpressRouteCircuit/Stats/GetAzureExpressRouteCircuitARPTableCommand.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public enum DevicePathEnum
3131
Secondary
3232
}
3333

34-
[Cmdlet(VerbsCommon.Get, "AzureRmExpressRouteCircuitARPTable"),OutputType(typeof(PSExpressRouteCircuitArpTable))]
34+
[Cmdlet(VerbsCommon.Get, "AzureRmExpressRouteCircuitARPTable"),OutputType(typeof(PSExpressRouteCircuitArpTable))]
3535
public class GetAzureExpressRouteCircuitARPTableCommand : NetworkBaseCmdlet
3636
{
3737
[Alias("ResourceName")]
@@ -72,9 +72,9 @@ public class GetAzureExpressRouteCircuitARPTableCommand : NetworkBaseCmdlet
7272
[ValidateNotNullOrEmpty]
7373
public DevicePathEnum DevicePath { get; set; }
7474

75-
public override void ExecuteCmdlet()
76-
{
77-
base.ExecuteCmdlet();
75+
public override void Execute()
76+
{
77+
base.Execute();
7878
var arpTables = this.NetworkClient.NetworkManagementClient.ExpressRouteCircuits.ListArpTable
7979
(ResourceGroupName, ExpressRouteCircuitName, PeeringType, DevicePath.ToString()).Value.Cast<object>().ToList();
8080
var psARPs = new List<PSExpressRouteCircuitArpTable>();

src/ResourceManager/Network/Commands.Network/ExpressRouteCircuit/Stats/GetAzureExpressRouteCircuitRouteTableCommand.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,9 @@ public class GetAzureRmExpressRouteCircuitRouteTable : NetworkBaseCmdlet
6666
[ValidateNotNullOrEmpty]
6767
public DevicePathEnum DevicePath { get; set; }
6868

69-
public override void ExecuteCmdlet()
70-
{
71-
base.ExecuteCmdlet();
69+
public override void Execute()
70+
{
71+
base.Execute();
7272
var routeTables = this.NetworkClient.NetworkManagementClient.ExpressRouteCircuits.ListRoutesTable
7373
(ResourceGroupName, ExpressRouteCircuitName, PeeringType, DevicePath.ToString()).Value.Cast<object>().ToList();
7474
var psRoutes = new List<PSExpressRouteCircuitRoutesTable>();

src/ResourceManager/Network/Commands.Network/ExpressRouteCircuit/Stats/GetAzureExpressRouteCircuitRouteTableSummaryCommand.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,9 @@ public class GetAzureRmExpressRouteCircuitRouteTableSummaryCommand : NetworkBase
6666
[ValidateNotNullOrEmpty]
6767
public DevicePathEnum DevicePath { get; set; }
6868

69-
public override void ExecuteCmdlet()
69+
public override void Execute()
7070
{
71-
base.ExecuteCmdlet();
71+
base.Execute();
7272
var arpTables = this.NetworkClient.NetworkManagementClient.ExpressRouteCircuits.ListRoutesTableSummary
7373
(ResourceGroupName, ExpressRouteCircuitName, PeeringType, DevicePath.ToString()).Value.Cast<object>().ToList();
7474
var psARPs = new List<PSExpressRouteCircuitRoutesTableSummary>();

src/ResourceManager/Network/Commands.Network/ExpressRouteCircuit/Stats/GetAzureExpressRouteStatsCommand.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
namespace Microsoft.Azure.Commands.Network
2222
{
23-
[Cmdlet(VerbsCommon.Get, "AzureRmExpressRouteCircuitStats"), OutputType(typeof(PSExpressRouteCircuitStats))]
23+
[Cmdlet(VerbsCommon.Get, "AzureRmExpressRouteCircuitStats"), OutputType(typeof(PSExpressRouteCircuitStats))]
2424
public class GetAzureExpressRouteCircuitStatsCommand : NetworkBaseCmdlet
2525
{
2626
[Alias("ResourceName")]
@@ -55,10 +55,9 @@ public class GetAzureExpressRouteCircuitStatsCommand : NetworkBaseCmdlet
5555
IgnoreCase = true)]
5656
public string PeeringType { get; set; }
5757

58-
public override void ExecuteCmdlet()
59-
{
60-
base.ExecuteCmdlet();
61-
58+
public override void Execute()
59+
{
60+
base.Execute();
6261
if (string.IsNullOrEmpty(PeeringType))
6362
{
6463
var stats = this.NetworkClient.NetworkManagementClient.ExpressRouteCircuits.GetStats(

0 commit comments

Comments
 (0)