コード例 #1
0
        public async Task UpdateRecordSetPreconditionFailed()
        {
            var namespaceName = Recording.GenerateAssetName("sdk-RecordSet");
            var cnameRecord   = new CnameRecord {
                Cname = "www.contoso.example.com"
            };
            var recordName         = "cname_record";
            var testCnameRecordSet = new RecordSet("test_id", recordName, "Cname", null, this.metadata, 60, null, null, null, this.dummyARecords, this.dummyAaaaRecords, this.dummyMxRecords,
                                                   this.dummyNsRecords, this.dummyPtrRecords, this.dummySrvRecords, this.dummyTxtRecords, cnameRecord, null, this.dummyCaaRecords);

            var createRecordSetResponse = await RecordSetsOperations.CreateOrUpdateAsync(resourceGroup, this.zoneNameForList, recordName, RecordType.Cname, testCnameRecordSet);

            bool exceptionCaught = false;

            try
            {
                await RecordSetsOperations.CreateOrUpdateAsync(
                    this.resourceGroup,
                    this.zoneNameForList,
                    recordName,
                    RecordType.Cname,
                    ifMatch : "somegibberish",
                    ifNoneMatch : null,
                    parameters : testCnameRecordSet);
            }
            catch (Azure.RequestFailedException)
            {
                exceptionCaught = true;
            }
            finally
            {
                Assert.True(exceptionCaught);
            }
        }
コード例 #2
0
        public async Task DnsUpdateARecord()
        {
            var namespaceName = Recording.GenerateAssetName("sdk-RecordSet");
            var aRecords      = new ChangeTrackingList <ARecord>
            {
                new ARecord {
                    Ipv4Address = "123.32.1.0"
                }
            };
            var recordName     = "a_update_record";
            var testARecordSet = new RecordSet("test_id", recordName, "A", null, this.metadata, 60, null, null, null, aRecords, this.dummyAaaaRecords, this.dummyMxRecords,
                                               this.dummyNsRecords, this.dummyPtrRecords, this.dummySrvRecords, this.dummyTxtRecords, null, null, this.dummyCaaRecords);

            var createRecordSetResponse = await RecordSetsOperations.CreateOrUpdateAsync(resourceGroup, this.zoneNameForList, recordName, RecordType.A, testARecordSet);

            Assert.True(Helper.AreEqual(createRecordSetResponse, testARecordSet, ignoreEtag: true));
            var getResponseARecord = await RecordSetsOperations.GetAsync(this.resourceGroup, this.zoneNameForList, recordName, RecordType.A);

            var aRecord = getResponseARecord.Value;

            aRecord.TTL = 120; //update TTL from 60 to 120
            var updateResponse = await RecordSetsOperations.CreateOrUpdateAsync(this.resourceGroup, this.zoneNameForList, recordName, RecordType.A, aRecord);

            Assert.AreEqual(updateResponse.Value.TTL, 120);
            var deleteRecordSetResponse = await RecordSetsOperations.DeleteAsync(resourceGroup, this.zoneNameForList, recordName, RecordType.A);

            Assert.NotNull(deleteRecordSetResponse);
        }
コード例 #3
0
        public async Task CreateGetSrv()
        {
            var srvRecords = new ChangeTrackingList <SrvRecord>
            {
                new SrvRecord
                {
                    Target   = "bt2.scsfsm.com",
                    Priority = 0,
                    Weight   = 2,
                    Port     = 44
                },
                new SrvRecord
                {
                    Target   = "bt1.scsfsm.com",
                    Priority = 1,
                    Weight   = 1,
                    Port     = 45
                },
            };

            var recordName       = "srv_record";
            var testSrvRecordSet = new RecordSet("test_id", recordName, "SRV", null, this.metadata, 60, null, null, null, this.dummyARecords, this.dummyAaaaRecords, this.dummyMxRecords,
                                                 this.dummyNsRecords, this.dummyPtrRecords, srvRecords, this.dummyTxtRecords, null, null, this.dummyCaaRecords);
            var createRecordSetResponse = await RecordSetsOperations.CreateOrUpdateAsync(resourceGroup, this.zoneNameForList, recordName, RecordType.SRV, testSrvRecordSet);

            Assert.True(Helper.AreEqual(createRecordSetResponse, testSrvRecordSet, ignoreEtag: true));
        }
