diff --git a/experiments/Azure.Experiments/Azure.Experiments.Tests/ComputeTest.cs b/experiments/Azure.Experiments/Azure.Experiments.Tests/ComputeTest.cs index 28298c23c939..4aed28f86f06 100644 --- a/experiments/Azure.Experiments/Azure.Experiments.Tests/ComputeTest.cs +++ b/experiments/Azure.Experiments/Azure.Experiments.Tests/ComputeTest.cs @@ -77,7 +77,7 @@ public async Task VmObject() var pia = new PublicIpAddressObject("MyVM", rg); var nsg = new NetworkSecurityGroupObject("MyVM", rg); var ni = new NetworkInterfaceObject("MyVM", rg, subnet, pia, nsg); - var vm = new VmObject("MyVM", rg, ni, "MyVMUser", "@3as54dDd"); + var vm = new VmObject(c, "MyVM", rg, ni, "MyVMUser", "@3as54dDd"); var info = await vm.GetOrCreateAsync(c); } diff --git a/experiments/Azure.Experiments/Azure.Experiments/AzureObject.cs b/experiments/Azure.Experiments/Azure.Experiments/AzureObject.cs index b52209a993ea..be49bc4fb148 100644 --- a/experiments/Azure.Experiments/Azure.Experiments/AzureObject.cs +++ b/experiments/Azure.Experiments/Azure.Experiments/AzureObject.cs @@ -67,9 +67,6 @@ public async Task GetOrCreateAsync(Context c) return Info; } - public Task DeleteAsync(Context c) - => DeleteAsync(CreateClient(c)); - public override Task CheckOrCreateAsync(Context c) => GetOrCreateAsync(c); @@ -84,8 +81,6 @@ protected AzureObject(string name, IEnumerable dependencies) protected abstract Task CreateAsync(C c); - protected abstract Task DeleteAsync(C c); - private bool IsGetCalled; } } diff --git a/experiments/Azure.Experiments/Azure.Experiments/NetworkInterfaceObject.cs b/experiments/Azure.Experiments/Azure.Experiments/NetworkInterfaceObject.cs index d021eea7a62c..b31d0ee0f132 100644 --- a/experiments/Azure.Experiments/Azure.Experiments/NetworkInterfaceObject.cs +++ b/experiments/Azure.Experiments/Azure.Experiments/NetworkInterfaceObject.cs @@ -41,9 +41,6 @@ protected override async Task CreateAsync( protected override INetworkInterfacesOperations CreateClient(Context c) => c.CreateNetwork().NetworkInterfaces; - protected override Task DeleteAsync(INetworkInterfacesOperations c) - => c.DeleteAsync(ResourceGroupName, Name); - protected override Task GetOrThrowAsync( INetworkInterfacesOperations c) => c.GetAsync(ResourceGroupName, Name); diff --git a/experiments/Azure.Experiments/Azure.Experiments/NetworkSecurityGroup.cs b/experiments/Azure.Experiments/Azure.Experiments/NetworkSecurityGroup.cs index d761e52b71f5..039d6d949686 100644 --- a/experiments/Azure.Experiments/Azure.Experiments/NetworkSecurityGroup.cs +++ b/experiments/Azure.Experiments/Azure.Experiments/NetworkSecurityGroup.cs @@ -24,9 +24,6 @@ protected override INetworkSecurityGroupsOperations CreateClient( Context c) => c.CreateNetwork().NetworkSecurityGroups; - protected override Task DeleteAsync(INetworkSecurityGroupsOperations c) - => c.DeleteAsync(ResourceGroupName, Name); - protected override Task GetOrThrowAsync( INetworkSecurityGroupsOperations c) => c.GetAsync(ResourceGroupName, Name); diff --git a/experiments/Azure.Experiments/Azure.Experiments/PublicIpAddressObject.cs b/experiments/Azure.Experiments/Azure.Experiments/PublicIpAddressObject.cs index 189815e89555..b9da9987f772 100644 --- a/experiments/Azure.Experiments/Azure.Experiments/PublicIpAddressObject.cs +++ b/experiments/Azure.Experiments/Azure.Experiments/PublicIpAddressObject.cs @@ -21,9 +21,6 @@ protected override Task CreateAsync(IPublicIPAddressesOperation protected override IPublicIPAddressesOperations CreateClient(Context c) => c.CreateNetwork().PublicIPAddresses; - protected override Task DeleteAsync(IPublicIPAddressesOperations c) - => c.DeleteAsync(ResourceGroupName, Name); - protected override Task GetOrThrowAsync(IPublicIPAddressesOperations c) => c.GetAsync(ResourceGroupName, Name); } diff --git a/experiments/Azure.Experiments/Azure.Experiments/ResourceGroupObject.cs b/experiments/Azure.Experiments/Azure.Experiments/ResourceGroupObject.cs index 5afafde9fa46..247fa36a62bc 100644 --- a/experiments/Azure.Experiments/Azure.Experiments/ResourceGroupObject.cs +++ b/experiments/Azure.Experiments/Azure.Experiments/ResourceGroupObject.cs @@ -27,8 +27,5 @@ protected override Task CreateAsync(IResourceGroupsOperations c) protected override Task GetOrThrowAsync(IResourceGroupsOperations c) => c.GetAsync(Name); - - protected override Task DeleteAsync(IResourceGroupsOperations c) - => c.DeleteAsync(Name); } } diff --git a/experiments/Azure.Experiments/Azure.Experiments/SubnetObject.cs b/experiments/Azure.Experiments/Azure.Experiments/SubnetObject.cs index 7fedd9303946..c614347bdf4e 100644 --- a/experiments/Azure.Experiments/Azure.Experiments/SubnetObject.cs +++ b/experiments/Azure.Experiments/Azure.Experiments/SubnetObject.cs @@ -29,11 +29,6 @@ protected override async Task CreateAsync(IVirtualNetworksOperations c) protected override IVirtualNetworksOperations CreateClient(Context c) => c.CreateNetwork().VirtualNetworks; - protected override Task DeleteAsync(IVirtualNetworksOperations c) - { - throw new NotImplementedException(); - } - protected override async Task GetOrThrowAsync(IVirtualNetworksOperations c) => GetSubnet(await Vn.GetOrNullAsync(c)); diff --git a/experiments/Azure.Experiments/Azure.Experiments/VirtualNetworkObject.cs b/experiments/Azure.Experiments/Azure.Experiments/VirtualNetworkObject.cs index 77adcf946009..9dfba12baa5d 100644 --- a/experiments/Azure.Experiments/Azure.Experiments/VirtualNetworkObject.cs +++ b/experiments/Azure.Experiments/Azure.Experiments/VirtualNetworkObject.cs @@ -32,9 +32,6 @@ protected override Task CreateAsync(IVirtualNetworksOperations c protected override IVirtualNetworksOperations CreateClient(Context c) => c.CreateNetwork().VirtualNetworks; - protected override Task DeleteAsync(IVirtualNetworksOperations c) - => c.DeleteAsync(ResourceGroupName, Name); - protected override Task GetOrThrowAsync( IVirtualNetworksOperations c) => c.GetAsync(ResourceGroupName, Name); diff --git a/experiments/Azure.Experiments/Azure.Experiments/VmObject.cs b/experiments/Azure.Experiments/Azure.Experiments/VmObject.cs index 83e1a247d6f6..0b014761681c 100644 --- a/experiments/Azure.Experiments/Azure.Experiments/VmObject.cs +++ b/experiments/Azure.Experiments/Azure.Experiments/VmObject.cs @@ -8,6 +8,7 @@ public sealed class VmObject : ResourceObject { public VmObject( + Context c, string name, ResourceGroupObject rg, NetworkInterfaceObject ni, @@ -15,14 +16,19 @@ public VmObject( string adminPassword) : base(name, rg, new[] { ni }) { + Client = new ComputeManagementClient(c.Credentials) + { + SubscriptionId = c.SubscriptionId + } + .VirtualMachines; AdminUsername = adminUsername; AdminPassword = adminPassword; Ni = ni; } protected override Task CreateAsync( - IVirtualMachinesOperations c) - => c.CreateOrUpdateAsync( + IVirtualMachinesOperations _) + => Client.CreateOrUpdateAsync( ResourceGroupName, Name, new VirtualMachine @@ -67,18 +73,15 @@ protected override IVirtualMachinesOperations CreateClient(Context c) } .VirtualMachines; - protected override Task DeleteAsync(IVirtualMachinesOperations c) - { - throw new System.NotImplementedException(); - } - - protected override Task GetOrThrowAsync(IVirtualMachinesOperations c) - => c.GetAsync(ResourceGroupName, Name); + protected override Task GetOrThrowAsync(IVirtualMachinesOperations _) + => Client.GetAsync(ResourceGroupName, Name); private string AdminUsername { get; } private string AdminPassword { get; } private NetworkInterfaceObject Ni { get; } + + private IVirtualMachinesOperations Client { get; } } }