mirror of
https://github.com/kubernetes-sigs/external-dns.git
synced 2025-08-22 17:30:59 +02:00
Merge pull request #2670 from skudriavtsev/ib-client-v2
migration to infoblox-go-client/v2
This commit is contained in:
commit
bcd6e7f5e5
2
go.mod
2
go.mod
@ -27,7 +27,7 @@ require (
|
|||||||
github.com/google/go-cmp v0.5.7
|
github.com/google/go-cmp v0.5.7
|
||||||
github.com/gophercloud/gophercloud v0.22.0
|
github.com/gophercloud/gophercloud v0.22.0
|
||||||
github.com/hooklift/gowsdl v0.5.0
|
github.com/hooklift/gowsdl v0.5.0
|
||||||
github.com/infobloxopen/infoblox-go-client v1.1.1
|
github.com/infobloxopen/infoblox-go-client/v2 v2.1.1
|
||||||
github.com/linki/instrumented_http v0.3.0
|
github.com/linki/instrumented_http v0.3.0
|
||||||
github.com/linode/linodego v0.32.2
|
github.com/linode/linodego v0.32.2
|
||||||
github.com/maxatome/go-testdeep v1.11.0
|
github.com/maxatome/go-testdeep v1.11.0
|
||||||
|
8
go.sum
8
go.sum
@ -751,8 +751,8 @@ github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU=
|
|||||||
github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
|
github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
|
||||||
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
||||||
github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo=
|
github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo=
|
||||||
github.com/infobloxopen/infoblox-go-client v1.1.1 h1:728A6LbLjptj/7kZjHyIxQnm768PWHfGFm0HH8FnbtU=
|
github.com/infobloxopen/infoblox-go-client/v2 v2.1.1 h1:NYnXOngwW4xMIgUz4bKJ1Ygsmq5K0OOdUEkuLlkR1Ag=
|
||||||
github.com/infobloxopen/infoblox-go-client v1.1.1/go.mod h1:BXiw7S2b9qJoM8MS40vfgCNB2NLHGusk1DtO16BD9zI=
|
github.com/infobloxopen/infoblox-go-client/v2 v2.1.1/go.mod h1:+lznx4ASBSUZ2i6qwlgyn0v3eKDxBHNU5aRJzghAFbw=
|
||||||
github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8=
|
github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8=
|
||||||
github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs=
|
github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs=
|
||||||
github.com/jcmturner/dnsutils/v2 v2.0.0 h1:lltnkeZGL0wILNvrNiVCR6Ro5PGU/SeBvVO/8c/iPbo=
|
github.com/jcmturner/dnsutils/v2 v2.0.0 h1:lltnkeZGL0wILNvrNiVCR6Ro5PGU/SeBvVO/8c/iPbo=
|
||||||
@ -841,6 +841,7 @@ github.com/linode/linodego v0.32.2/go.mod h1:BR0gVkCJffEdIGJSl6bHR80Ty+Uvg/2jkjm
|
|||||||
github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc=
|
github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc=
|
||||||
github.com/lyft/protoc-gen-star v0.4.10/go.mod h1:mE8fbna26u7aEA2QCVvvfBU/ZrPgocG1206xAFPcs94=
|
github.com/lyft/protoc-gen-star v0.4.10/go.mod h1:mE8fbna26u7aEA2QCVvvfBU/ZrPgocG1206xAFPcs94=
|
||||||
github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ=
|
github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ=
|
||||||
|
github.com/magefile/mage v1.10.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
|
||||||
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||||
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||||
github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
|
github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
|
||||||
@ -964,6 +965,7 @@ github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+
|
|||||||
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
|
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
|
||||||
github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
|
github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
|
||||||
github.com/onsi/ginkgo v1.14.1/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
|
github.com/onsi/ginkgo v1.14.1/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
|
||||||
|
github.com/onsi/ginkgo v1.15.0/go.mod h1:hF8qUzuuC8DJGygJH3726JnCZX4MYbRB8yFfISqnKUg=
|
||||||
github.com/onsi/ginkgo v1.16.2/go.mod h1:CObGmKUOKaSC0RjmoAK7tKyn4Azo5P2IWuoMnvwxz1E=
|
github.com/onsi/ginkgo v1.16.2/go.mod h1:CObGmKUOKaSC0RjmoAK7tKyn4Azo5P2IWuoMnvwxz1E=
|
||||||
github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=
|
github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=
|
||||||
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
|
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
|
||||||
@ -976,6 +978,7 @@ github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7J
|
|||||||
github.com/onsi/gomega v1.8.1/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA=
|
github.com/onsi/gomega v1.8.1/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA=
|
||||||
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
|
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
|
||||||
github.com/onsi/gomega v1.10.2/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
|
github.com/onsi/gomega v1.10.2/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
|
||||||
|
github.com/onsi/gomega v1.10.5/go.mod h1:gza4q3jKQJijlu05nKWRCW/GavJumGt8aNRxWg7mt48=
|
||||||
github.com/onsi/gomega v1.13.0/go.mod h1:lRk9szgn8TxENtWd0Tp4c3wjlRfMTMH27I+3Je41yGY=
|
github.com/onsi/gomega v1.13.0/go.mod h1:lRk9szgn8TxENtWd0Tp4c3wjlRfMTMH27I+3Je41yGY=
|
||||||
github.com/onsi/gomega v1.14.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0=
|
github.com/onsi/gomega v1.14.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0=
|
||||||
github.com/onsi/gomega v1.17.0 h1:9Luw4uT5HTjHTN8+aNcSThgH1vdXnmdJ8xIfZ4wyTRE=
|
github.com/onsi/gomega v1.17.0 h1:9Luw4uT5HTjHTN8+aNcSThgH1vdXnmdJ8xIfZ4wyTRE=
|
||||||
@ -1125,6 +1128,7 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB
|
|||||||
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
||||||
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
||||||
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
|
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
|
||||||
|
github.com/sirupsen/logrus v1.8.0/go.mod h1:4GuYW9TZmE769R5STWrRakJc4UqQ3+QQ95fyz7ENv1A=
|
||||||
github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
|
github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
|
||||||
github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
|
github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
|
||||||
github.com/smartystreets/assertions v0.0.0-20180725160413-e900ae048470/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
|
github.com/smartystreets/assertions v0.0.0-20180725160413-e900ae048470/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
|
||||||
|
@ -27,7 +27,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
transform "github.com/StackExchange/dnscontrol/pkg/transform"
|
transform "github.com/StackExchange/dnscontrol/pkg/transform"
|
||||||
ibclient "github.com/infobloxopen/infoblox-go-client"
|
ibclient "github.com/infobloxopen/infoblox-go-client/v2"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
|
|
||||||
"sigs.k8s.io/external-dns/endpoint"
|
"sigs.k8s.io/external-dns/endpoint"
|
||||||
@ -40,6 +40,11 @@ const (
|
|||||||
providerSpecificInfobloxPtrRecord = "infoblox-ptr-record-exists"
|
providerSpecificInfobloxPtrRecord = "infoblox-ptr-record-exists"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func isNotFoundError(err error) bool {
|
||||||
|
_, ok := err.(*ibclient.NotFoundError)
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
// InfobloxConfig clarifies the method signature
|
// InfobloxConfig clarifies the method signature
|
||||||
type InfobloxConfig struct {
|
type InfobloxConfig struct {
|
||||||
DomainFilter endpoint.DomainFilter
|
DomainFilter endpoint.DomainFilter
|
||||||
@ -95,7 +100,7 @@ func NewExtendedRequestBuilder(maxResults int, fqdnRegEx string) *ExtendedReques
|
|||||||
|
|
||||||
// BuildRequest prepares the api request. it uses BuildRequest of
|
// BuildRequest prepares the api request. it uses BuildRequest of
|
||||||
// WapiRequestBuilder and then add the _max_requests parameter
|
// WapiRequestBuilder and then add the _max_requests parameter
|
||||||
func (mrb *ExtendedRequestBuilder) BuildRequest(t ibclient.RequestType, obj ibclient.IBObject, ref string, queryParams ibclient.QueryParams) (req *http.Request, err error) {
|
func (mrb *ExtendedRequestBuilder) BuildRequest(t ibclient.RequestType, obj ibclient.IBObject, ref string, queryParams *ibclient.QueryParams) (req *http.Request, err error) {
|
||||||
req, err = mrb.WapiRequestBuilder.BuildRequest(t, obj, ref, queryParams)
|
req, err = mrb.WapiRequestBuilder.BuildRequest(t, obj, ref, queryParams)
|
||||||
if req.Method == "GET" {
|
if req.Method == "GET" {
|
||||||
query := req.URL.Query()
|
query := req.URL.Query()
|
||||||
@ -147,7 +152,7 @@ func NewInfobloxProvider(infobloxConfig InfobloxConfig) (*InfobloxProvider, erro
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
provider := &InfobloxProvider{
|
providerCfg := &InfobloxProvider{
|
||||||
client: client,
|
client: client,
|
||||||
domainFilter: infobloxConfig.DomainFilter,
|
domainFilter: infobloxConfig.DomainFilter,
|
||||||
zoneIDFilter: infobloxConfig.ZoneIDFilter,
|
zoneIDFilter: infobloxConfig.ZoneIDFilter,
|
||||||
@ -158,7 +163,7 @@ func NewInfobloxProvider(infobloxConfig InfobloxConfig) (*InfobloxProvider, erro
|
|||||||
cacheDuration: infobloxConfig.CacheDuration,
|
cacheDuration: infobloxConfig.CacheDuration,
|
||||||
}
|
}
|
||||||
|
|
||||||
return provider, nil
|
return providerCfg, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Records gets the current records.
|
// Records gets the current records.
|
||||||
@ -171,14 +176,11 @@ func (p *InfobloxProvider) Records(ctx context.Context) (endpoints []*endpoint.E
|
|||||||
for _, zone := range zones {
|
for _, zone := range zones {
|
||||||
logrus.Debugf("fetch records from zone '%s'", zone.Fqdn)
|
logrus.Debugf("fetch records from zone '%s'", zone.Fqdn)
|
||||||
var resA []ibclient.RecordA
|
var resA []ibclient.RecordA
|
||||||
objA := ibclient.NewRecordA(
|
objA := ibclient.NewEmptyRecordA()
|
||||||
ibclient.RecordA{
|
objA.View = p.view
|
||||||
Zone: zone.Fqdn,
|
objA.Zone = zone.Fqdn
|
||||||
View: p.view,
|
err = p.client.GetObject(objA, "", ibclient.NewQueryParams(false, nil), &resA)
|
||||||
},
|
if err != nil && !isNotFoundError(err) {
|
||||||
)
|
|
||||||
err = p.client.GetObject(objA, "", &resA)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("could not fetch A records from zone '%s': %s", zone.Fqdn, err)
|
return nil, fmt.Errorf("could not fetch A records from zone '%s': %s", zone.Fqdn, err)
|
||||||
}
|
}
|
||||||
for _, res := range resA {
|
for _, res := range resA {
|
||||||
@ -207,14 +209,11 @@ func (p *InfobloxProvider) Records(ctx context.Context) (endpoints []*endpoint.E
|
|||||||
|
|
||||||
// Include Host records since they should be treated synonymously with A records
|
// Include Host records since they should be treated synonymously with A records
|
||||||
var resH []ibclient.HostRecord
|
var resH []ibclient.HostRecord
|
||||||
objH := ibclient.NewHostRecord(
|
objH := ibclient.NewEmptyHostRecord()
|
||||||
ibclient.HostRecord{
|
objH.View = p.view
|
||||||
Zone: zone.Fqdn,
|
objH.Zone = zone.Fqdn
|
||||||
View: p.view,
|
err = p.client.GetObject(objH, "", ibclient.NewQueryParams(false, nil), &resH)
|
||||||
},
|
if err != nil && !isNotFoundError(err) {
|
||||||
)
|
|
||||||
err = p.client.GetObject(objH, "", &resH)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("could not fetch host records from zone '%s': %s", zone.Fqdn, err)
|
return nil, fmt.Errorf("could not fetch host records from zone '%s': %s", zone.Fqdn, err)
|
||||||
}
|
}
|
||||||
for _, res := range resH {
|
for _, res := range resH {
|
||||||
@ -232,14 +231,11 @@ func (p *InfobloxProvider) Records(ctx context.Context) (endpoints []*endpoint.E
|
|||||||
}
|
}
|
||||||
|
|
||||||
var resC []ibclient.RecordCNAME
|
var resC []ibclient.RecordCNAME
|
||||||
objC := ibclient.NewRecordCNAME(
|
objC := ibclient.NewEmptyRecordCNAME()
|
||||||
ibclient.RecordCNAME{
|
objC.View = p.view
|
||||||
Zone: zone.Fqdn,
|
objC.Zone = zone.Fqdn
|
||||||
View: p.view,
|
err = p.client.GetObject(objC, "", ibclient.NewQueryParams(false, nil), &resC)
|
||||||
},
|
if err != nil && !isNotFoundError(err) {
|
||||||
)
|
|
||||||
err = p.client.GetObject(objC, "", &resC)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("could not fetch CNAME records from zone '%s': %s", zone.Fqdn, err)
|
return nil, fmt.Errorf("could not fetch CNAME records from zone '%s': %s", zone.Fqdn, err)
|
||||||
}
|
}
|
||||||
for _, res := range resC {
|
for _, res := range resC {
|
||||||
@ -254,14 +250,11 @@ func (p *InfobloxProvider) Records(ctx context.Context) (endpoints []*endpoint.E
|
|||||||
arpaZone, err := transform.ReverseDomainName(zone.Fqdn)
|
arpaZone, err := transform.ReverseDomainName(zone.Fqdn)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
var resP []ibclient.RecordPTR
|
var resP []ibclient.RecordPTR
|
||||||
objP := ibclient.NewRecordPTR(
|
objP := ibclient.NewEmptyRecordPTR()
|
||||||
ibclient.RecordPTR{
|
objP.Zone = arpaZone
|
||||||
Zone: arpaZone,
|
objP.View = p.view
|
||||||
View: p.view,
|
err = p.client.GetObject(objP, "", ibclient.NewQueryParams(false, nil), &resP)
|
||||||
},
|
if err != nil && !isNotFoundError(err) {
|
||||||
)
|
|
||||||
err = p.client.GetObject(objP, "", &resP)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("could not fetch PTR records from zone '%s': %s", zone.Fqdn, err)
|
return nil, fmt.Errorf("could not fetch PTR records from zone '%s': %s", zone.Fqdn, err)
|
||||||
}
|
}
|
||||||
for _, res := range resP {
|
for _, res := range resP {
|
||||||
@ -277,8 +270,8 @@ func (p *InfobloxProvider) Records(ctx context.Context) (endpoints []*endpoint.E
|
|||||||
View: p.view,
|
View: p.view,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
err = p.client.GetObject(objT, "", &resT)
|
err = p.client.GetObject(objT, "", ibclient.NewQueryParams(false, nil), &resT)
|
||||||
if err != nil {
|
if err != nil && !isNotFoundError(err) {
|
||||||
return nil, fmt.Errorf("could not fetch TXT records from zone '%s': %s", zone.Fqdn, err)
|
return nil, fmt.Errorf("could not fetch TXT records from zone '%s': %s", zone.Fqdn, err)
|
||||||
}
|
}
|
||||||
for _, res := range resT {
|
for _, res := range resT {
|
||||||
@ -377,9 +370,8 @@ func (p *InfobloxProvider) zones() ([]ibclient.ZoneAuth, error) {
|
|||||||
View: p.view,
|
View: p.view,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
err := p.client.GetObject(obj, "", &res)
|
err := p.client.GetObject(obj, "", ibclient.NewQueryParams(false, nil), &res)
|
||||||
|
if err != nil && !isNotFoundError(err) {
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -466,12 +458,12 @@ func (p *InfobloxProvider) findReverseZone(zones []ibclient.ZoneAuth, name strin
|
|||||||
maxMask := 0
|
maxMask := 0
|
||||||
|
|
||||||
for i, zone := range zones {
|
for i, zone := range zones {
|
||||||
_, net, err := net.ParseCIDR(zone.Fqdn)
|
_, rZoneNet, err := net.ParseCIDR(zone.Fqdn)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logrus.WithError(err).Debugf("fqdn %s is no cidr", zone.Fqdn)
|
logrus.WithError(err).Debugf("fqdn %s is no cidr", zone.Fqdn)
|
||||||
} else {
|
} else {
|
||||||
if net.Contains(ip) {
|
if rZoneNet.Contains(ip) {
|
||||||
_, mask := net.Mask.Size()
|
_, mask := rZoneNet.Mask.Size()
|
||||||
networks[mask] = &zones[i]
|
networks[mask] = &zones[i]
|
||||||
if mask > maxMask {
|
if mask > maxMask {
|
||||||
maxMask = mask
|
maxMask = mask
|
||||||
@ -486,16 +478,13 @@ func (p *InfobloxProvider) recordSet(ep *endpoint.Endpoint, getObject bool, targ
|
|||||||
switch ep.RecordType {
|
switch ep.RecordType {
|
||||||
case endpoint.RecordTypeA:
|
case endpoint.RecordTypeA:
|
||||||
var res []ibclient.RecordA
|
var res []ibclient.RecordA
|
||||||
obj := ibclient.NewRecordA(
|
obj := ibclient.NewEmptyRecordA()
|
||||||
ibclient.RecordA{
|
obj.Name = ep.DNSName
|
||||||
Name: ep.DNSName,
|
obj.Ipv4Addr = ep.Targets[targetIndex]
|
||||||
Ipv4Addr: ep.Targets[targetIndex],
|
obj.View = p.view
|
||||||
View: p.view,
|
|
||||||
},
|
|
||||||
)
|
|
||||||
if getObject {
|
if getObject {
|
||||||
err = p.client.GetObject(obj, "", &res)
|
err = p.client.GetObject(obj, "", ibclient.NewQueryParams(false, nil), &res)
|
||||||
if err != nil {
|
if err != nil && !isNotFoundError(err) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -505,16 +494,13 @@ func (p *InfobloxProvider) recordSet(ep *endpoint.Endpoint, getObject bool, targ
|
|||||||
}
|
}
|
||||||
case endpoint.RecordTypePTR:
|
case endpoint.RecordTypePTR:
|
||||||
var res []ibclient.RecordPTR
|
var res []ibclient.RecordPTR
|
||||||
obj := ibclient.NewRecordPTR(
|
obj := ibclient.NewEmptyRecordPTR()
|
||||||
ibclient.RecordPTR{
|
obj.PtrdName = ep.DNSName
|
||||||
PtrdName: ep.DNSName,
|
obj.Ipv4Addr = ep.Targets[targetIndex]
|
||||||
Ipv4Addr: ep.Targets[targetIndex],
|
obj.View = p.view
|
||||||
View: p.view,
|
|
||||||
},
|
|
||||||
)
|
|
||||||
if getObject {
|
if getObject {
|
||||||
err = p.client.GetObject(obj, "", &res)
|
err = p.client.GetObject(obj, "", ibclient.NewQueryParams(false, nil), &res)
|
||||||
if err != nil {
|
if err != nil && !isNotFoundError(err) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -524,16 +510,13 @@ func (p *InfobloxProvider) recordSet(ep *endpoint.Endpoint, getObject bool, targ
|
|||||||
}
|
}
|
||||||
case endpoint.RecordTypeCNAME:
|
case endpoint.RecordTypeCNAME:
|
||||||
var res []ibclient.RecordCNAME
|
var res []ibclient.RecordCNAME
|
||||||
obj := ibclient.NewRecordCNAME(
|
obj := ibclient.NewEmptyRecordCNAME()
|
||||||
ibclient.RecordCNAME{
|
obj.Name = ep.DNSName
|
||||||
Name: ep.DNSName,
|
obj.Canonical = ep.Targets[0]
|
||||||
Canonical: ep.Targets[0],
|
obj.View = p.view
|
||||||
View: p.view,
|
|
||||||
},
|
|
||||||
)
|
|
||||||
if getObject {
|
if getObject {
|
||||||
err = p.client.GetObject(obj, "", &res)
|
err = p.client.GetObject(obj, "", ibclient.NewQueryParams(false, nil), &res)
|
||||||
if err != nil {
|
if err != nil && !isNotFoundError(err) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -556,8 +539,8 @@ func (p *InfobloxProvider) recordSet(ep *endpoint.Endpoint, getObject bool, targ
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
if getObject {
|
if getObject {
|
||||||
err = p.client.GetObject(obj, "", &res)
|
err = p.client.GetObject(obj, "", ibclient.NewQueryParams(false, nil), &res)
|
||||||
if err != nil {
|
if err != nil && !isNotFoundError(err) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
ibclient "github.com/infobloxopen/infoblox-go-client"
|
ibclient "github.com/infobloxopen/infoblox-go-client/v2"
|
||||||
"github.com/miekg/dns"
|
"github.com/miekg/dns"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
|
||||||
@ -113,7 +113,7 @@ func (client *mockIBConnector) CreateObject(obj ibclient.IBObject) (ref string,
|
|||||||
return ref, nil
|
return ref, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (client *mockIBConnector) GetObject(obj ibclient.IBObject, ref string, res interface{}) (err error) {
|
func (client *mockIBConnector) GetObject(obj ibclient.IBObject, ref string, queryParams *ibclient.QueryParams, res interface{}) (err error) {
|
||||||
switch obj.ObjectType() {
|
switch obj.ObjectType() {
|
||||||
case "record:a":
|
case "record:a":
|
||||||
var result []ibclient.RecordA
|
var result []ibclient.RecordA
|
||||||
@ -208,12 +208,9 @@ func (client *mockIBConnector) DeleteObject(ref string) (refRes string, err erro
|
|||||||
switch result[1] {
|
switch result[1] {
|
||||||
case "record:a":
|
case "record:a":
|
||||||
var records []ibclient.RecordA
|
var records []ibclient.RecordA
|
||||||
obj := ibclient.NewRecordA(
|
obj := ibclient.NewEmptyRecordA()
|
||||||
ibclient.RecordA{
|
obj.Name = result[2]
|
||||||
Name: result[2],
|
client.GetObject(obj, ref, nil, &records)
|
||||||
},
|
|
||||||
)
|
|
||||||
client.GetObject(obj, ref, &records)
|
|
||||||
for _, record := range records {
|
for _, record := range records {
|
||||||
client.deletedEndpoints = append(
|
client.deletedEndpoints = append(
|
||||||
client.deletedEndpoints,
|
client.deletedEndpoints,
|
||||||
@ -226,12 +223,9 @@ func (client *mockIBConnector) DeleteObject(ref string) (refRes string, err erro
|
|||||||
}
|
}
|
||||||
case "record:cname":
|
case "record:cname":
|
||||||
var records []ibclient.RecordCNAME
|
var records []ibclient.RecordCNAME
|
||||||
obj := ibclient.NewRecordCNAME(
|
obj := ibclient.NewEmptyRecordCNAME()
|
||||||
ibclient.RecordCNAME{
|
obj.Name = result[2]
|
||||||
Name: result[2],
|
client.GetObject(obj, ref, nil, &records)
|
||||||
},
|
|
||||||
)
|
|
||||||
client.GetObject(obj, ref, &records)
|
|
||||||
for _, record := range records {
|
for _, record := range records {
|
||||||
client.deletedEndpoints = append(
|
client.deletedEndpoints = append(
|
||||||
client.deletedEndpoints,
|
client.deletedEndpoints,
|
||||||
@ -244,12 +238,9 @@ func (client *mockIBConnector) DeleteObject(ref string) (refRes string, err erro
|
|||||||
}
|
}
|
||||||
case "record:host":
|
case "record:host":
|
||||||
var records []ibclient.HostRecord
|
var records []ibclient.HostRecord
|
||||||
obj := ibclient.NewHostRecord(
|
obj := ibclient.NewEmptyHostRecord()
|
||||||
ibclient.HostRecord{
|
obj.Name = result[2]
|
||||||
Name: result[2],
|
client.GetObject(obj, ref, nil, &records)
|
||||||
},
|
|
||||||
)
|
|
||||||
client.GetObject(obj, ref, &records)
|
|
||||||
for _, record := range records {
|
for _, record := range records {
|
||||||
client.deletedEndpoints = append(
|
client.deletedEndpoints = append(
|
||||||
client.deletedEndpoints,
|
client.deletedEndpoints,
|
||||||
@ -267,7 +258,7 @@ func (client *mockIBConnector) DeleteObject(ref string) (refRes string, err erro
|
|||||||
Name: result[2],
|
Name: result[2],
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
client.GetObject(obj, ref, &records)
|
client.GetObject(obj, ref, nil, &records)
|
||||||
for _, record := range records {
|
for _, record := range records {
|
||||||
client.deletedEndpoints = append(
|
client.deletedEndpoints = append(
|
||||||
client.deletedEndpoints,
|
client.deletedEndpoints,
|
||||||
@ -280,12 +271,9 @@ func (client *mockIBConnector) DeleteObject(ref string) (refRes string, err erro
|
|||||||
}
|
}
|
||||||
case "record:ptr":
|
case "record:ptr":
|
||||||
var records []ibclient.RecordPTR
|
var records []ibclient.RecordPTR
|
||||||
obj := ibclient.NewRecordPTR(
|
obj := ibclient.NewEmptyRecordPTR()
|
||||||
ibclient.RecordPTR{
|
obj.Name = result[2]
|
||||||
Name: result[2],
|
client.GetObject(obj, ref, nil, &records)
|
||||||
},
|
|
||||||
)
|
|
||||||
client.GetObject(obj, ref, &records)
|
|
||||||
for _, record := range records {
|
for _, record := range records {
|
||||||
client.deletedEndpoints = append(
|
client.deletedEndpoints = append(
|
||||||
client.deletedEndpoints,
|
client.deletedEndpoints,
|
||||||
@ -354,21 +342,17 @@ func createMockInfobloxObject(name, recordType, value string) ibclient.IBObject
|
|||||||
ref := fmt.Sprintf("record:%s/%s:%s/default", strings.ToLower(recordType), base64.StdEncoding.EncodeToString([]byte(name)), name)
|
ref := fmt.Sprintf("record:%s/%s:%s/default", strings.ToLower(recordType), base64.StdEncoding.EncodeToString([]byte(name)), name)
|
||||||
switch recordType {
|
switch recordType {
|
||||||
case endpoint.RecordTypeA:
|
case endpoint.RecordTypeA:
|
||||||
return ibclient.NewRecordA(
|
obj := ibclient.NewEmptyRecordA()
|
||||||
ibclient.RecordA{
|
obj.Name = name
|
||||||
Ref: ref,
|
obj.Ref = ref
|
||||||
Name: name,
|
obj.Ipv4Addr = value
|
||||||
Ipv4Addr: value,
|
return obj
|
||||||
},
|
|
||||||
)
|
|
||||||
case endpoint.RecordTypeCNAME:
|
case endpoint.RecordTypeCNAME:
|
||||||
return ibclient.NewRecordCNAME(
|
obj := ibclient.NewEmptyRecordCNAME()
|
||||||
ibclient.RecordCNAME{
|
obj.Name = name
|
||||||
Ref: ref,
|
obj.Ref = ref
|
||||||
Name: name,
|
obj.Canonical = value
|
||||||
Canonical: value,
|
return obj
|
||||||
},
|
|
||||||
)
|
|
||||||
case endpoint.RecordTypeTXT:
|
case endpoint.RecordTypeTXT:
|
||||||
return ibclient.NewRecordTXT(
|
return ibclient.NewRecordTXT(
|
||||||
ibclient.RecordTXT{
|
ibclient.RecordTXT{
|
||||||
@ -378,26 +362,23 @@ func createMockInfobloxObject(name, recordType, value string) ibclient.IBObject
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
case "HOST":
|
case "HOST":
|
||||||
return ibclient.NewHostRecord(
|
obj := ibclient.NewEmptyHostRecord()
|
||||||
ibclient.HostRecord{
|
obj.Name = name
|
||||||
Ref: ref,
|
obj.Ref = ref
|
||||||
Name: name,
|
obj.Ipv4Addrs = []ibclient.HostRecordIpv4Addr{
|
||||||
Ipv4Addrs: []ibclient.HostRecordIpv4Addr{
|
{
|
||||||
{
|
|
||||||
Ipv4Addr: value,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
)
|
|
||||||
case endpoint.RecordTypePTR:
|
|
||||||
return ibclient.NewRecordPTR(
|
|
||||||
ibclient.RecordPTR{
|
|
||||||
Ref: ref,
|
|
||||||
PtrdName: name,
|
|
||||||
Ipv4Addr: value,
|
Ipv4Addr: value,
|
||||||
},
|
},
|
||||||
)
|
}
|
||||||
|
return obj
|
||||||
|
case endpoint.RecordTypePTR:
|
||||||
|
obj := ibclient.NewEmptyRecordPTR()
|
||||||
|
obj.PtrdName = name
|
||||||
|
obj.Ref = ref
|
||||||
|
obj.Ipv4Addr = value
|
||||||
|
return obj
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -435,8 +416,8 @@ func TestInfobloxRecords(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
provider := newInfobloxProvider(endpoint.NewDomainFilter([]string{"example.com"}), provider.NewZoneIDFilter([]string{""}), true, false, &client)
|
providerCfg := newInfobloxProvider(endpoint.NewDomainFilter([]string{"example.com"}), provider.NewZoneIDFilter([]string{""}), true, false, &client)
|
||||||
actual, err := provider.Records(context.Background())
|
actual, err := providerCfg.Records(context.Background())
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@ -472,12 +453,12 @@ func TestInfobloxAdjustEndpoints(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
provider := newInfobloxProvider(endpoint.NewDomainFilter([]string{"example.com"}), provider.NewZoneIDFilter([]string{""}), true, true, &client)
|
providerCfg := newInfobloxProvider(endpoint.NewDomainFilter([]string{"example.com"}), provider.NewZoneIDFilter([]string{""}), true, true, &client)
|
||||||
actual, err := provider.Records(context.Background())
|
actual, err := providerCfg.Records(context.Background())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
provider.AdjustEndpoints(actual)
|
providerCfg.AdjustEndpoints(actual)
|
||||||
|
|
||||||
expected := []*endpoint.Endpoint{
|
expected := []*endpoint.Endpoint{
|
||||||
endpoint.NewEndpoint("example.com", endpoint.RecordTypeA, "123.123.123.122").WithProviderSpecific(providerSpecificInfobloxPtrRecord, "true"),
|
endpoint.NewEndpoint("example.com", endpoint.RecordTypeA, "123.123.123.122").WithProviderSpecific(providerSpecificInfobloxPtrRecord, "true"),
|
||||||
@ -501,8 +482,8 @@ func TestInfobloxRecordsReverse(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
provider := newInfobloxProvider(endpoint.NewDomainFilter([]string{"10.0.0.0/24"}), provider.NewZoneIDFilter([]string{""}), true, true, &client)
|
providerCfg := newInfobloxProvider(endpoint.NewDomainFilter([]string{"10.0.0.0/24"}), provider.NewZoneIDFilter([]string{""}), true, true, &client)
|
||||||
actual, err := provider.Records(context.Background())
|
actual, err := providerCfg.Records(context.Background())
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@ -606,7 +587,7 @@ func testInfobloxApplyChangesInternal(t *testing.T, dryRun, createPTR bool, clie
|
|||||||
createMockInfobloxObject("oldcname.example.com", endpoint.RecordTypeCNAME, "other.com"),
|
createMockInfobloxObject("oldcname.example.com", endpoint.RecordTypeCNAME, "other.com"),
|
||||||
}
|
}
|
||||||
|
|
||||||
provider := newInfobloxProvider(
|
providerCfg := newInfobloxProvider(
|
||||||
endpoint.NewDomainFilter([]string{""}),
|
endpoint.NewDomainFilter([]string{""}),
|
||||||
provider.NewZoneIDFilter([]string{""}),
|
provider.NewZoneIDFilter([]string{""}),
|
||||||
dryRun,
|
dryRun,
|
||||||
@ -658,7 +639,7 @@ func testInfobloxApplyChangesInternal(t *testing.T, dryRun, createPTR bool, clie
|
|||||||
Delete: deleteRecords,
|
Delete: deleteRecords,
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := provider.ApplyChanges(context.Background(), changes); err != nil {
|
if err := providerCfg.ApplyChanges(context.Background(), changes); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -674,18 +655,18 @@ func TestInfobloxZones(t *testing.T) {
|
|||||||
mockInfobloxObjects: &[]ibclient.IBObject{},
|
mockInfobloxObjects: &[]ibclient.IBObject{},
|
||||||
}
|
}
|
||||||
|
|
||||||
provider := newInfobloxProvider(endpoint.NewDomainFilter([]string{"example.com", "1.2.3.0/24"}), provider.NewZoneIDFilter([]string{""}), true, false, &client)
|
providerCfg := newInfobloxProvider(endpoint.NewDomainFilter([]string{"example.com", "1.2.3.0/24"}), provider.NewZoneIDFilter([]string{""}), true, false, &client)
|
||||||
zones, _ := provider.zones()
|
zones, _ := providerCfg.zones()
|
||||||
var emptyZoneAuth *ibclient.ZoneAuth
|
var emptyZoneAuth *ibclient.ZoneAuth
|
||||||
assert.Equal(t, provider.findZone(zones, "example.com").Fqdn, "example.com")
|
assert.Equal(t, providerCfg.findZone(zones, "example.com").Fqdn, "example.com")
|
||||||
assert.Equal(t, provider.findZone(zones, "nomatch-example.com"), emptyZoneAuth)
|
assert.Equal(t, providerCfg.findZone(zones, "nomatch-example.com"), emptyZoneAuth)
|
||||||
assert.Equal(t, provider.findZone(zones, "nginx.example.com").Fqdn, "example.com")
|
assert.Equal(t, providerCfg.findZone(zones, "nginx.example.com").Fqdn, "example.com")
|
||||||
assert.Equal(t, provider.findZone(zones, "lvl1-1.example.com").Fqdn, "lvl1-1.example.com")
|
assert.Equal(t, providerCfg.findZone(zones, "lvl1-1.example.com").Fqdn, "lvl1-1.example.com")
|
||||||
assert.Equal(t, provider.findZone(zones, "lvl1-2.example.com").Fqdn, "example.com")
|
assert.Equal(t, providerCfg.findZone(zones, "lvl1-2.example.com").Fqdn, "example.com")
|
||||||
assert.Equal(t, provider.findZone(zones, "lvl2-1.lvl1-1.example.com").Fqdn, "lvl2-1.lvl1-1.example.com")
|
assert.Equal(t, providerCfg.findZone(zones, "lvl2-1.lvl1-1.example.com").Fqdn, "lvl2-1.lvl1-1.example.com")
|
||||||
assert.Equal(t, provider.findZone(zones, "lvl2-2.lvl1-1.example.com").Fqdn, "lvl1-1.example.com")
|
assert.Equal(t, providerCfg.findZone(zones, "lvl2-2.lvl1-1.example.com").Fqdn, "lvl1-1.example.com")
|
||||||
assert.Equal(t, provider.findZone(zones, "lvl2-2.lvl1-2.example.com").Fqdn, "example.com")
|
assert.Equal(t, providerCfg.findZone(zones, "lvl2-2.lvl1-2.example.com").Fqdn, "example.com")
|
||||||
assert.Equal(t, provider.findZone(zones, "1.2.3.0/24").Fqdn, "1.2.3.0/24")
|
assert.Equal(t, providerCfg.findZone(zones, "1.2.3.0/24").Fqdn, "1.2.3.0/24")
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestInfobloxReverseZones(t *testing.T) {
|
func TestInfobloxReverseZones(t *testing.T) {
|
||||||
@ -698,13 +679,13 @@ func TestInfobloxReverseZones(t *testing.T) {
|
|||||||
mockInfobloxObjects: &[]ibclient.IBObject{},
|
mockInfobloxObjects: &[]ibclient.IBObject{},
|
||||||
}
|
}
|
||||||
|
|
||||||
provider := newInfobloxProvider(endpoint.NewDomainFilter([]string{"example.com", "1.2.3.0/24", "10.0.0.0/8"}), provider.NewZoneIDFilter([]string{""}), true, false, &client)
|
providerCfg := newInfobloxProvider(endpoint.NewDomainFilter([]string{"example.com", "1.2.3.0/24", "10.0.0.0/8"}), provider.NewZoneIDFilter([]string{""}), true, false, &client)
|
||||||
zones, _ := provider.zones()
|
zones, _ := providerCfg.zones()
|
||||||
var emptyZoneAuth *ibclient.ZoneAuth
|
var emptyZoneAuth *ibclient.ZoneAuth
|
||||||
assert.Equal(t, provider.findReverseZone(zones, "nomatch-example.com"), emptyZoneAuth)
|
assert.Equal(t, providerCfg.findReverseZone(zones, "nomatch-example.com"), emptyZoneAuth)
|
||||||
assert.Equal(t, provider.findReverseZone(zones, "192.168.0.1"), emptyZoneAuth)
|
assert.Equal(t, providerCfg.findReverseZone(zones, "192.168.0.1"), emptyZoneAuth)
|
||||||
assert.Equal(t, provider.findReverseZone(zones, "1.2.3.4").Fqdn, "1.2.3.0/24")
|
assert.Equal(t, providerCfg.findReverseZone(zones, "1.2.3.4").Fqdn, "1.2.3.0/24")
|
||||||
assert.Equal(t, provider.findReverseZone(zones, "10.28.29.30").Fqdn, "10.0.0.0/8")
|
assert.Equal(t, providerCfg.findReverseZone(zones, "10.28.29.30").Fqdn, "10.0.0.0/8")
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestExtendedRequestFDQDRegExBuilder(t *testing.T) {
|
func TestExtendedRequestFDQDRegExBuilder(t *testing.T) {
|
||||||
@ -721,14 +702,15 @@ func TestExtendedRequestFDQDRegExBuilder(t *testing.T) {
|
|||||||
|
|
||||||
obj := ibclient.NewZoneAuth(ibclient.ZoneAuth{})
|
obj := ibclient.NewZoneAuth(ibclient.ZoneAuth{})
|
||||||
|
|
||||||
req, _ := requestBuilder.BuildRequest(ibclient.GET, obj, "", ibclient.QueryParams{})
|
req, _ := requestBuilder.BuildRequest(ibclient.GET, obj, "", &ibclient.QueryParams{})
|
||||||
|
|
||||||
assert.True(t, req.URL.Query().Get("fqdn~") == "^staging.*test.com$")
|
assert.True(t, req.URL.Query().Get("fqdn~") == "^staging.*test.com$")
|
||||||
|
|
||||||
req, _ = requestBuilder.BuildRequest(ibclient.CREATE, obj, "", ibclient.QueryParams{})
|
req, _ = requestBuilder.BuildRequest(ibclient.CREATE, obj, "", &ibclient.QueryParams{})
|
||||||
|
|
||||||
assert.True(t, req.URL.Query().Get("fqdn~") == "")
|
assert.True(t, req.URL.Query().Get("fqdn~") == "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestExtendedRequestMaxResultsBuilder(t *testing.T) {
|
func TestExtendedRequestMaxResultsBuilder(t *testing.T) {
|
||||||
hostConfig := ibclient.HostConfig{
|
hostConfig := ibclient.HostConfig{
|
||||||
Host: "localhost",
|
Host: "localhost",
|
||||||
@ -741,13 +723,14 @@ func TestExtendedRequestMaxResultsBuilder(t *testing.T) {
|
|||||||
requestBuilder := NewExtendedRequestBuilder(54321, "")
|
requestBuilder := NewExtendedRequestBuilder(54321, "")
|
||||||
requestBuilder.Init(hostConfig)
|
requestBuilder.Init(hostConfig)
|
||||||
|
|
||||||
obj := ibclient.NewRecordCNAME(ibclient.RecordCNAME{Zone: "foo.bar.com"})
|
obj := ibclient.NewEmptyRecordCNAME()
|
||||||
|
obj.Zone = "foo.bar.com"
|
||||||
|
|
||||||
req, _ := requestBuilder.BuildRequest(ibclient.GET, obj, "", ibclient.QueryParams{})
|
req, _ := requestBuilder.BuildRequest(ibclient.GET, obj, "", &ibclient.QueryParams{})
|
||||||
|
|
||||||
assert.True(t, req.URL.Query().Get("_max_results") == "54321")
|
assert.True(t, req.URL.Query().Get("_max_results") == "54321")
|
||||||
|
|
||||||
req, _ = requestBuilder.BuildRequest(ibclient.CREATE, obj, "", ibclient.QueryParams{})
|
req, _ = requestBuilder.BuildRequest(ibclient.CREATE, obj, "", &ibclient.QueryParams{})
|
||||||
|
|
||||||
assert.True(t, req.URL.Query().Get("_max_results") == "")
|
assert.True(t, req.URL.Query().Get("_max_results") == "")
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user