M mailman/domain.go => mailman/domain.go +2 -2
@@ 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
M provider/data_source_mailman_domain.go => provider/data_source_mailman_domain.go +4 -11
@@ 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
}
A provider/resource_mailman_domain.go => provider/resource_mailman_domain.go +14 -0
@@ 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)
+}