コード例 #4
0
        public async Task DnsRecordSetUpdateSoa()
        {
            var namespaceName = Recording.GenerateAssetName("sdk-RecordSet");
            var ipv6Addr      = "1:1:1:1:1:ffff:783f:e6dc";
            var AaaaRecords   = new ChangeTrackingList <AaaaRecord>
            {
                new AaaaRecord {
                    Ipv6Address = ipv6Addr
                },
            };
            var recordName     = "soa_record";
            var testARecordSet = new RecordSet("test_id", recordName, "Aaaa", null, this.metadata, 3600, null, null, null, this.dummyARecords, AaaaRecords, this.dummyMxRecords,
                                               this.dummyNsRecords, this.dummyPtrRecords, this.dummySrvRecords, this.dummyTxtRecords, null, null, this.dummyCaaRecords);

            var createRecordSetResponse = await RecordSetsOperations.CreateOrUpdateAsync(resourceGroup, this.zoneNameForList, recordName, RecordType.Aaaa, testARecordSet);

            Assert.NotNull(createRecordSetResponse);
            var getResponseSoa = await RecordSetsOperations.GetAsync(this.resourceGroup, this.zoneNameForList, "@", RecordType.SOA);

            var soaRecord = getResponseSoa.Value;

            soaRecord.SoaRecord.ExpireTime  = 123;
            soaRecord.SoaRecord.MinimumTtl  = 1234;
            soaRecord.SoaRecord.RefreshTime = 12345;
            soaRecord.SoaRecord.RetryTime   = 123456;
            var updateResponse = await RecordSetsOperations.CreateOrUpdateAsync(this.resourceGroup, this.zoneNameForList, "@", RecordType.SOA, soaRecord);

            Assert.True(Helper.AreEqual(updateResponse, soaRecord, ignoreEtag: true));
            var deleteRecordSetResponse = await RecordSetsOperations.DeleteAsync(resourceGroup, this.zoneNameForList, recordName, RecordType.A);
        }
コード例 #5
0
        public async Task DnsMultiRecordCreateDelete()
        {
            var namespaceName = Recording.GenerateAssetName("sdk-RecordSet");
            var AaaaRecords   = new ChangeTrackingList <AaaaRecord>
            {
                new AaaaRecord {
                    Ipv6Address = "1:1:1:1:1:ffff:783f:e6dc"
                },
                new AaaaRecord {
                    Ipv6Address = "0:0:0:0:0:ffff:403:201"
                },
            };

            var recordName     = "aaaa_multi_record";
            var testARecordSet = new RecordSet("test_id", recordName, "Aaaa", null, this.metadata, 3600, null, null, null, this.dummyARecords, AaaaRecords,
                                               this.dummyMxRecords, this.dummyNsRecords, this.dummyPtrRecords, this.dummySrvRecords, this.dummyTxtRecords, null, null, this.dummyCaaRecords);

            var createRecordSetResponse = await RecordSetsOperations.CreateOrUpdateAsync(resourceGroup, this.zoneNameForList, recordName, RecordType.Aaaa, testARecordSet);

            Assert.NotNull(createRecordSetResponse);
            Assert.AreEqual(createRecordSetResponse.Value.Name, recordName);
            var deleteRecordSetResponse = await RecordSetsOperations.DeleteAsync(resourceGroup, this.zoneNameForList, recordName, RecordType.A);

            Assert.NotNull(deleteRecordSetResponse);
        }
