mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2025-09-04 04:04:19 +08:00
GANDI: Now works large zones and >100 domains
* update to latest github.com/prasmussen/gandi-api/domain * Fixed https://github.com/StackExchange/dnscontrol/issues/185 * GANDI: Now works with >100 domains * GANDI: Now works with zones with >100 records
This commit is contained in:
parent
627334803e
commit
e8f7886d0c
3 changed files with 55 additions and 35 deletions
27
vendor/github.com/prasmussen/gandi-api/domain/domain.go
generated
vendored
27
vendor/github.com/prasmussen/gandi-api/domain/domain.go
generated
vendored
|
@ -35,16 +35,25 @@ func (self *Domain) Info(name string) (*DomainInfo, error) {
|
|||
|
||||
// List domains associated to the contact represented by apikey
|
||||
func (self *Domain) List() ([]*DomainInfoBase, error) {
|
||||
var res []interface{}
|
||||
params := []interface{}{self.Key}
|
||||
if err := self.Call("domain.list", params, &res); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
opts := &struct {
|
||||
Page int `xmlrpc:"page"`
|
||||
}{0}
|
||||
const perPage = 100
|
||||
params := []interface{}{self.Key, opts}
|
||||
domains := make([]*DomainInfoBase, 0)
|
||||
for _, r := range res {
|
||||
domain := ToDomainInfoBase(r.(map[string]interface{}))
|
||||
domains = append(domains, domain)
|
||||
for {
|
||||
var res []interface{}
|
||||
if err := self.Call("domain.list", params, &res); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
for _, r := range res {
|
||||
domain := ToDomainInfoBase(r.(map[string]interface{}))
|
||||
domains = append(domains, domain)
|
||||
}
|
||||
if len(res) < perPage {
|
||||
break
|
||||
}
|
||||
opts.Page++
|
||||
}
|
||||
return domains, nil
|
||||
}
|
||||
|
|
31
vendor/github.com/prasmussen/gandi-api/domain/zone/record/record.go
generated
vendored
31
vendor/github.com/prasmussen/gandi-api/domain/zone/record/record.go
generated
vendored
|
@ -1,6 +1,8 @@
|
|||
package record
|
||||
|
||||
import "github.com/prasmussen/gandi-api/client"
|
||||
import (
|
||||
"github.com/prasmussen/gandi-api/client"
|
||||
)
|
||||
|
||||
type Record struct {
|
||||
*client.Client
|
||||
|
@ -22,16 +24,25 @@ func (self *Record) Count(zoneId, version int64) (int64, error) {
|
|||
|
||||
// List records of a version of a DNS zone
|
||||
func (self *Record) List(zoneId, version int64) ([]*RecordInfo, error) {
|
||||
var res []interface{}
|
||||
params := []interface{}{self.Key, zoneId, version}
|
||||
if err := self.Call("domain.zone.record.list", params, &res); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
opts := &struct {
|
||||
Page int `xmlrpc:"page"`
|
||||
}{0}
|
||||
const perPage = 100
|
||||
params := []interface{}{self.Key, zoneId, version, opts}
|
||||
records := make([]*RecordInfo, 0)
|
||||
for _, r := range res {
|
||||
record := ToRecordInfo(r.(map[string]interface{}))
|
||||
records = append(records, record)
|
||||
for {
|
||||
var res []interface{}
|
||||
if err := self.Call("domain.zone.record.list", params, &res); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
for _, r := range res {
|
||||
record := ToRecordInfo(r.(map[string]interface{}))
|
||||
records = append(records, record)
|
||||
}
|
||||
if len(res) < perPage {
|
||||
break
|
||||
}
|
||||
opts.Page++
|
||||
}
|
||||
return records, nil
|
||||
}
|
||||
|
|
32
vendor/vendor.json
vendored
32
vendor/vendor.json
vendored
|
@ -299,44 +299,44 @@
|
|||
{
|
||||
"checksumSHA1": "nS4kKHjMlJpQg3sixqelpCg1jyk=",
|
||||
"path": "github.com/prasmussen/gandi-api/client",
|
||||
"revision": "13205dc554f4aeb75c93e8b57ad1e3d6fa3be5d5",
|
||||
"revisionTime": "2016-04-18T18:49:04Z"
|
||||
"revision": "931915c3a2ca2661373f0b25bbedfee9e1958d2b",
|
||||
"revisionTime": "2017-09-08T20:15:21Z"
|
||||
},
|
||||
{
|
||||
"checksumSHA1": "JZSh5mPC7r4AHhSg+IjD897n22A=",
|
||||
"checksumSHA1": "tT8xSQc+QM3/JPs16WjDtTFY7j0=",
|
||||
"path": "github.com/prasmussen/gandi-api/domain",
|
||||
"revision": "13205dc554f4aeb75c93e8b57ad1e3d6fa3be5d5",
|
||||
"revisionTime": "2016-04-18T18:49:04Z"
|
||||
"revision": "931915c3a2ca2661373f0b25bbedfee9e1958d2b",
|
||||
"revisionTime": "2017-09-08T20:15:21Z"
|
||||
},
|
||||
{
|
||||
"checksumSHA1": "/t4nBKtJF6W3PHzTBNAzgcw54GU=",
|
||||
"path": "github.com/prasmussen/gandi-api/domain/zone",
|
||||
"revision": "13205dc554f4aeb75c93e8b57ad1e3d6fa3be5d5",
|
||||
"revisionTime": "2016-04-18T18:49:04Z"
|
||||
"revision": "931915c3a2ca2661373f0b25bbedfee9e1958d2b",
|
||||
"revisionTime": "2017-09-08T20:15:21Z"
|
||||
},
|
||||
{
|
||||
"checksumSHA1": "QXUT2Olct3vKqg6RIgdoUqJHsFU=",
|
||||
"checksumSHA1": "wers/RRtpv1SXRpnUg6ptC1nKoM=",
|
||||
"path": "github.com/prasmussen/gandi-api/domain/zone/record",
|
||||
"revision": "13205dc554f4aeb75c93e8b57ad1e3d6fa3be5d5",
|
||||
"revisionTime": "2016-04-18T18:49:04Z"
|
||||
"revision": "931915c3a2ca2661373f0b25bbedfee9e1958d2b",
|
||||
"revisionTime": "2017-09-08T20:15:21Z"
|
||||
},
|
||||
{
|
||||
"checksumSHA1": "avzpVkEeXzDiaNLsl4agXWm9tm0=",
|
||||
"path": "github.com/prasmussen/gandi-api/domain/zone/version",
|
||||
"revision": "13205dc554f4aeb75c93e8b57ad1e3d6fa3be5d5",
|
||||
"revisionTime": "2016-04-18T18:49:04Z"
|
||||
"revision": "931915c3a2ca2661373f0b25bbedfee9e1958d2b",
|
||||
"revisionTime": "2017-09-08T20:15:21Z"
|
||||
},
|
||||
{
|
||||
"checksumSHA1": "txVNPkzE0Jkag20VZ1hLj/Td+O4=",
|
||||
"path": "github.com/prasmussen/gandi-api/operation",
|
||||
"revision": "13205dc554f4aeb75c93e8b57ad1e3d6fa3be5d5",
|
||||
"revisionTime": "2016-04-18T18:49:04Z"
|
||||
"revision": "931915c3a2ca2661373f0b25bbedfee9e1958d2b",
|
||||
"revisionTime": "2017-09-08T20:15:21Z"
|
||||
},
|
||||
{
|
||||
"checksumSHA1": "FwIh1Rk/XNANaxCz3Fw/vQ3Hu5E=",
|
||||
"path": "github.com/prasmussen/gandi-api/util",
|
||||
"revision": "13205dc554f4aeb75c93e8b57ad1e3d6fa3be5d5",
|
||||
"revisionTime": "2016-04-18T18:49:04Z"
|
||||
"revision": "931915c3a2ca2661373f0b25bbedfee9e1958d2b",
|
||||
"revisionTime": "2017-09-08T20:15:21Z"
|
||||
},
|
||||
{
|
||||
"checksumSHA1": "EqyHXBcg5cWi4ERsMXN6g1opi1o=",
|
||||
|
|
Loading…
Add table
Reference in a new issue