Skip to content

Commit 9ffca4d

Browse files
author
Hovsep
committed
Merge pull request Azure#1381 from yantang-msft/dev
AzureRmVMDiagnostics command change [yantang]
2 parents 484f3bd + f177ecb commit 9ffca4d

File tree

8 files changed

+474
-241
lines changed

8 files changed

+474
-241
lines changed

src/ResourceManager/Compute/Commands.Compute/Commands.Compute.csproj

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -227,9 +227,10 @@
227227
<Compile Include="Extension\CustomScript\RemoveAzureVMCustomScriptExtensionCommand.cs" />
228228
<Compile Include="Extension\CustomScript\SetAzureVMCustomScriptExtensionCommand.cs" />
229229
<Compile Include="Extension\CustomScript\VirtualMachineCustomScriptExtensionContext.cs" />
230-
<Compile Include="Extension\Diagnostics\GetAzureVMDiagnosticsExtension.cs" />
231-
<Compile Include="Extension\Diagnostics\RemoveAzureVMDiagnosticsExtension.cs" />
232-
<Compile Include="Extension\Diagnostics\SetAzureVMDiagnosticsExtension.cs" />
230+
<Compile Include="Extension\Diagnostics\DiagnosticsExtensionConstants.cs" />
231+
<Compile Include="Extension\Diagnostics\GetAzureRmVMDiagnosticsExtension.cs" />
232+
<Compile Include="Extension\Diagnostics\RemoveAzureRmVMDiagnosticsExtension.cs" />
233+
<Compile Include="Extension\Diagnostics\SetAzureRmVMDiagnosticsExtension.cs" />
233234
<Compile Include="Extension\DSC\GetAzureVMDscExtensionStatusCommand.cs" />
234235
<Compile Include="Extension\DSC\GetDscResourceException.cs" />
235236
<Compile Include="Extension\DSC\DscExtensionPublishCmdletCommonBase.cs" />
Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,11 @@
1414

1515
namespace Microsoft.Azure.Commands.Compute
1616
{
17-
public class VirtualMachineDiagnosticsExtensionCmdletBase : VirtualMachineExtensionBaseCmdlet
17+
public static class DiagnosticsExtensionConstants
1818
{
19-
protected const string DiagnosticsExtensionNamespace = "Microsoft.Azure.Diagnostics";
20-
protected const string DiagnosticsExtensionType = "IaaSDiagnostics";
21-
22-
protected string StorageAccountName { get; set; }
23-
protected string StorageKey { get; set; }
24-
protected string Endpoint { get; set; }
25-
26-
public VirtualMachineDiagnosticsExtensionCmdletBase()
27-
: base()
28-
{
29-
30-
}
19+
public const string VirtualMachineExtensionResourceType = "Microsoft.Compute/virtualMachines/extensions";
20+
public const string ExtensionDefaultName = "Microsoft.Insights.VMDiagnosticsSettings";
21+
public const string ExtensionPublisher = "Microsoft.Azure.Diagnostics";
22+
public const string ExtensionType = "IaaSDiagnostics";
3123
}
32-
}
24+
}

src/ResourceManager/Compute/Commands.Compute/Extension/Diagnostics/GetAzureVMDiagnosticsExtension.cs renamed to src/ResourceManager/Compute/Commands.Compute/Extension/Diagnostics/GetAzureRmVMDiagnosticsExtension.cs

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
// limitations under the License.
1313
// ----------------------------------------------------------------------------------
1414

