Skip to content

Commit 26288fe

Browse files
Enbedded client.
1 parent e40028a commit 26288fe

File tree

10 files changed

+58
-98
lines changed

10 files changed

+58
-98
lines changed

experiments/Azure.Experiments/Azure.Experiments.Tests/ComputeTest.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ public async Task ResourceGroupTest()
1111
{
1212
var c = Credentials.Get();
1313
var rg = new ResourceGroupObject(c, "My");
14-
var info = await rg.GetOrNullAsync(c);
15-
var infoCreate = await rg.GetOrCreateAsync(c);
14+
var info = await rg.GetOrNullAsync();
15+
var infoCreate = await rg.GetOrCreateAsync();
1616
// await rg.DeleteAsync(c);
1717
}
1818

@@ -22,8 +22,8 @@ public async Task VirtualNetworkTest()
2222
var c = Credentials.Get();
2323
var rg = new ResourceGroupObject(c, "My1");
2424
var vn = new VirtualNetworkObject(c.CreateNetwork(), "My1", rg, "192.168.0.0/16");
25-
var info = await vn.GetOrNullAsync(c);
26-
var infoCreate = await vn.GetOrCreateAsync(c);
25+
var info = await vn.GetOrNullAsync();
26+
var infoCreate = await vn.GetOrCreateAsync();
2727
}
2828

2929
[Fact]
@@ -32,7 +32,7 @@ public async Task PublicIpAddressTest()
3232
var c = Credentials.Get();
3333
var rg = new ResourceGroupObject(c, "MyPIA");
3434
var pia = new PublicIpAddressObject(c.CreateNetwork(), "MyPIA", rg);
35-
var info = await pia.GetOrCreateAsync(c);
35+
var info = await pia.GetOrCreateAsync();
3636
}
3737

3838
[Fact]
@@ -41,7 +41,7 @@ public async Task NetworkSecurityGroupTest()
4141
var c = Credentials.Get();
4242
var rg = new ResourceGroupObject(c, "MyNSG");
4343
var nsg = new NetworkSecurityGroupObject(c.CreateNetwork(), "MyNSG", rg);
44-
var info = await nsg.GetOrCreateAsync(c);
44+
var info = await nsg.GetOrCreateAsync();
4545
}
4646

4747
[Fact]
@@ -51,7 +51,7 @@ public async Task SubnetTest()
5151
var rg = new ResourceGroupObject(c, "MySubnet");
5252
var vn = new VirtualNetworkObject(c.CreateNetwork(), "MySubnet", rg, "192.168.0.0/16");
5353
var subnet = new SubnetObject("MySubnet", vn, "192.168.1.0/24");
54-
var info = await subnet.GetOrCreateAsync(c);
54+
var info = await subnet.GetOrCreateAsync();
5555
}
5656

5757
[Fact]
@@ -65,7 +65,7 @@ public async Task NetworkInterfaceObject()
6565
var pia = new PublicIpAddressObject(network, "MyNI", rg);
6666
var nsg = new NetworkSecurityGroupObject(network, "MyNI", rg);
6767
var ni = new NetworkInterfaceObject(network, "MyNI", rg, subnet, pia, nsg);
68-
var info = await ni.GetOrCreateAsync(c);
68+
var info = await ni.GetOrCreateAsync();
6969
}
7070

7171
[Fact]
@@ -80,7 +80,7 @@ public async Task VmObject()
8080
var nsg = new NetworkSecurityGroupObject(network, "MyVM", rg);
8181
var ni = new NetworkInterfaceObject(network, "MyVM", rg, subnet, pia, nsg);
8282
var vm = new VmObject(c, "MyVM", rg, ni, "MyVMUser", "@3as54dDd");
83-
var info = await vm.GetOrCreateAsync(c);
83+
var info = await vm.GetOrCreateAsync();
8484
}
8585

8686
[Fact]

experiments/Azure.Experiments/Azure.Experiments/AzureObject.cs

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public abstract class AzureObject
1616

1717
public IEnumerable<AzureObject> Dependencies { get; }
1818

19-
public abstract Task CheckOrCreateAsync(Context c);
19+
public abstract Task CheckOrCreateAsync();
2020

2121
protected AzureObject(string name, IEnumerable<AzureObject> dependencies)
2222
{
@@ -25,19 +25,19 @@ protected AzureObject(string name, IEnumerable<AzureObject> dependencies)
2525
}
2626
}
2727