コード例 #6
0
        public async Task DnsUpdateARecordMultiRecord()
        {
            var namespaceName = Recording.GenerateAssetName("sdk-RecordSet");
            var aRecords      = new ChangeTrackingList <ARecord>
            {
                new ARecord {
                    Ipv4Address = "123.32.1.0"
                }
            };
            var recordName     = "a_multi_record";
            var testARecordSet = new RecordSet("test_id", recordName, "A", null, this.metadata, 60, null, null, null, aRecords, this.dummyAaaaRecords, this.dummyMxRecords,
                                               this.dummyNsRecords, this.dummyPtrRecords, this.dummySrvRecords, this.dummyTxtRecords, null, null, this.dummyCaaRecords);

            var createRecordSetResponse = await RecordSetsOperations.CreateOrUpdateAsync(resourceGroup, this.zoneNameForList, recordName, RecordType.A, testARecordSet);

            Assert.True(Helper.AreEqual(createRecordSetResponse, testARecordSet, ignoreEtag: true));
            var getResponseARecord = await RecordSetsOperations.GetAsync(this.resourceGroup, this.zoneNameForList, recordName, RecordType.A);

            var aRecord = getResponseARecord.Value;

            aRecord.TTL = 120; //update TTL from 60 to 120
            aRecord.ARecords.Clear();
            var aList = new List <ARecord>
            {
                new ARecord {
                    Ipv4Address = "123.32.1.0"
                },
                new ARecord {
                    Ipv4Address = "101.10.0.1"
                },
                new ARecord {
                    Ipv4Address = "22.33.44.55"
                },
            };

            ((List <ARecord>)aRecord.ARecords).AddRange(aList);
            var updateResponse = await RecordSetsOperations.CreateOrUpdateAsync(this.resourceGroup, this.zoneNameForList, recordName, RecordType.A, aRecord);

            var updatedRecords = updateResponse.Value;

            Assert.AreEqual(updatedRecords.TTL, 120);
            for (int i = 0; i < aList.Count; i++)
            {
                Assert.True(updatedRecords.ARecords[i].Ipv4Address == aList[i].Ipv4Address);
            }
            Assert.False(string.IsNullOrWhiteSpace(updatedRecords.Etag));
            var deleteRecordSetResponse = await RecordSetsOperations.DeleteAsync(resourceGroup, this.zoneNameForList, recordName, RecordType.A);

            Assert.NotNull(deleteRecordSetResponse);
        }
        public async Task DnsRecordSetListByResourceGroup()
        {
            var namespaceName = Recording.GenerateAssetName("sdk-RecordSet");
            var aZone         = new Zone("Global");

            aZone.ZoneType = ZoneType.Public;
            var zoneName = "azure.ameredmondlocal2.dns";
            await ZonesOperations.CreateOrUpdateAsync(resourceGroup, zoneName, aZone);

            var ipv6Addr    = "1:1:1:1:1:ffff:783f:e6dc";
            var AaaaRecords = new ChangeTrackingList <AaaaRecord>
            {
                new AaaaRecord {
                    Ipv6Address = ipv6Addr
                },
            };
            var recordName     = "aaaa_record";
            var testARecordSet = new RecordSet("test_id", recordName, "Aaaa", null, this.metadata, 3600, null, null, null, this.dummyARecords, AaaaRecords, this.dummyMxRecords,
                                               this.dummyNsRecords, this.dummyPtrRecords, this.dummySrvRecords, this.dummyTxtRecords, null, null, this.dummyCaaRecords);

            var createRecordSetResponse = await RecordSetsOperations.CreateOrUpdateAsync(this.resourceGroup, zoneName, recordName, RecordType.Aaaa, testARecordSet);

            Assert.NotNull(createRecordSetResponse);
            var listResponse = RecordSetsOperations.ListAllByDnsZoneAsync(this.resourceGroup, zoneName);

            Assert.NotNull(listResponse);
            var allResults = await listResponse.ToEnumerableAsync();

            Assert.True(allResults.Count == 3); //SOA and NS record should exist
            RecordSet aaaaRecord = null;

            foreach (var arecord in allResults)
            {
                if (arecord.Type == "Microsoft.Network/dnszones/AAAA")
                {
                    aaaaRecord = arecord;
                    break;
                }
            }
            Assert.NotNull(aaaaRecord);;
            Assert.AreEqual(aaaaRecord.AaaaRecords[0].Ipv6Address, ipv6Addr);
            var deleteRecordSetResponse = await RecordSetsOperations.DeleteAsync(this.resourceGroup, zoneName, recordName, RecordType.A);

            var deleteZoneResponse = await ZonesOperations.StartDeleteAsync(resourceGroup, zoneName);

            Assert.NotNull(deleteZoneResponse);
        }
