public async Task List()
        {
            SubscriptionResource subscription = await Client.GetDefaultSubscriptionAsync();

            string rgName            = Recording.GenerateAssetName("testRg-");
            ResourceGroupResource rg = await CreateResourceGroup(subscription, rgName);

            string policyAssignmentName = Recording.GenerateAssetName("polAssign-");
            PolicyAssignmentResource policyAssignment = await CreatePolicyAssignment(rg, policyAssignmentName);

            string policyExemptionName1 = Recording.GenerateAssetName("polExemp-");
            string policyExemptionName2 = Recording.GenerateAssetName("polExemp-");

            _ = await CreatePolicyExemption(rg, policyAssignment, policyExemptionName1);

            _ = await CreatePolicyExemption(rg, policyAssignment, policyExemptionName2);

            int    count  = 0;
            string filter = $"policyAssignmentId eq '{policyAssignment.Id}'";

            await foreach (var policyExemption in rg.GetPolicyExemptions().GetAllAsync(filter))
            {
                count++;
            }
            Assert.AreEqual(count, 2);
        }
コード例 #2
0
        public async Task CreateOrUpdateAtSubscription()
        {
            SubscriptionResource subscription = await Client.GetDefaultSubscriptionAsync();

            string policyAssignmentName = Recording.GenerateAssetName("polAssign-");
            PolicyAssignmentResource policyAssignment = await CreatePolicyAssignment(subscription, policyAssignmentName);

            Assert.AreEqual(policyAssignmentName, policyAssignment.Data.Name);
            Assert.ThrowsAsync <ArgumentNullException>(async() => _ = await subscription.GetPolicyAssignments().CreateOrUpdateAsync(WaitUntil.Completed, null, policyAssignment.Data));
            Assert.ThrowsAsync <ArgumentNullException>(async() => _ = await subscription.GetPolicyAssignments().CreateOrUpdateAsync(WaitUntil.Completed, policyAssignmentName, null));
        }
コード例 #3
0
        public async Task CreateOrUpdateAtMgmtGroup()
        {
            //This test uses a pre-created management group.
            ManagementGroupResource mgmtGroup = await GetCreatedManagementGroup();

            string policyAssignmentName = Recording.GenerateAssetName("polAssign-");
            PolicyAssignmentResource policyAssignment = await CreatePolicyAssignment(mgmtGroup, policyAssignmentName);

            Assert.AreEqual(policyAssignmentName, policyAssignment.Data.Name);
            Assert.ThrowsAsync <ArgumentNullException>(async() => _ = await mgmtGroup.GetPolicyAssignments().CreateOrUpdateAsync(WaitUntil.Completed, null, policyAssignment.Data));
            Assert.ThrowsAsync <ArgumentNullException>(async() => _ = await mgmtGroup.GetPolicyAssignments().CreateOrUpdateAsync(WaitUntil.Completed, policyAssignmentName, null));
        }
        public async Task Delete()
        {
            SubscriptionResource subscription = await Client.GetDefaultSubscriptionAsync();

            string policyAssignmentName = Recording.GenerateAssetName("polAssign-");
            PolicyAssignmentResource policyAssignment = await CreatePolicyAssignment(subscription, policyAssignmentName);

            await policyAssignment.DeleteAsync(WaitUntil.Completed);

            var ex = Assert.ThrowsAsync <RequestFailedException>(async() => await policyAssignment.GetAsync());

            Assert.AreEqual(404, ex.Status);
        }
コード例 #5
0
        public async Task Get()
        {
            SubscriptionResource subscription = await Client.GetDefaultSubscriptionAsync();

            string rgName            = Recording.GenerateAssetName("testRg-");
            ResourceGroupResource rg = await CreateResourceGroup(subscription, rgName);

            string policyAssignmentName = Recording.GenerateAssetName("polAssign-");
            PolicyAssignmentResource policyAssignment = await CreatePolicyAssignment(rg, policyAssignmentName);

            PolicyAssignmentResource getPolicyAssignment = await rg.GetPolicyAssignments().GetAsync(policyAssignmentName);

            AssertValidPolicyAssignment(policyAssignment, getPolicyAssignment);
            Assert.ThrowsAsync <ArgumentNullException>(async() => _ = await rg.GetPolicyAssignments().GetAsync(null));
        }
