コード例 #1
0
        protected override void ProcessRecord()
        {
            base.ProcessRecord();

            ResourceRecordSetsResource.ListRequest rrsetListRequest =
                Service.ResourceRecordSets.List(Project, Zone);
            ResourceRecordSetsListResponse rrsetListResponse = rrsetListRequest.Execute();
            IList <ResourceRecordSet>      rrsetList         = rrsetListResponse.Rrsets;

            if (!(Filter == null || Filter.Length == 0))
            {
                HashSet <string>            TypeFilterHash = new HashSet <string>(Filter);
                HashSet <ResourceRecordSet> rrsetHash      = new HashSet <ResourceRecordSet>(rrsetList);

                foreach (ResourceRecordSet rrset in rrsetList)
                {
                    if (!TypeFilterHash.Contains(rrset.Type))
                    {
                        rrsetHash.Remove(rrset);
                    }
                }

                WriteObject(rrsetHash, true);
            }
            else
            {
                WriteObject(rrsetList, true);
            }
        }
コード例 #2
0
        protected override void ProcessRecord()
        {
            base.ProcessRecord();

            if (!ShouldProcess($"{Project}/{Zone}", "Delete ManagedZone"))
            {
                return;
            }

            ResourceRecordSetsResource.ListRequest rrsetListRequest =
                Service.ResourceRecordSets.List(Project, Zone);
            ResourceRecordSetsListResponse rrsetListResponse = rrsetListRequest.Execute();
            IList <ResourceRecordSet>      rrsetList         = rrsetListResponse.Rrsets;

            IList <ResourceRecordSet> nonDefaultRrsets = new List <ResourceRecordSet>();

            foreach (ResourceRecordSet rrset in rrsetList)
            {
                if (!rrset.Type.Equals("NS") && !rrset.Type.Equals("SOA"))
                {
                    nonDefaultRrsets.Add(rrset);
                }
            }

            if (nonDefaultRrsets.Count > 0)
            {
                if (!Force &&
                    !ShouldContinue($"{Project}/{Zone}", "Delete Non-Empty ManagedZone (with non-NS/SOA records)"))
                {
                    return;
                }

                Change changeContent = new Change
                {
                    Deletions = nonDefaultRrsets
                };

                ChangesResource.CreateRequest changeCreateRequest =
                    Service.Changes.Create(changeContent, Project, Zone);
                changeCreateRequest.Execute();
            }

            ManagedZonesResource.DeleteRequest zoneDeleteRequest = Service.ManagedZones.Delete(Project, Zone);
            zoneDeleteRequest.Execute();
        }
コード例 #3
0
        /// <summary>
        /// Returns all resource record sets in zone 'zone' in project 'project'.
        /// Apply filters if neccessary.
        /// </summary>
        private IEnumerable <ResourceRecordSet> GetResourceRecordSet(string project, string zone, string[] filters)
        {
            ResourceRecordSetsResource.ListRequest rrsetListRequest =
                Service.ResourceRecordSets.List(project, zone);
            do
            {
                ResourceRecordSetsListResponse rrsetListResponse = rrsetListRequest.Execute();
                IList <ResourceRecordSet>      rrsetList         = rrsetListResponse.Rrsets;
                if (rrsetList != null)
                {
                    if (filters != null && filters.Length != 0)
                    {
                        HashSet <string>            TypeFilterHash = new HashSet <string>(filters);
                        HashSet <ResourceRecordSet> rrsetHash      = new HashSet <ResourceRecordSet>(rrsetList);

                        foreach (ResourceRecordSet rrset in rrsetList)
                        {
                            if (!TypeFilterHash.Contains(rrset.Type))
                            {
                                rrsetHash.Remove(rrset);
                            }
                        }
                        foreach (ResourceRecordSet record in rrsetHash)
                        {
                            yield return(record);
                        }
                    }
                    else
                    {
                        foreach (ResourceRecordSet record in rrsetList)
                        {
                            yield return(record);
                        }
                    }
                }

                rrsetListRequest.PageToken = rrsetListResponse.NextPageToken;
            }while (rrsetListRequest.PageToken != null);
        }