コード例 #8
0
        public async Task CreateGetTxt()
        {
            var txtRecords = new ChangeTrackingList <TxtRecord>
            {
                new TxtRecord(new List <string> {
                    "lorem"
                }),
                new TxtRecord(new List <string> {
                    "ipsum"
                }),
            };
            var recordName       = "txt_record";
            var testTxtRecordSet = new RecordSet("test_id", recordName, "TXT", null, this.metadata, 60, null, null, null, this.dummyARecords, this.dummyAaaaRecords, this.dummyMxRecords,
                                                 this.dummyNsRecords, this.dummyPtrRecords, this.dummySrvRecords, txtRecords, null, null, this.dummyCaaRecords);
            var createRecordSetResponse = await RecordSetsOperations.CreateOrUpdateAsync(resourceGroup, this.zoneNameForList, recordName, RecordType.TXT, testTxtRecordSet);

            Assert.True(Helper.AreEqual(createRecordSetResponse, testTxtRecordSet, ignoreEtag: true));
        }
コード例 #9
0
        public async Task CreateGetPtr()
        {
            var ptrRecords = new ChangeTrackingList <PtrRecord>
            {
                new PtrRecord {
                    Ptrdname = "www1.scsfsm.com"
                },
                new PtrRecord {
                    Ptrdname = "www2.scsfsm.com"
                },
            };
            var recordName       = "ptr_record";
            var testPtrRecordSet = new RecordSet("test_id", recordName, "PTR", null, this.metadata, 60, null, null, null, this.dummyARecords, this.dummyAaaaRecords, this.dummyMxRecords,
                                                 this.dummyNsRecords, ptrRecords, this.dummySrvRecords, this.dummyTxtRecords, null, null, this.dummyCaaRecords);
            var createRecordSetResponse = await RecordSetsOperations.CreateOrUpdateAsync(resourceGroup, this.zoneNameForList, recordName, RecordType.PTR, testPtrRecordSet);

            Assert.True(Helper.AreEqual(createRecordSetResponse, testPtrRecordSet, ignoreEtag: true));
        }