コード例 #6
0
        public async Task CreateOrUpdateAtResource()
        {
            SubscriptionResource subscription = await Client.GetDefaultSubscriptionAsync();

            string rgName            = Recording.GenerateAssetName("testRg-");
            ResourceGroupResource rg = await CreateResourceGroup(subscription, rgName);

            string          vnName = Recording.GenerateAssetName("testVn-");
            GenericResource vn     = await CreateGenericVirtualNetwork(subscription, rg, vnName);

            string policyAssignmentName = Recording.GenerateAssetName("polAssign-");
            PolicyAssignmentResource policyAssignment = await CreatePolicyAssignment(vn, policyAssignmentName);

            Assert.AreEqual(policyAssignmentName, policyAssignment.Data.Name);
            Assert.ThrowsAsync <ArgumentNullException>(async() => _ = await vn.GetPolicyAssignments().CreateOrUpdateAsync(WaitUntil.Completed, null, policyAssignment.Data));
            Assert.ThrowsAsync <ArgumentNullException>(async() => _ = await vn.GetPolicyAssignments().CreateOrUpdateAsync(WaitUntil.Completed, policyAssignmentName, null));
        }
        public async Task CreateOrUpdateAtResourceGroup()
        {
            SubscriptionResource subscription = await Client.GetDefaultSubscriptionAsync();

            string rgName            = Recording.GenerateAssetName("testRg-");
            ResourceGroupResource rg = await CreateResourceGroup(subscription, rgName);

            string policyAssignmentName = Recording.GenerateAssetName("polAssign-");
            PolicyAssignmentResource policyAssignment = await CreatePolicyAssignment(rg, policyAssignmentName);

            string policyExemptionName = Recording.GenerateAssetName("polExemp-");
            PolicyExemptionResource policyExemption = await CreatePolicyExemption(rg, policyAssignment, policyExemptionName);

            Assert.AreEqual(policyExemptionName, policyExemption.Data.Name);
            Assert.ThrowsAsync <ArgumentNullException>(async() => _ = await rg.GetPolicyExemptions().CreateOrUpdateAsync(WaitUntil.Completed, null, policyExemption.Data));
            Assert.ThrowsAsync <ArgumentNullException>(async() => _ = await rg.GetPolicyExemptions().CreateOrUpdateAsync(WaitUntil.Completed, policyExemptionName, null));
        }
コード例 #8
0
 private void AssertValidPolicyAssignment(PolicyAssignmentResource model, PolicyAssignmentResource getResult)
 {
     Assert.AreEqual(model.Data.Name, getResult.Data.Name);
     Assert.AreEqual(model.Data.Id, getResult.Data.Id);
     Assert.AreEqual(model.Data.ResourceType, getResult.Data.ResourceType);
     Assert.AreEqual(model.Data.Location, getResult.Data.Location);
     Assert.AreEqual(model.Data.Identity, getResult.Data.Identity);
     Assert.AreEqual(model.Data.DisplayName, getResult.Data.DisplayName);
     Assert.AreEqual(model.Data.PolicyDefinitionId, getResult.Data.PolicyDefinitionId);
     Assert.AreEqual(model.Data.Scope, getResult.Data.Scope);
     Assert.AreEqual(model.Data.ExcludedScopes, getResult.Data.ExcludedScopes);
     if (model.Data.Parameters != null || getResult.Data.Parameters != null)
     {
         Assert.NotNull(model.Data.Parameters);
         Assert.NotNull(getResult.Data.Parameters);
         Assert.AreEqual(model.Data.Parameters.Count, getResult.Data.Parameters.Count);
         foreach (KeyValuePair <string, ArmPolicyParameterValue> kv in model.Data.Parameters)
         {
             Assert.True(getResult.Data.Parameters.ContainsKey(kv.Key));
             Assert.AreEqual(kv.Value.Value, getResult.Data.Parameters[kv.Key]);
         }
     }
     Assert.AreEqual(model.Data.Description, getResult.Data.Description);
     Assert.AreEqual(model.Data.Metadata.ToArray(), getResult.Data.Metadata.ToArray());
     Assert.AreEqual(model.Data.EnforcementMode, getResult.Data.EnforcementMode);
     if (model.Data.NonComplianceMessages != null || getResult.Data.NonComplianceMessages != null)
     {
         Assert.NotNull(model.Data.NonComplianceMessages);
         Assert.NotNull(getResult.Data.NonComplianceMessages);
         Assert.AreEqual(model.Data.NonComplianceMessages.Count, getResult.Data.NonComplianceMessages.Count);
         for (int i = 0; i < model.Data.NonComplianceMessages.Count; ++i)
         {
             Assert.AreEqual(model.Data.NonComplianceMessages[i].Message, getResult.Data.NonComplianceMessages[i].Message);
             Assert.AreEqual(model.Data.NonComplianceMessages[i].PolicyDefinitionReferenceId, getResult.Data.NonComplianceMessages[i].PolicyDefinitionReferenceId);
         }
     }
 }
コード例 #9
0
 public virtual PolicyAssignmentResource GetPolicyAssignmentResource(ResourceIdentifier id)
 {
     PolicyAssignmentResource.ValidateResourceId(id);
     return(new PolicyAssignmentResource(this, id));
 }
コード例 #10
0
        protected async Task <PolicyExemptionResource> CreatePolicyExemption(ArmResource armResource, PolicyAssignmentResource policyAssignment, string policyExemptionName)
        {
            PolicyExemptionData input = new PolicyExemptionData(policyAssignment.Id, new ExemptionCategory("Waiver"));
            ArmOperation <PolicyExemptionResource> lro = await armResource.GetPolicyExemptions().CreateOrUpdateAsync(WaitUntil.Completed, policyExemptionName, input);

            return(lro.Value);
        }