From 7cc4d00ab0ac6c885daa660f35938106788d7280 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorben=20G=C3=BCnther?= Date: Fri, 9 Jul 2021 12:13:16 +0200 Subject: [PATCH] Change required domain field, switch to function to set data --- mailman/domain.go | 4 ++-- provider/data_source_mailman_domain.go | 15 ++++----------- provider/resource_mailman_domain.go | 14 ++++++++++++++ 3 files changed, 20 insertions(+), 13 deletions(-) create mode 100644 provider/resource_mailman_domain.go diff --git a/mailman/domain.go b/mailman/domain.go index e9984eb..311826c 100644 --- a/mailman/domain.go +++ b/mailman/domain.go @@ -6,10 +6,10 @@ type Domain struct { MailHost string `json:"mail_host"` } -func (client *Client) GetDomain(name string) (*Domain, error) { +func (client *Client) GetDomain(mailHost string) (*Domain, error) { var domain *Domain - path := "/domains/" + name + path := "/domains/" + mailHost err := client.get(path, &domain) if err != nil { return nil, err diff --git a/provider/data_source_mailman_domain.go b/provider/data_source_mailman_domain.go index e56f6eb..29bea12 100644 --- a/provider/data_source_mailman_domain.go +++ b/provider/data_source_mailman_domain.go @@ -9,7 +9,7 @@ func dataSourceMailmanDomain() *schema.Resource { return &schema.Resource{ Read: dataSourceMailmanDomainRead, Schema: map[string]*schema.Schema{ - "name": { + "mail_host": { Type: schema.TypeString, Required: true, }, @@ -21,10 +21,6 @@ func dataSourceMailmanDomain() *schema.Resource { Type: schema.TypeString, Computed: true, }, - "mail_host": { - Type: schema.TypeString, - Computed: true, - }, }, } } @@ -32,17 +28,14 @@ func dataSourceMailmanDomain() *schema.Resource { func dataSourceMailmanDomainRead(data *schema.ResourceData, meta interface{}) error { client := meta.(*mailman.Client) - name := data.Get("name").(string) + mailHost := data.Get("mail_host").(string) - domain, err := client.GetDomain(name) + domain, err := client.GetDomain(mailHost) if err != nil { return err } - data.SetId(name) - data.Set("alias_domain", domain.AliasDomain) - data.Set("description", domain.Description) - data.Set("mail_host", domain.AliasDomain) + setDomainData(data, domain) return nil } diff --git a/provider/resource_mailman_domain.go b/provider/resource_mailman_domain.go new file mode 100644 index 0000000..2a16f0f --- /dev/null +++ b/provider/resource_mailman_domain.go @@ -0,0 +1,14 @@ +package provider + +import ( + "git.xenrox.net/~xenrox/terraform-provider-mailman/mailman" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" +) + +func setDomainData(data *schema.ResourceData, domain *mailman.Domain) { + data.SetId(domain.MailHost) + + data.Set("alias_domain", domain.AliasDomain) + data.Set("description", domain.Description) + data.Set("mail_host", domain.MailHost) +} -- 2.44.0