コード例 #10
0
        public async Task CreateGetMx()
        {
            var mxRecords = new ChangeTrackingList <MxRecord>
            {
                new MxRecord {
                    Exchange = "mail1.scsfsm.com", Preference = 1
                },
                new MxRecord {
                    Exchange = "mail2.scsfsm.com", Preference = 2
                },
            };
            var recordName      = "mx_record";
            var testMxRecordSet = new RecordSet("test_id", recordName, "MX", null, this.metadata, 60, null, null, null, this.dummyARecords, this.dummyAaaaRecords, mxRecords,
                                                this.dummyNsRecords, this.dummyPtrRecords, this.dummySrvRecords, this.dummyTxtRecords, null, null, this.dummyCaaRecords);
            var createRecordSetResponse = await RecordSetsOperations.CreateOrUpdateAsync(resourceGroup, this.zoneNameForList, recordName, RecordType.MX, testMxRecordSet);

            Assert.True(Helper.AreEqual(createRecordSetResponse, testMxRecordSet, ignoreEtag: true));
        }
        public async Task DnsRecordSetListByResourceGroupTop()
        {
            var namespaceName = Recording.GenerateAssetName("sdk-RecordSet");
            var aZone         = new Zone("Global");

            aZone.ZoneType = ZoneType.Public;
            var zoneName = "azure.ameredmondlocaltoptest.dns";
            await ZonesOperations.CreateOrUpdateAsync(resourceGroup, zoneName, aZone);

            //var ipv6Addr = "1:1:1:1:1:ffff:783f:e6dc";
            var AaaaRecords = new ChangeTrackingList <AaaaRecord>
            {
                new AaaaRecord {
                    Ipv6Address = "1:1:1:1:1:ffff:783f:e6dc"
                },
                new AaaaRecord {
                    Ipv6Address = "0:0:0:0:0:ffff:403:201"
                },
            };
            var recordName     = "aaaa_record666";
            var testARecordSet = new RecordSet("test_id1", recordName, "Aaaa", null, this.metadata, 3600, null, null, null, this.dummyARecords, AaaaRecords, this.dummyMxRecords,
                                               this.dummyNsRecords, this.dummyPtrRecords, this.dummySrvRecords, this.dummyTxtRecords, null, null, this.dummyCaaRecords);

            var createRecordSetResponse = await RecordSetsOperations.CreateOrUpdateAsync(this.resourceGroup, zoneName, recordName, RecordType.Aaaa, testARecordSet);

            Assert.NotNull(createRecordSetResponse);
            recordName     = "aaaa_record2";
            testARecordSet = new RecordSet("test_id2", recordName, "Aaaa", null, this.metadata, 3600, null, null, null, this.dummyARecords, AaaaRecords, this.dummyMxRecords,
                                           this.dummyNsRecords, this.dummyPtrRecords, this.dummySrvRecords, this.dummyTxtRecords, null, null, this.dummyCaaRecords);
            createRecordSetResponse = await RecordSetsOperations.CreateOrUpdateAsync(this.resourceGroup, zoneName, recordName, RecordType.Aaaa, testARecordSet);

            var listResponse = RecordSetsOperations.ListByDnsZoneAsync(this.resourceGroup, zoneName, 1);
            var t            = listResponse.AsPages();
            var pageResults  = await t.ToEnumerableAsync();

            Assert.True(pageResults.Count > 1);
            var deleteRecordSetResponse = await RecordSetsOperations.DeleteAsync(this.resourceGroup, zoneName, recordName, RecordType.A);

            var deleteZoneResponse = await ZonesOperations.StartDeleteAsync(resourceGroup, zoneName);

            Assert.NotNull(deleteZoneResponse);
        }
コード例 #12
0
        public async Task DnsCreateARecordDelete()
        {
            var namespaceName = Recording.GenerateAssetName("sdk-RecordSet");
            var aRecords      = new ChangeTrackingList <ARecord>
            {
                new ARecord {
                    Ipv4Address = "127.0.0.1"
                }
            };
            var recordName     = "a_record";
            var testARecordSet = new RecordSet("test_id", recordName, "A", null, this.metadata, 3600, null, null, null, aRecords, this.dummyAaaaRecords, this.dummyMxRecords,
                                               this.dummyNsRecords, this.dummyPtrRecords, this.dummySrvRecords, this.dummyTxtRecords, null, null, this.dummyCaaRecords);

            var createRecordSetResponse = await RecordSetsOperations.CreateOrUpdateAsync(this.resourceGroup, zoneNameForList, recordName, RecordType.A, testARecordSet);

            Assert.NotNull(createRecordSetResponse);
            Assert.AreEqual(createRecordSetResponse.Value.Name, recordName);
            var deleteRecordSetResponse = await RecordSetsOperations.DeleteAsync(this.resourceGroup, zoneNameForList, recordName, RecordType.A);

            Assert.NotNull(deleteRecordSetResponse);
        }
