Skip to content

Commit 94b26c2

Browse files
Network and Compute, policies.
1 parent 7b3275b commit 94b26c2

17 files changed

+99
-24
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,9 @@ protected AzureObject(string name, IEnumerable<AzureObject> dependencies)
2626
}
2727
}
2828

29-
public abstract class AzureObject<T> : AzureObject
29+
public abstract class AzureObject<T, P> : AzureObject
3030
where T: class
31+
where P: struct, IInfoPolicy<T>
3132
{
3233
public T Info { get; private set; }
3334

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
using Microsoft.Azure.Management.Compute.Models;
2+
3+
namespace Azure.Experiments.Compute
4+
{
5+
public struct ComputePolicy<T> : IInfoPolicy<T>
6+
where T : Resource
7+
{
8+
public string GetLocation(T value)
9+
=> value.Location;
10+
}
11+
}

experiments/Azure.Experiments/Azure.Experiments/VmObject.cs renamed to experiments/Azure.Experiments/Azure.Experiments/Compute/VirtualMachineObject.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1-
using Microsoft.Azure.Management.Compute;
1+
using Azure.Experiments.Network;
2+
using Microsoft.Azure.Management.Compute;
23
using Microsoft.Azure.Management.Compute.Models;
34
using System.Threading.Tasks;
45

5-
namespace Azure.Experiments
6+
namespace Azure.Experiments.Compute
67
{
7-
public sealed class VmObject
8-
: ResourceObject<VirtualMachine>
8+
public sealed class VirtualMachineObject
9+
: ResourceObject<VirtualMachine, ComputePolicy<VirtualMachine>>
910
{
10-
public VmObject(
11+
public VirtualMachineObject(
1112
Context c,
1213
string name,
1314
ResourceGroupObject rg,
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace Azure.Experiments
2+
{
3+
public interface IInfoPolicy<T>
4+
{
5+
string GetLocation(T value);
6+
}
7+
}

experiments/Azure.Experiments/Azure.Experiments/NetworkInterfaceObject.cs renamed to experiments/Azure.Experiments/Azure.Experiments/Network/NetworkInterfaceObject.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
using Microsoft.Azure.Management.Network.Models;
33
using System.Threading.Tasks;
44

5-
namespace Azure.Experiments
5+
namespace Azure.Experiments.Network
66
{
77
public sealed class NetworkInterfaceObject
8-
: ResourceObject<NetworkInterface>
8+
: NetworkObject<NetworkInterface>
99
{
1010
public NetworkInterfaceObject(
1111
INetworkManagementClient client,
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
using System.Collections.Generic;
2+
using Microsoft.Azure.Management.Network.Models;
3+
4+
namespace Azure.Experiments.Network
5+
{
6+
public abstract class NetworkObject<T> : ResourceObject<T, NetworkPolicy<T>>
7+
where T : Resource
8+
{
9+
protected NetworkObject(string name, ResourceGroupObject rg) : base(name, rg)
10+
{
11+
}
12+
13+
protected NetworkObject(
14+
string name,
15+
ResourceGroupObject rg,
16+
IEnumerable<AzureObject> dependencies) : base(name, rg, dependencies)
17+
{
18+
}
19+
}
20+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
using Microsoft.Azure.Management.Network.Models;
2+
3+
namespace Azure.Experiments.Network
4+
{
5+
public struct NetworkPolicy<T> : IInfoPolicy<T>
6+
where T : Resource
7+
{
8+
public string GetLocation(T value)
9+
=> value.Location;
10+
}
11+
}

experiments/Azure.Experiments/Azure.Experiments/NetworkSecurityGroup.cs renamed to experiments/Azure.Experiments/Azure.Experiments/Network/NetworkSecurityGroup.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
using Microsoft.Azure.Management.Network.Models;
33
using System.Threading.Tasks;
44

5-
namespace Azure.Experiments
5+
namespace Azure.Experiments.Network
66
{
77
public sealed class NetworkSecurityGroupObject
8-
: ResourceObject<NetworkSecurityGroup>
8+
: NetworkObject<NetworkSecurityGroup>
99
{
1010
public NetworkSecurityGroupObject(
1111
INetworkManagementClient client,

experiments/Azure.Experiments/Azure.Experiments/PublicIpAddressObject.cs renamed to experiments/Azure.Experiments/Azure.Experiments/Network/PublicIpAddressObject.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
using Microsoft.Azure.Management.Network.Models;
33
using System.Threading.Tasks;
44

5-
namespace Azure.Experiments
5+
namespace Azure.Experiments.Network
66
{
77
public sealed class PublicIpAddressObject :
8-
ResourceObject<PublicIPAddress>
8+
NetworkObject<PublicIPAddress>
99
{
1010
public PublicIpAddressObject(
1111
INetworkManagementClient client,

experiments/Azure.Experiments/Azure.Experiments/SubnetObject.cs renamed to experiments/Azure.Experiments/Azure.Experiments/Network/SubnetObject.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
using System.Linq;
44
using System.Threading.Tasks;
55

6-
namespace Azure.Experiments
6+
namespace Azure.Experiments.Network
77
{
8-
public sealed class SubnetObject : AzureObject<Subnet>
8+
public sealed class SubnetObject : AzureObject<Subnet, SubnetPolicy>
99
{
1010
public string AddressPrefix { get; }
1111

0 commit comments

Comments
 (0)