diff --git a/experiments/Azure.Experiments/Azure.Experiments/AzureObject.cs b/experiments/Azure.Experiments/Azure.Experiments/AzureObject.cs index acc0aa36d0fd..ddda1f67aea8 100644 --- a/experiments/Azure.Experiments/Azure.Experiments/AzureObject.cs +++ b/experiments/Azure.Experiments/Azure.Experiments/AzureObject.cs @@ -11,7 +11,7 @@ public abstract class AzureObject public static IEnumerable NoDependencies { get; } = Enumerable.Empty(); - public string Name { get; } + public abstract string Name { get; } public IEnumerable Dependencies { get; } @@ -49,9 +49,9 @@ public async Task GetDependencyLocationAsync() return DependencyLocation; } - protected AzureObject(string name, IEnumerable dependencies) + protected AzureObject(IEnumerable dependencies) { - Name = name; + // Name = name; Dependencies = dependencies; Priority = dependencies.Any() ? dependencies.Max(d => d.Priority) + 1 @@ -111,8 +111,8 @@ public async Task GetOrCreateAsync() return await GetOrCreateAsync(location); } - protected AzureObject(string name, IEnumerable dependencies) - : base(name, dependencies) + protected AzureObject(IEnumerable dependencies) + : base(dependencies) { } diff --git a/experiments/Azure.Experiments/Azure.Experiments/Compute/VirtualMachineObject.cs b/experiments/Azure.Experiments/Azure.Experiments/Compute/VirtualMachineObject.cs index 70ecd175bea9..25edce685283 100644 --- a/experiments/Azure.Experiments/Azure.Experiments/Compute/VirtualMachineObject.cs +++ b/experiments/Azure.Experiments/Azure.Experiments/Compute/VirtualMachineObject.cs @@ -15,8 +15,9 @@ public VirtualMachineObject( NetworkInterfaceObject ni, string adminUsername, string adminPassword) - : base(name, rg, new[] { ni }) + : base(rg, new[] { ni }) { + Name = name; Client = new ComputeManagementClient(c.Credentials) { SubscriptionId = c.SubscriptionId @@ -79,5 +80,7 @@ protected override Task GetOrThrowAsync() private NetworkInterfaceObject Ni { get; } private IVirtualMachinesOperations Client { get; } + + public override string Name { get; } } } diff --git a/experiments/Azure.Experiments/Azure.Experiments/Network/NetworkInterfaceObject.cs b/experiments/Azure.Experiments/Azure.Experiments/Network/NetworkInterfaceObject.cs index 316cabea1ed4..87e31cd42665 100644 --- a/experiments/Azure.Experiments/Azure.Experiments/Network/NetworkInterfaceObject.cs +++ b/experiments/Azure.Experiments/Azure.Experiments/Network/NetworkInterfaceObject.cs @@ -14,8 +14,9 @@ public NetworkInterfaceObject( SubnetObject subnet, PublicIpAddressObject pia, NetworkSecurityGroupObject nsg) - : base(name, rg, new AzureObject[] { subnet, pia, nsg }) + : base(rg, new AzureObject[] { subnet, pia, nsg }) { + Name = name; Client = client.NetworkInterfaces; Pia = pia; Subnet = subnet; @@ -51,5 +52,7 @@ protected override Task GetOrThrowAsync() private SubnetObject Subnet { get; } private INetworkInterfacesOperations Client { get; } + + public override string Name { get; } } } diff --git a/experiments/Azure.Experiments/Azure.Experiments/Network/NetworkObject.cs b/experiments/Azure.Experiments/Azure.Experiments/Network/NetworkObject.cs index fd45543e726c..6a4e10162ee2 100644 --- a/experiments/Azure.Experiments/Azure.Experiments/Network/NetworkObject.cs +++ b/experiments/Azure.Experiments/Azure.Experiments/Network/NetworkObject.cs @@ -6,15 +6,14 @@ namespace Azure.Experiments.Network public abstract class NetworkObject : ResourceObject> where T : Resource { - protected NetworkObject(string name, ResourceGroupObject rg) - : base(name, rg) + protected NetworkObject(ResourceGroupObject rg) + : base(rg) { } protected NetworkObject( - string name, ResourceGroupObject rg, - IEnumerable dependencies) : base(name, rg, dependencies) + IEnumerable dependencies) : base(rg, dependencies) { } } diff --git a/experiments/Azure.Experiments/Azure.Experiments/Network/NetworkSecurityGroup.cs b/experiments/Azure.Experiments/Azure.Experiments/Network/NetworkSecurityGroup.cs index ecf8246a1ccf..1efc2b9cfd5a 100644 --- a/experiments/Azure.Experiments/Azure.Experiments/Network/NetworkSecurityGroup.cs +++ b/experiments/Azure.Experiments/Azure.Experiments/Network/NetworkSecurityGroup.cs @@ -11,8 +11,9 @@ public NetworkSecurityGroupObject( INetworkManagementClient client, string name, ResourceGroupObject rg) - : base(name, rg) + : base(rg) { + Name = name; Client = client.NetworkSecurityGroups; } @@ -26,5 +27,7 @@ protected override Task GetOrThrowAsync() => Client.GetAsync(ResourceGroupName, Name); private INetworkSecurityGroupsOperations Client { get; } + + public override string Name { get; } } } diff --git a/experiments/Azure.Experiments/Azure.Experiments/Network/PublicIpAddressObject.cs b/experiments/Azure.Experiments/Azure.Experiments/Network/PublicIpAddressObject.cs index a9921d1aacf8..d440a7944001 100644 --- a/experiments/Azure.Experiments/Azure.Experiments/Network/PublicIpAddressObject.cs +++ b/experiments/Azure.Experiments/Azure.Experiments/Network/PublicIpAddressObject.cs @@ -11,8 +11,9 @@ public PublicIpAddressObject( INetworkManagementClient client, string name, ResourceGroupObject rg) - : base(name, rg) + : base(rg) { + Name = name; Client = client.PublicIPAddresses; } @@ -20,11 +21,13 @@ protected override Task CreateAsync(string location) => Client.CreateOrUpdateAsync( ResourceGroupName, Name, - new PublicIPAddress { Location = "eastus" }); + new PublicIPAddress { Location = location }); protected override Task GetOrThrowAsync() => Client.GetAsync(ResourceGroupName, Name); private IPublicIPAddressesOperations Client { get; } + + public override string Name { get; } } } diff --git a/experiments/Azure.Experiments/Azure.Experiments/Network/SubnetObject.cs b/experiments/Azure.Experiments/Azure.Experiments/Network/SubnetObject.cs index c5a51934c98e..084b522ec415 100644 --- a/experiments/Azure.Experiments/Azure.Experiments/Network/SubnetObject.cs +++ b/experiments/Azure.Experiments/Azure.Experiments/Network/SubnetObject.cs @@ -11,8 +11,9 @@ public sealed class SubnetObject : AzureObject public SubnetObject( string name, VirtualNetworkObject vn, string addressPrefix) - : base(name, new[] { vn }) + : base(new[] { vn }) { + Name = name; Vn = vn; AddressPrefix = addressPrefix; } @@ -32,6 +33,8 @@ protected override async Task GetOrThrowAsync() private VirtualNetworkObject Vn { get; } + public override string Name { get; } + private Subnet GetSubnet(VirtualNetwork vn) => vn?.Subnets.FirstOrDefault(s => s.Name == Name); } diff --git a/experiments/Azure.Experiments/Azure.Experiments/Network/VirtualNetworkObject.cs b/experiments/Azure.Experiments/Azure.Experiments/Network/VirtualNetworkObject.cs index 95454f7716d1..97d38a7770e8 100644 --- a/experiments/Azure.Experiments/Azure.Experiments/Network/VirtualNetworkObject.cs +++ b/experiments/Azure.Experiments/Azure.Experiments/Network/VirtualNetworkObject.cs @@ -12,8 +12,9 @@ public VirtualNetworkObject( string name, ResourceGroupObject rg, string addressPrefix) - : base(name, rg, NoDependencies) + : base(rg, NoDependencies) { + Name = name; Client = client.VirtualNetworks; AddressPrefix = addressPrefix; } @@ -37,5 +38,7 @@ protected override Task GetOrThrowAsync() private string AddressPrefix { get; } public IVirtualNetworksOperations Client { get; } + + public override string Name { get; } } } diff --git a/experiments/Azure.Experiments/Azure.Experiments/ResourceGroupObject.cs b/experiments/Azure.Experiments/Azure.Experiments/ResourceGroupObject.cs index ebae1087a308..624cba53c884 100644 --- a/experiments/Azure.Experiments/Azure.Experiments/ResourceGroupObject.cs +++ b/experiments/Azure.Experiments/Azure.Experiments/ResourceGroupObject.cs @@ -8,8 +8,9 @@ public sealed class ResourceGroupObject : AzureObject< ResourceGroup, ResourceGroupPolicy> { public ResourceGroupObject(Context client, string name) - : base(name, NoDependencies) + : base(NoDependencies) { + Name = name; Client = new ResourceManagementClient(client.Credentials) { SubscriptionId = client.SubscriptionId @@ -26,5 +27,7 @@ protected override Task GetOrThrowAsync() => Client.GetAsync(Name); private IResourceGroupsOperations Client { get; } + + public override string Name { get; } } } diff --git a/experiments/Azure.Experiments/Azure.Experiments/ResourceObject.cs b/experiments/Azure.Experiments/Azure.Experiments/ResourceObject.cs index 756cd2f080ca..e38d790a70fe 100644 --- a/experiments/Azure.Experiments/Azure.Experiments/ResourceObject.cs +++ b/experiments/Azure.Experiments/Azure.Experiments/ResourceObject.cs @@ -10,18 +10,16 @@ public abstract class ResourceObject : AzureObject public string ResourceGroupName { get; } protected ResourceObject( - string name, ResourceGroupObject rg, IEnumerable dependencies) - : base(name, dependencies.Concat(new[] { rg })) + : base(dependencies.Concat(new[] { rg })) { ResourceGroupName = rg.Name; } protected ResourceObject( - string name, ResourceGroupObject rg) - : this(name, rg, NoDependencies) + : this(rg, NoDependencies) { } }