dnscollector

package
v0.0.0-...-a4b4531 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 18, 2021 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Collector

type Collector struct {
	// contains filtered or unexported fields
}

Collector can find and delete IP addresses and DNS records in a GCP project

func New

func New(computeAPI ComputeAPI, dnsAPI DNSAPI, removalPredicate IPAddressRemovalPredicate) *Collector

New returns an new instance of the Collector

func (*Collector) Run

func (gc *Collector) Run(project string, managedZone string, regions []string, makeChanges bool) (allSucceeded bool, err error)

Run executes the collection process

type ComputeAPI

type ComputeAPI interface {
	LookupIPAddresses(project string, region string) ([]*compute.Address, error)
	DeleteIPAddress(project string, region string, address string) error
}

ComputeAPI abstracts over google Compute API

type ComputeServiceWrapper

type ComputeServiceWrapper struct {
	Context context.Context
	Compute *compute.Service
}

ComputeServiceWrapper A wrapper for compute API service.

func (*ComputeServiceWrapper) DeleteIPAddress

func (csw *ComputeServiceWrapper) DeleteIPAddress(project string, region string, address string) error

DeleteIPAddress delegates to GCP API to deletes specified IP Address

func (*ComputeServiceWrapper) LookupIPAddresses

func (csw *ComputeServiceWrapper) LookupIPAddresses(project string, region string) ([]*compute.Address, error)

LookupIPAddresses delegates to GCP Compute API to find all IP Addresses with a "RESERVED" status in a given region.

type DNSAPI

type DNSAPI interface {
	LookupDNSRecords(project string, managedZone string) ([]*dns.ResourceRecordSet, error)
	DeleteDNSRecord(project string, managedZone string, record *dns.ResourceRecordSet) error
}

DNSAPI abstracts over google DNS API

type DNSServiceWrapper

type DNSServiceWrapper struct {
	Context context.Context
	DNS     *dns.Service
}

DNSServiceWrapper A wrapper for dns API service.

func (*DNSServiceWrapper) DeleteDNSRecord

func (dsw *DNSServiceWrapper) DeleteDNSRecord(project string, managedZone string, recordToDelete *dns.ResourceRecordSet) error

DeleteDNSRecord delegates to GCP DNS API to delete specified DNS record

func (*DNSServiceWrapper) LookupDNSRecords

func (dsw *DNSServiceWrapper) LookupDNSRecords(project string, managedZone string) ([]*dns.ResourceRecordSet, error)

LookupDNSRecords delegates to GCP DNS API do find DNS Records in a specified managed zone.

type IPAddressRemovalPredicate

type IPAddressRemovalPredicate func(*compute.Address) (bool, error)

IPAddressRemovalPredicate returns true if IP Address matches removal criteria

func DefaultIPAddressRemovalPredicate

func DefaultIPAddressRemovalPredicate(addressRegexpList []*regexp.Regexp, minAgeInHours int) IPAddressRemovalPredicate

DefaultIPAddressRemovalPredicate returns the default IPAddressRemovalPredicate Matching criteria are: - Name matches one of provided regular expressions. - CreationTimestamp indicates that it is created more than ageInHours ago.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL