Skip to content

Commit 5782a9b

Browse files
NetworkInterface
1 parent a522a35 commit 5782a9b

File tree

4 files changed

+43
-11
lines changed

4 files changed

+43
-11
lines changed

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

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,19 @@ public async Task SubnetTest()
5454
var info = await subnet.GetOrCreateAsync(c);
5555
}
5656

57+
[Fact]
58+
public async Task NetworkInterfaceObject()
59+
{
60+
var c = Credentials.Get();
61+
var rg = new ResourceGroupObject("MyNI");
62+
var vn = new VirtualNetworkObject("MyNI", rg, "192.168.0.0/16");
63+
var subnet = new SubnetObject("MyNI", vn, "192.168.1.0/24");
64+
var pia = new PublicIpAddressObject("MyNI", rg);
65+
var nsg = new NetworkSecurityGroupObject("MyNI", rg);
66+
var ni = new NetworkInterfaceObject("MyNI", rg, subnet, pia, nsg);
67+
var info = await ni.GetOrCreateAsync(c);
68+
}
69+
5770
[Fact]
5871
public async Task Test1()
5972
{

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ protected AzureObject(string name, IEnumerable<AzureObject> dependencies)
2828
public abstract class AzureObject<T, C> : AzureObject
2929
where T: class
3030
{
31+
public T Info { get; private set; }
32+
3133
public async Task<T> GetOrNullAsync(C c)
3234
{
3335
if (!IsGetCalled)
@@ -84,8 +86,6 @@ protected AzureObject(string name, IEnumerable<AzureObject> dependencies)
8486

8587
protected abstract Task DeleteAsync(C c);
8688

87-
private bool IsGetCalled;
88-
89-
private T Info;
89+
private bool IsGetCalled;
9090
}
9191
}

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

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,39 @@
44

55
namespace Azure.Experiments
66
{
7-
class NetworkInterfaceObject
7+
public sealed class NetworkInterfaceObject
88
: ResourceObject<NetworkInterface, INetworkInterfacesOperations>
99
{
10-
protected NetworkInterfaceObject(
10+
public NetworkInterfaceObject(
1111
string name,
1212
ResourceGroupObject rg,
13-
VirtualNetworkObject vn,
13+
SubnetObject subnet,
1414
PublicIpAddressObject pia,
1515
NetworkSecurityGroupObject nsg)
16-
: base(name, rg, new AzureObject[] { vn, pia, nsg })
16+
: base(name, rg, new AzureObject[] { subnet, pia, nsg })
1717
{
18+
Pia = pia;
19+
Subnet = subnet;
1820
}
1921

20-
protected override Task<NetworkInterface> CreateAsync(
22+
protected override async Task<NetworkInterface> CreateAsync(
2123
INetworkInterfacesOperations c)
22-
=> c.CreateOrUpdateAsync(
23-
ResourceGroupName, Name, new NetworkInterface());
24+
=> await c.CreateOrUpdateAsync(
25+
ResourceGroupName,
26+
Name,
27+
new NetworkInterface
28+
{
29+
Location = "eastus",
30+
IpConfigurations = new[]
31+
{
32+
new NetworkInterfaceIPConfiguration
33+
{
34+
Name = Name,
35+
Subnet = Subnet.Info,
36+
PublicIPAddress = Pia.Info,
37+
}
38+
}
39+
});
2440

2541
protected override INetworkInterfacesOperations CreateClient(Context c)
2642
=> c.CreateNetwork().NetworkInterfaces;
@@ -31,5 +47,8 @@ protected override Task DeleteAsync(INetworkInterfacesOperations c)
3147
protected override Task<NetworkInterface> GetOrThrowAsync(
3248
INetworkInterfacesOperations c)
3349
=> c.GetAsync(ResourceGroupName, Name);
50+
51+
private PublicIpAddressObject Pia { get; }
52+
private SubnetObject Subnet { get; }
3453
}
3554
}

experiments/Compute.Experiments/AzureRM.Compute.Experiments.psm1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -514,7 +514,7 @@ class NetworkInterface: Resource1 {
514514
$subnetInfo = $this.Subnet.Info
515515
$securityGroupInfo = $this.SecurityGroup.Info
516516
return New-AzureRmNetworkInterface `
517-
-ResourceGroupName $this.GetResourceGroupName() `
517+
-ResourceGroupName $this.ResourceGroup.Name `
518518
-Location $p.Location `
519519
-Name $this.Name `
520520
-PublicIpAddressId $publicIpAddressInfo.Id `

0 commit comments

Comments
 (0)