Skip to content

Commit 76129f3

Browse files
IState
1 parent 5b03081 commit 76129f3

File tree

5 files changed

+35
-7
lines changed

5 files changed

+35
-7
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace Microsoft.Azure.Experiments
2+
{
3+
public interface IState
4+
{
5+
T GetInfo<T>(IResourceConfig<T> resourceConfig);
6+
}
7+
}

experiments/Azure.Experiments/Azure.Experiments/Network/NetworkInterfacePolicy.cs

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,23 @@ public static ResourceConfig<ResourceName, NetworkInterface> CreateNetworkInterf
2323
=> resourceGroup.CreateResourceConfig(
2424
Policy,
2525
name,
26-
_ => new NetworkInterface(),
26+
state => new NetworkInterface
27+
{
28+
IpConfigurations = new[]
29+
{
30+
new NetworkInterfaceIPConfiguration
31+
{
32+
PublicIPAddress = new PublicIPAddress
33+
{
34+
Id = state.GetInfo(publicIPAddress).Id
35+
}
36+
}
37+
},
38+
NetworkSecurityGroup = new NetworkSecurityGroup
39+
{
40+
Id = state.GetInfo(networkSecurityGroup).Id
41+
}
42+
},
2743
new IResourceConfig[] { virtualNetwork, networkSecurityGroup, publicIPAddress });
2844
}
2945
}

experiments/Azure.Experiments/Azure.Experiments/Network/VirtualNetworkPolicy.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public static class VirtualNetworkPolicy
1717
public static ResourceConfig<ResourceName, VirtualNetwork> CreateVirtualNetworkConfig(
1818
this ResourceConfig<string, ResourceGroup> resourceGroup,
1919
string name)
20-
=> resourceGroup.CreateResourceConfig(Policy, name, _ => new VirtualNetwork());
20+
=> resourceGroup.CreateResourceConfig(
21+
Policy, name, _ => new VirtualNetwork());
2122
}
2223
}

experiments/Azure.Experiments/Azure.Experiments/ResourceConfig.cs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,32 +7,36 @@ public interface IResourceConfig
77
{
88
}
99

10+
public interface IResourceConfig<Info> : IResourceConfig
11+
{
12+
}
13+
1014
public static class ResourceConfig
1115
{
1216
public static ResourceConfig<Name, Info> CreateResourceConfig<Name, Info>(
1317
this ResourcePolicy<Name, Info> policy,
1418
Name name,
15-
Func<string, Info> info,
19+
Func<IState, Info> info,
1620
IEnumerable<IResourceConfig> dependencies = null)
1721
where Info : class
1822
=> new ResourceConfig<Name, Info>(policy, name, info, dependencies.EmptyIfNull());
1923
}
2024

21-
public sealed class ResourceConfig<TName, Info> : IResourceConfig
25+
public sealed class ResourceConfig<TName, Info> : IResourceConfig<Info>
2226
where Info : class
2327
{
2428
public ResourcePolicy<TName, Info> Policy { get; }
2529

2630
public TName Name { get; }
2731

28-
public Func<string, Info> CreateInfo { get; }
32+
public Func<IState, Info> CreateInfo { get; }
2933

3034
public IEnumerable<IResourceConfig> Dependencies { get; }
3135

3236
public ResourceConfig(
3337
ResourcePolicy<TName, Info> policy,
3438
TName name,
35-
Func<string, Info> createInfo,
39+
Func<IState, Info> createInfo,
3640
IEnumerable<IResourceConfig> dependencies)
3741
{
3842
Policy = policy;

experiments/Azure.Experiments/Azure.Experiments/ResourceManager/ResourceGroupPolicy.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public static ResourceConfig<ResourceName, Info> CreateResourceConfig<Info>(
2323
this ResourceConfig<string, ResourceGroup> resourceGroup,
2424
ResourcePolicy<ResourceName, Info> policy,
2525
string name,
26-
Func<string, Info> createInfo,
26+
Func<IState, Info> createInfo,
2727
IEnumerable<IResourceConfig> dependencies = null)
2828
where Info : class
2929
=> policy.CreateResourceConfig(

0 commit comments

Comments
 (0)