コード例 #13
0
 /// <summary>
 /// Initializes client properties.
 /// </summary>
 private void Initialize()
 {
     RecordSets                       = new RecordSetsOperations(this);
     Zones                            = new ZonesOperations(this);
     DnsResourceReference             = new DnsResourceReferenceOperations(this);
     BaseUri                          = new System.Uri("https://management.azure.com");
     ApiVersion                       = "2018-05-01";
     AcceptLanguage                   = "en-US";
     LongRunningOperationRetryTimeout = 30;
     GenerateClientRequestId          = true;
     SerializationSettings            = new JsonSerializerSettings
     {
         Formatting            = Newtonsoft.Json.Formatting.Indented,
         DateFormatHandling    = Newtonsoft.Json.DateFormatHandling.IsoDateFormat,
         DateTimeZoneHandling  = Newtonsoft.Json.DateTimeZoneHandling.Utc,
         NullValueHandling     = Newtonsoft.Json.NullValueHandling.Ignore,
         ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize,
         ContractResolver      = new ReadOnlyJsonContractResolver(),
         Converters            = new List <JsonConverter>
         {
             new Iso8601TimeSpanConverter()
         }
     };
     SerializationSettings.Converters.Add(new TransformationJsonConverter());
     DeserializationSettings = new JsonSerializerSettings
     {
         DateFormatHandling    = Newtonsoft.Json.DateFormatHandling.IsoDateFormat,
         DateTimeZoneHandling  = Newtonsoft.Json.DateTimeZoneHandling.Utc,
         NullValueHandling     = Newtonsoft.Json.NullValueHandling.Ignore,
         ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize,
         ContractResolver      = new ReadOnlyJsonContractResolver(),
         Converters            = new List <JsonConverter>
         {
             new Iso8601TimeSpanConverter()
         }
     };
     CustomInitialize();
     DeserializationSettings.Converters.Add(new TransformationJsonConverter());
     DeserializationSettings.Converters.Add(new CloudErrorJsonConverter());
 }
コード例 #14
0
        public async Task DnsZoneMultiRecordCreateDelete()
        {
            var namespaceName = Recording.GenerateAssetName("sdk-RecordSet");
            var aZone         = new Zone("Global");
            var tags          = new Dictionary <string, string>
            {
                { "key1", "value1" }
            };

            aZone.ZoneType = ZoneType.Public;
            var zoneName = "azure.ameredmondlocal2.dns";
            await ZonesOperations.CreateOrUpdateAsync(resourceGroup, zoneName, aZone);

            var AaaaRecords = new ChangeTrackingList <AaaaRecord>
            {
                new AaaaRecord {
                    Ipv6Address = "1:1:1:1:1:ffff:783f:e6dc"
                },
                new AaaaRecord {
                    Ipv6Address = "0:0:0:0:0:ffff:403:201"
                },
            };

            var recordName     = "record2";
            var testARecordSet = new RecordSet("test_id", recordName, "Aaaa", null, this.metadata, 3600, null, null, null, this.dummyARecords, AaaaRecords,
                                               this.dummyMxRecords, this.dummyNsRecords, this.dummyPtrRecords, this.dummySrvRecords, this.dummyTxtRecords, null, null, this.dummyCaaRecords);

            var createRecordSetResponse = await RecordSetsOperations.CreateOrUpdateAsync(resourceGroup, zoneName, recordName, RecordType.Aaaa, testARecordSet);

            Assert.NotNull(createRecordSetResponse);
            Console.WriteLine(createRecordSetResponse.Value.Name);
            Assert.AreEqual(createRecordSetResponse.Value.Name, recordName);
            var deleteRecordSetResponse = await RecordSetsOperations.DeleteAsync(resourceGroup, zoneName, recordName, RecordType.A);

            Assert.NotNull(deleteRecordSetResponse);
            var deleteZoneResponse = await ZonesOperations.StartDeleteAsync(resourceGroup, zoneName);

            Assert.NotNull(deleteZoneResponse);
        }