From 157f96b73de43aa7db4bfcca607b2e336e365ff7 Mon Sep 17 00:00:00 2001 From: Sergey Shandar Date: Thu, 9 Nov 2017 11:57:13 -0800 Subject: [PATCH] Separeted policies. --- .../Compute/ComputePolicy.cs | 18 ---------- .../Compute/VirtualMachinePolicy.cs | 28 +++++++++++++++ .../Network/NetworkPolicy.cs | 36 ------------------- .../Network/NetworkSecurityGroupPolicy.cs | 22 ++++++++++++ .../Network/PublicIPAddressPolicy.cs | 22 ++++++++++++ .../Network/VirtualNetworkPolicy.cs | 22 ++++++++++++ .../Azure.Experiments/ResourceConfig.cs | 4 +++ ...anagerPolicy.cs => ResourceGroupPolicy.cs} | 6 ++-- 8 files changed, 101 insertions(+), 57 deletions(-) create mode 100644 experiments/Azure.Experiments/Azure.Experiments/Compute/VirtualMachinePolicy.cs create mode 100644 experiments/Azure.Experiments/Azure.Experiments/Network/NetworkSecurityGroupPolicy.cs create mode 100644 experiments/Azure.Experiments/Azure.Experiments/Network/PublicIPAddressPolicy.cs create mode 100644 experiments/Azure.Experiments/Azure.Experiments/Network/VirtualNetworkPolicy.cs rename experiments/Azure.Experiments/Azure.Experiments/ResourceManager/{ResourceManagerPolicy.cs => ResourceGroupPolicy.cs} (86%) diff --git a/experiments/Azure.Experiments/Azure.Experiments/Compute/ComputePolicy.cs b/experiments/Azure.Experiments/Azure.Experiments/Compute/ComputePolicy.cs index e94a8fc3cfc7..c10d805cf02f 100644 --- a/experiments/Azure.Experiments/Azure.Experiments/Compute/ComputePolicy.cs +++ b/experiments/Azure.Experiments/Azure.Experiments/Compute/ComputePolicy.cs @@ -19,23 +19,5 @@ public static ResourcePolicy Create( .Create(getAsync, createOrUpdateAsync) .Transform(getOperations) .CreateResourcePolicy(i => i.Location, (i, location) => i.Location = location); - - public static ResourcePolicy VirtualMachine - { get; } - = Create( - client => client.VirtualMachines, - (operations, name) => operations.GetAsync(name.ResourceGroupName, name.Name), - (operations, name, info) - => operations.CreateOrUpdateAsync(name.ResourceGroupName, name.Name, info)); - - public static ResourceConfig CreateVirtualMachineConfig( - this ResourceConfig resourceGroup, - string name, - ResourceConfig networkInterface) - => resourceGroup.CreateResourceConfig( - VirtualMachine, - name, - new VirtualMachine(), - new [] { networkInterface }); } } diff --git a/experiments/Azure.Experiments/Azure.Experiments/Compute/VirtualMachinePolicy.cs b/experiments/Azure.Experiments/Azure.Experiments/Compute/VirtualMachinePolicy.cs new file mode 100644 index 000000000000..5698fd8ebb4c --- /dev/null +++ b/experiments/Azure.Experiments/Azure.Experiments/Compute/VirtualMachinePolicy.cs @@ -0,0 +1,28 @@ +using Microsoft.Azure.Experiments.ResourceManager; +using Microsoft.Azure.Management.Compute; +using Microsoft.Azure.Management.Compute.Models; +using Microsoft.Azure.Management.Network.Models; +using Microsoft.Azure.Management.ResourceManager.Models; + +namespace Microsoft.Azure.Experiments.Compute +{ + public static class VirtualMachinePolicy + { + public static ResourcePolicy Policy { get; } + = ComputePolicy.Create( + client => client.VirtualMachines, + (operations, name) => operations.GetAsync(name.ResourceGroupName, name.Name), + (operations, name, info) + => operations.CreateOrUpdateAsync(name.ResourceGroupName, name.Name, info)); + + public static ResourceConfig CreateVirtualMachineConfig( + this ResourceConfig resourceGroup, + string name, + ResourceConfig networkInterface) + => resourceGroup.CreateResourceConfig( + Policy, + name, + new VirtualMachine(), + new[] { networkInterface }); + } +} diff --git a/experiments/Azure.Experiments/Azure.Experiments/Network/NetworkPolicy.cs b/experiments/Azure.Experiments/Azure.Experiments/Network/NetworkPolicy.cs index 8967678762e6..b862f88a8b78 100644 --- a/experiments/Azure.Experiments/Azure.Experiments/Network/NetworkPolicy.cs +++ b/experiments/Azure.Experiments/Azure.Experiments/Network/NetworkPolicy.cs @@ -19,42 +19,6 @@ public static ResourcePolicy Create( .Transform(getOperations) .CreateResourcePolicy(i => i.Location, (i, location) => i.Location = location); - public static ResourcePolicy NetworkSecurityGroup { get; } - = Create( - client => client.NetworkSecurityGroups, - (operations, name) => operations.GetAsync(name.ResourceGroupName, name.Name), - (operations, name, info) - => operations.CreateOrUpdateAsync(name.ResourceGroupName, name.Name, info)); - - public static ResourceConfig CreateNetworkSecurityGroupConfig( - this ResourceConfig resourceGroup, - string name) - => resourceGroup.CreateResourceConfig(NetworkSecurityGroup, name, new NetworkSecurityGroup()); - - public static ResourcePolicy PublicIPAddress { get; } - = Create( - client => client.PublicIPAddresses, - (operations, name) => operations.GetAsync(name.ResourceGroupName, name.Name), - (operations, name, info) - => operations.CreateOrUpdateAsync(name.ResourceGroupName, name.Name, info)); - - public static ResourceConfig CreatePublicIPAddressConfig( - this ResourceConfig resourceGroup, - string name) - => resourceGroup.CreateResourceConfig(PublicIPAddress, name, new PublicIPAddress()); - - public static ResourcePolicy VirtualNetwork { get; } - = Create( - client => client.VirtualNetworks, - (operations, name) => operations.GetAsync(name.ResourceGroupName, name.Name), - (operations, name, info) - => operations.CreateOrUpdateAsync(name.ResourceGroupName, name.Name, info)); - - public static ResourceConfig CreateVirtualNetworkConfig( - this ResourceConfig resourceGroup, - string name) - => resourceGroup.CreateResourceConfig(VirtualNetwork, name, new VirtualNetwork()); - public static ResourcePolicy NetworkInterface { get; } = Create( client => client.NetworkInterfaces, diff --git a/experiments/Azure.Experiments/Azure.Experiments/Network/NetworkSecurityGroupPolicy.cs b/experiments/Azure.Experiments/Azure.Experiments/Network/NetworkSecurityGroupPolicy.cs new file mode 100644 index 000000000000..a1efa9d3ce95 --- /dev/null +++ b/experiments/Azure.Experiments/Azure.Experiments/Network/NetworkSecurityGroupPolicy.cs @@ -0,0 +1,22 @@ +using Microsoft.Azure.Experiments.ResourceManager; +using Microsoft.Azure.Management.Network; +using Microsoft.Azure.Management.Network.Models; +using Microsoft.Azure.Management.ResourceManager.Models; + +namespace Microsoft.Azure.Experiments.Network +{ + public static class NetworkSecurityGroupPolicy + { + public static ResourcePolicy Policy { get; } + = NetworkPolicy.Create( + client => client.NetworkSecurityGroups, + (operations, name) => operations.GetAsync(name.ResourceGroupName, name.Name), + (operations, name, info) + => operations.CreateOrUpdateAsync(name.ResourceGroupName, name.Name, info)); + + public static ResourceConfig CreateNetworkSecurityGroupConfig( + this ResourceConfig resourceGroup, + string name) + => resourceGroup.CreateResourceConfig(Policy, name, new NetworkSecurityGroup()); + } +} diff --git a/experiments/Azure.Experiments/Azure.Experiments/Network/PublicIPAddressPolicy.cs b/experiments/Azure.Experiments/Azure.Experiments/Network/PublicIPAddressPolicy.cs new file mode 100644 index 000000000000..82ea16d8192f --- /dev/null +++ b/experiments/Azure.Experiments/Azure.Experiments/Network/PublicIPAddressPolicy.cs @@ -0,0 +1,22 @@ +using Microsoft.Azure.Experiments.ResourceManager; +using Microsoft.Azure.Management.Network; +using Microsoft.Azure.Management.Network.Models; +using Microsoft.Azure.Management.ResourceManager.Models; + +namespace Microsoft.Azure.Experiments.Network +{ + public static class PublicIPAddressPolicy + { + public static ResourcePolicy Policy { get; } + = NetworkPolicy.Create( + client => client.PublicIPAddresses, + (operations, name) => operations.GetAsync(name.ResourceGroupName, name.Name), + (operations, name, info) + => operations.CreateOrUpdateAsync(name.ResourceGroupName, name.Name, info)); + + public static ResourceConfig CreatePublicIPAddressConfig( + this ResourceConfig resourceGroup, + string name) + => resourceGroup.CreateResourceConfig(Policy, name, new PublicIPAddress()); + } +} diff --git a/experiments/Azure.Experiments/Azure.Experiments/Network/VirtualNetworkPolicy.cs b/experiments/Azure.Experiments/Azure.Experiments/Network/VirtualNetworkPolicy.cs new file mode 100644 index 000000000000..50d19586bb10 --- /dev/null +++ b/experiments/Azure.Experiments/Azure.Experiments/Network/VirtualNetworkPolicy.cs @@ -0,0 +1,22 @@ +using Microsoft.Azure.Experiments.ResourceManager; +using Microsoft.Azure.Management.Network; +using Microsoft.Azure.Management.Network.Models; +using Microsoft.Azure.Management.ResourceManager.Models; + +namespace Microsoft.Azure.Experiments.Network +{ + public static class VirtualNetworkPolicy + { + public static ResourcePolicy Policy { get; } + = NetworkPolicy.Create( + client => client.VirtualNetworks, + (operations, name) => operations.GetAsync(name.ResourceGroupName, name.Name), + (operations, name, info) + => operations.CreateOrUpdateAsync(name.ResourceGroupName, name.Name, info)); + + public static ResourceConfig CreateVirtualNetworkConfig( + this ResourceConfig resourceGroup, + string name) + => resourceGroup.CreateResourceConfig(Policy, name, new VirtualNetwork()); + } +} diff --git a/experiments/Azure.Experiments/Azure.Experiments/ResourceConfig.cs b/experiments/Azure.Experiments/Azure.Experiments/ResourceConfig.cs index 920ed39cc198..e55581c1e36c 100644 --- a/experiments/Azure.Experiments/Azure.Experiments/ResourceConfig.cs +++ b/experiments/Azure.Experiments/Azure.Experiments/ResourceConfig.cs @@ -6,6 +6,10 @@ public interface IResourceConfig { } + public interface IResourceConfig + { + } + public static class ResourceConfig { public static ResourceConfig CreateResourceConfig( diff --git a/experiments/Azure.Experiments/Azure.Experiments/ResourceManager/ResourceManagerPolicy.cs b/experiments/Azure.Experiments/Azure.Experiments/ResourceManager/ResourceGroupPolicy.cs similarity index 86% rename from experiments/Azure.Experiments/Azure.Experiments/ResourceManager/ResourceManagerPolicy.cs rename to experiments/Azure.Experiments/Azure.Experiments/ResourceManager/ResourceGroupPolicy.cs index 286f87bee14e..93f0db780146 100644 --- a/experiments/Azure.Experiments/Azure.Experiments/ResourceManager/ResourceManagerPolicy.cs +++ b/experiments/Azure.Experiments/Azure.Experiments/ResourceManager/ResourceGroupPolicy.cs @@ -5,9 +5,9 @@ namespace Microsoft.Azure.Experiments.ResourceManager { - public static class ResourceManagerPolicy + public static class ResourceGroupPolicy { - public static ResourcePolicy ResourceGroup { get; } + public static ResourcePolicy Policy { get; } = OperationsPolicy .Create( (operations, name) => operations.GetAsync(name), @@ -16,7 +16,7 @@ public static class ResourceManagerPolicy .CreateResourcePolicy(i => i.Location, (i, location) => i.Location = location); public static ResourceConfig CreateResourceGroupConfig(string name) - => ResourceGroup.CreateResourceConfig(name, new ResourceGroup()); + => Policy.CreateResourceConfig(name, new ResourceGroup()); public static ResourceConfig CreateResourceConfig( this ResourceConfig resourceGroup,