15+
using System;
1516
using System.Linq;
1617
using System.Management.Automation;
1718
using Microsoft.Azure.Commands.Compute.Common;
@@ -26,7 +27,7 @@ namespace Microsoft.Azure.Commands.Compute
2627
ProfileNouns.VirtualMachineDiagnosticsExtension),
2728
OutputType(
2829
typeof(PSVirtualMachineExtension))]
29-
public class GetAzureVMDiagnosticsExtensionCommand : VirtualMachineExtensionBaseCmdlet
30+
public class GetAzureRmVMDiagnosticsExtensionCommand : VirtualMachineExtensionBaseCmdlet
3031
{
3132
[Parameter(
3233
Mandatory = true,
@@ -47,11 +48,10 @@ public class GetAzureVMDiagnosticsExtensionCommand : VirtualMachineExtensionBase
4748

4849
[Alias("ExtensionName")]
4950
[Parameter(
50-
Mandatory = true,
51+
Mandatory = false,
5152
Position = 2,
5253
ValueFromPipelineByPropertyName = true,
5354
HelpMessage = "Extension Name.")]
54-
[ValidateNotNullOrEmpty]
5555
public string Name { get; set; }
5656

5757
[Parameter(
@@ -67,6 +67,25 @@ public override void ExecuteCmdlet()
6767

6868
ExecuteClientAction(() =>
6969
{
70+
if (string.IsNullOrEmpty(this.Name))
71+
{
72+
var virtualMachine = ComputeClient.ComputeManagementClient.VirtualMachines.Get(this.ResourceGroupName, this.VMName).VirtualMachine;
73+
var diagnosticsExtension = virtualMachine.Extensions != null
74+
? virtualMachine.Extensions.FirstOrDefault(extension =>
75+
extension.Publisher.Equals(DiagnosticsExtensionConstants.ExtensionPublisher, StringComparison.InvariantCultureIgnoreCase) &&
76+
extension.ExtensionType.Equals(DiagnosticsExtensionConstants.ExtensionType, StringComparison.InvariantCultureIgnoreCase))
77+
: null;
78+
79+
if (diagnosticsExtension == null)
80+
{
81+
WriteObject(null);
82+
return;
83+
}
84+
else {
85+
this.Name = diagnosticsExtension.Name;
86+
}
87+
}
88+
7089
VirtualMachineExtensionGetResponse virtualMachineExtensionGetResponse = null;
7190
if (Status.IsPresent)
7291
{
Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,18 @@
1313
// ----------------------------------------------------------------------------------
1414

1515
using System;
16+
using System.Linq;
1617
using System.Management.Automation;
1718
using Microsoft.Azure.Commands.Compute.Common;
1819
using Microsoft.Azure.Management.Compute;
20+
using System.Globalization;
1921

2022
namespace Microsoft.Azure.Commands.Compute
2123
{
2224
[Cmdlet(
2325
VerbsCommon.Remove,
2426
ProfileNouns.VirtualMachineDiagnosticsExtension)]
25-
public class RemoveAzureVMDiagnosticsExtensionCommand : VirtualMachineExtensionBaseCmdlet
27+
public class RemoveAzureRmVMDiagnosticsExtensionCommand : VirtualMachineExtensionBaseCmdlet
2628
{
2729
[Parameter(
2830
Mandatory = true,
@@ -43,11 +45,10 @@ public class RemoveAzureVMDiagnosticsExtensionCommand : VirtualMachineExtensionB
4345

4446
[Alias("ExtensionName")]
4547
[Parameter(
46-
Mandatory = true,
48+
Mandatory = false,
4749
Position = 2,
4850
ValueFromPipelineByPropertyName = true,
4951
HelpMessage = "Extension Name.")]
50-
[ValidateNotNullOrEmpty]
5152
public string Name { get; set; }
5253

5354
public override void ExecuteCmdlet()
@@ -56,6 +57,26 @@ public override void ExecuteCmdlet()
5657

5758
ExecuteClientAction(() =>
5859
{
60+
if (string.IsNullOrEmpty(this.Name))
61+
{
62+
var virtualMachine = ComputeClient.ComputeManagementClient.VirtualMachines.Get(this.ResourceGroupName, this.VMName).VirtualMachine;
63+
var diagnosticsExtension = virtualMachine.Extensions != null
64+
? virtualMachine.Extensions.FirstOrDefault(extension =>
65+
extension.Publisher.Equals(DiagnosticsExtensionConstants.ExtensionPublisher, StringComparison.InvariantCultureIgnoreCase) &&
66+
extension.ExtensionType.Equals(DiagnosticsExtensionConstants.ExtensionType, StringComparison.InvariantCultureIgnoreCase))
67+
: null;
68+
69+
if (diagnosticsExtension == null)
70+
{
71+
WriteWarning(string.Format(CultureInfo.InvariantCulture, Properties.Resources.DiagnosticsExtensionNotFound, this.ResourceGroupName, this.VMName));
72+
return;
73+
}
74+
else
75+
{
76+
this.Name = diagnosticsExtension.Name;
77+
}
78+
}
79+
5980
var op = this.VirtualMachineExtensionClient.Delete(this.ResourceGroupName, this.VMName,
6081
this.Name);
6182
WriteObject(op);

0 commit comments

Comments
 (0)