Merge pull request #5 from rschmukler/master

Add dnsimple provider
This commit is contained in:
Jan B
2016-03-30 16:35:21 +02:00
2 changed files with 24 additions and 0 deletions
+2
View File
@@ -87,6 +87,8 @@ func (c *Context) InitContext() {
DoAccessToken: os.Getenv("DO_ACCESS_TOKEN"),
AwsAccessKey: os.Getenv("AWS_ACCESS_KEY"),
AwsSecretKey: os.Getenv("AWS_SECRET_KEY"),
DNSimpleEmail: os.Getenv("DNSIMPLE_EMAIL"),
DNSimpleKey: os.Getenv("DNSIMPLE_KEY"),
AwsRegionName: "us-east-1",
}
+22
View File
@@ -22,6 +22,10 @@ type ProviderOpts struct {
AwsAccessKey string
AwsSecretKey string
AwsRegionName string
// DNSimple credentials
DNSimpleEmail string
DNSimpleKey string
}
type DnsProvider string
@@ -30,12 +34,14 @@ const (
CLOUDFLARE = DnsProvider("CloudFlare")
DIGITALOCEAN = DnsProvider("DigitalOcean")
ROUTE53 = DnsProvider("Route53")
DNSIMPLE = DnsProvider("DNSimple")
)
var dnsProviderFactory = map[DnsProvider]interface{}{
CLOUDFLARE: makeCloudflareProvider,
DIGITALOCEAN: makeDigitalOceanProvider,
ROUTE53: makeRoute53Provider,
DNSIMPLE: makeDNSimpleProvider,
}
func getProvider(opts ProviderOpts) (lego.ChallengeProvider, error) {
@@ -96,3 +102,19 @@ func makeRoute53Provider(opts ProviderOpts) (lego.ChallengeProvider, error) {
}
return provider, nil
}
// returns a preconfigured DNSimple lego.ChallengeProvider
func makeDNSimpleProvider(opts ProviderOpts) (lego.ChallengeProvider, error) {
if len(opts.DNSimpleEmail) == 0 {
return nil, fmt.Errorf("DNSimple Email not set")
}
if len(opts.DNSimpleKey) == 0 {
return nil, fmt.Errorf("DNSimple API key is not set")
}
provider, err := lego.NewDNSProviderDNSimple(opts.DNSimpleEmail, opts.DNSimpleKey)
if err != nil {
return nil, err
}
return provider, nil
}