28-
public abstract class AzureObject<T, C> : AzureObject
28+
public abstract class AzureObject<T> : AzureObject
2929
where T: class
3030
{
3131
public T Info { get; private set; }
3232

33-
public async Task<T> GetOrNullAsync(C c)
33+
public async Task<T> GetOrNullAsync()
3434
{
3535
if (!IsGetCalled)
3636
{
3737
IsGetCalled = true;
3838
try
3939
{
40-
Info = await GetOrThrowAsync(c);
40+
Info = await GetOrThrowAsync();
4141
}
4242
catch (CloudException e)
4343
when (e.Response.StatusCode == HttpStatusCode.NotFound)
@@ -47,39 +47,34 @@ public async Task<T> GetOrNullAsync(C c)
4747
return Info;
4848
}
4949

50-
public Task<T> GetOrNullAsync(Context c)
51-
=> GetOrNullAsync(CreateClient(c));
52-
53-
public async Task<T> GetOrCreateAsync(Context c)
50+
public async Task<T> GetOrCreateAsync()
5451
{
55-
Info = await GetOrNullAsync(c);
52+
Info = await GetOrNullAsync();
5653
if (Info == null)
5754
{
5855
// this can be optimized by using WaitForAll and a state
5956
// machine for `Task<T> Info`. The state machine is required to
6057
// avoid multiple creations of the same resource group.
6158
foreach (var d in Dependencies)
6259
{
63-
await d.CheckOrCreateAsync(c);
60+
await d.CheckOrCreateAsync();
6461
}
65-
Info = await CreateAsync(CreateClient(c));
62+
Info = await CreateAsync();
6663
}
6764
return Info;
6865
}
6966

70-
public override Task CheckOrCreateAsync(Context c)
71-
=> GetOrCreateAsync(c);
72-
7367
protected AzureObject(string name, IEnumerable<AzureObject> dependencies)
7468
: base(name, dependencies)
7569
{
7670
}
7771

78-
protected abstract C CreateClient(Context c);
72+
public override Task CheckOrCreateAsync()
73+
=> GetOrCreateAsync();
7974

80-
protected abstract Task<T> GetOrThrowAsync(C c);
75+
protected abstract Task<T> GetOrThrowAsync();
8176

82-
protected abstract Task<T> CreateAsync(C c);
77+
protected abstract Task<T> CreateAsync();
8378

8479
private bool IsGetCalled;
8580
}

experiments/Azure.Experiments/Azure.Experiments/NetworkInterfaceObject.cs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
namespace Azure.Experiments
66
{
77
public sealed class NetworkInterfaceObject
8-
: ResourceObject<NetworkInterface, INetworkInterfacesOperations>
8+
: ResourceObject<NetworkInterface>
99
{
1010
public NetworkInterfaceObject(
1111
INetworkManagementClient client,
@@ -21,8 +21,7 @@ public NetworkInterfaceObject(
2121
Subnet = subnet;
2222
}
2323

24-
protected override async Task<NetworkInterface> CreateAsync(
25-
INetworkInterfacesOperations _)
24+
protected override async Task<NetworkInterface> CreateAsync()
2625
=> await Client.CreateOrUpdateAsync(
2726
ResourceGroupName,
2827
Name,
@@ -40,11 +39,7 @@ protected override async Task<NetworkInterface> CreateAsync(
4039
}
4140
});
4241

43-
protected override INetworkInterfacesOperations CreateClient(Context c)
44-
=> c.CreateNetwork().NetworkInterfaces;
45-
46-
protected override Task<NetworkInterface> GetOrThrowAsync(
47-
INetworkInterfacesOperations _)
42+
protected override Task<NetworkInterface> GetOrThrowAsync()
4843
=> Client.GetAsync(ResourceGroupName, Name);
4944

5045
private PublicIpAddressObject Pia { get; }

experiments/Azure.Experiments/Azure.Experiments/NetworkSecurityGroup.cs

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
namespace Azure.Experiments
66
{
77
public sealed class NetworkSecurityGroupObject
8-
: ResourceObject<NetworkSecurityGroup, INetworkSecurityGroupsOperations>
8+
: ResourceObject<NetworkSecurityGroup>
99
{
1010
public NetworkSecurityGroupObject(
1111
INetworkManagementClient client,
@@ -16,20 +16,14 @@ public NetworkSecurityGroupObject(
1616
Client = client.NetworkSecurityGroups;
1717
}
1818

19-
protected override Task<NetworkSecurityGroup> CreateAsync(
20-
INetworkSecurityGroupsOperations c)
21-
=> c.CreateOrUpdateAsync(
19+
protected override Task<NetworkSecurityGroup> CreateAsync()
20+
=> Client.CreateOrUpdateAsync(
2221
ResourceGroupName,
2322
Name,
2423
new NetworkSecurityGroup { Location = "eastus" });
2524

26-
protected override INetworkSecurityGroupsOperations CreateClient(
27-
Context c)
28-
=> c.CreateNetwork().NetworkSecurityGroups;
29-
30-
protected override Task<NetworkSecurityGroup> GetOrThrowAsync(
31-
INetworkSecurityGroupsOperations c)
32-
=> c.GetAsync(ResourceGroupName, Name);
25+
protected override Task<NetworkSecurityGroup> GetOrThrowAsync()
26+
=> Client.GetAsync(ResourceGroupName, Name);
3327

3428
private INetworkSecurityGroupsOperations Client { get; }
3529
}

experiments/Azure.Experiments/Azure.Experiments/PublicIpAddressObject.cs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
namespace Azure.Experiments
77
{
88
public sealed class PublicIpAddressObject :
9-
ResourceObject<PublicIPAddress, IPublicIPAddressesOperations>
9+
ResourceObject<PublicIPAddress>
1010
{
1111
public PublicIpAddressObject(
1212
INetworkManagementClient client,
@@ -17,17 +17,14 @@ public PublicIpAddressObject(
1717
Client = client.PublicIPAddresses;
1818
}
1919

20-
protected override Task<PublicIPAddress> CreateAsync(IPublicIPAddressesOperations c)
21-
=> c.CreateOrUpdateAsync(
20+
protected override Task<PublicIPAddress> CreateAsync()
21+
=> Client.CreateOrUpdateAsync(
2222
ResourceGroupName,
2323
Name,
2424
new PublicIPAddress { Location = "eastus" });
2525

26-
protected override IPublicIPAddressesOperations CreateClient(Context c)
27-
=> c.CreateNetwork().PublicIPAddresses;
28-
29-
protected override Task<PublicIPAddress> GetOrThrowAsync(IPublicIPAddressesOperations c)
30-
=> c.GetAsync(ResourceGroupName, Name);
26+
protected override Task<PublicIPAddress> GetOrThrowAsync()
27+
=> Client.GetAsync(ResourceGroupName, Name);
3128

3229
private IPublicIPAddressesOperations Client { get; }
3330
}

experiments/Azure.Experiments/Azure.Experiments/ResourceGroupObject.cs

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
using System.Linq;
2-
using Microsoft.Azure.Management.ResourceManager.Models;
1+
using Microsoft.Azure.Management.ResourceManager.Models;
32
using Microsoft.Azure.Management.ResourceManager;
43
using System.Threading.Tasks;
54

65
namespace Azure.Experiments
76
{
87
public sealed class ResourceGroupObject : AzureObject<
9-
ResourceGroup, IResourceGroupsOperations>
8+
ResourceGroup>
109
{
1110
public ResourceGroupObject(Context client, string name)
1211
: base(name, NoDependencies)
@@ -18,19 +17,12 @@ public ResourceGroupObject(Context client, string name)
1817
.ResourceGroups;
1918
}
2019

21-
protected override IResourceGroupsOperations CreateClient(Context c)
22-
=> new ResourceManagementClient(c.Credentials)
23-
{
24-
SubscriptionId = c.SubscriptionId
25-
}
26-
.ResourceGroups;
27-
28-
protected override Task<ResourceGroup> CreateAsync(IResourceGroupsOperations _)
20+
protected override Task<ResourceGroup> CreateAsync()
2921
=> Client.CreateOrUpdateAsync(
3022
Name,
3123
new ResourceGroup { Location = "eastus" });
3224

33-
protected override Task<ResourceGroup> GetOrThrowAsync(IResourceGroupsOperations _)
25+
protected override Task<ResourceGroup> GetOrThrowAsync()
3426
=> Client.GetAsync(Name);
3527

3628
private IResourceGroupsOperations Client { get; }

experiments/Azure.Experiments/Azure.Experiments/ResourceObject.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
namespace Azure.Experiments
55
{
6-
public abstract class ResourceObject<T, C> : AzureObject<T, C>
6+
public abstract class ResourceObject<T> : AzureObject<T>
77
where T : class
88
{
99
public string ResourceGroupName { get; }
@@ -20,7 +20,7 @@ protected ResourceObject(
2020
protected ResourceObject(
2121
string name,
2222
ResourceGroupObject rg)
23-
: this(name, rg, Enumerable.Empty<AzureObject>())
23+
: this(name, rg, NoDependencies)
2424
{
2525
}
2626
}

experiments/Azure.Experiments/Azure.Experiments/SubnetObject.cs

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,31 +6,30 @@
66

77
namespace Azure.Experiments
88
{
9-
public sealed class SubnetObject : AzureObject<Subnet, IVirtualNetworksOperations>
9+
public sealed class SubnetObject : AzureObject<Subnet>
1010
{
1111
public string AddressPrefix { get; }
1212

13-
public SubnetObject(string name, VirtualNetworkObject vn, string addressPrefix)
13+
public SubnetObject(
14+
string name, VirtualNetworkObject vn, string addressPrefix)
1415
: base(name, new[] { vn })
1516
{
1617
Vn = vn;
1718
AddressPrefix = addressPrefix;
1819
}
1920

20-
protected override async Task<Subnet> CreateAsync(IVirtualNetworksOperations c)
21+
protected override async Task<Subnet> CreateAsync()
2122
{
2223
// The Virtual Network should be created at this point.
23-
var vn = await Vn.GetOrNullAsync(c);
24+
var vn = await Vn.GetOrNullAsync();
2425
vn.Subnets.Add(new Subnet { Name = Name, AddressPrefix = AddressPrefix });
25-
vn = await c.CreateOrUpdateAsync(Vn.ResourceGroupName, Vn.Name, vn);
26+
vn = await Vn.Client.CreateOrUpdateAsync(
27+
Vn.ResourceGroupName, Vn.Name, vn);
2628
return GetSubnet(vn);
2729
}
2830

29-
protected override IVirtualNetworksOperations CreateClient(Context c)
30-
=> c.CreateNetwork().VirtualNetworks;
31-
32-
protected override async Task<Subnet> GetOrThrowAsync(IVirtualNetworksOperations c)
33-
=> GetSubnet(await Vn.GetOrNullAsync(c));
31+
protected override async Task<Subnet> GetOrThrowAsync()
32+
=> GetSubnet(await Vn.GetOrNullAsync());
3433

3534
private VirtualNetworkObject Vn { get; }
3635

experiments/Azure.Experiments/Azure.Experiments/VirtualNetworkObject.cs

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
namespace Azure.Experiments
66
{
77
public sealed class VirtualNetworkObject :
8-
ResourceObject<VirtualNetwork, IVirtualNetworksOperations>
8+
ResourceObject<VirtualNetwork>
99
{
1010
public VirtualNetworkObject(
1111
INetworkManagementClient client,
@@ -18,8 +18,8 @@ public VirtualNetworkObject(
1818
AddressPrefix = addressPrefix;
1919
}
2020

21-
protected override Task<VirtualNetwork> CreateAsync(IVirtualNetworksOperations c)
22-
=> c.CreateOrUpdateAsync(
21+
protected override Task<VirtualNetwork> CreateAsync()
22+
=> Client.CreateOrUpdateAsync(
2323
ResourceGroupName,
2424
Name,
2525
new VirtualNetwork
@@ -31,15 +31,11 @@ protected override Task<VirtualNetwork> CreateAsync(IVirtualNetworksOperations c
3131
}
3232
});
3333

34-
protected override IVirtualNetworksOperations CreateClient(Context c)
35-
=> c.CreateNetwork().VirtualNetworks;
36-
37-
protected override Task<VirtualNetwork> GetOrThrowAsync(
38-
IVirtualNetworksOperations c)
39-
=> c.GetAsync(ResourceGroupName, Name);
34+
protected override Task<VirtualNetwork> GetOrThrowAsync()
35+
=> Client.GetAsync(ResourceGroupName, Name);
4036

4137
private string AddressPrefix { get; }
4238

43-
private IVirtualNetworksOperations Client { get; }
39+
public IVirtualNetworksOperations Client { get; }
4440
}
4541
}

0 commit comments

Comments
 (0)