github.com/recobe182/terraform@v0.8.5-0.20170117231232-49ab22a935b7/builtin/providers/ignition/resource_ignition_group.go (about)

     1  package ignition
     2  
     3  import (
     4  	"github.com/coreos/ignition/config/types"
     5  	"github.com/hashicorp/terraform/helper/schema"
     6  )
     7  
     8  func resourceGroup() *schema.Resource {
     9  	return &schema.Resource{
    10  		Create: resourceGroupCreate,
    11  		Delete: resourceGroupDelete,
    12  		Exists: resourceGroupExists,
    13  		Read:   resourceGroupRead,
    14  		Schema: map[string]*schema.Schema{
    15  			"name": &schema.Schema{
    16  				Type:     schema.TypeString,
    17  				Required: true,
    18  				ForceNew: true,
    19  			},
    20  			"gid": &schema.Schema{
    21  				Type:     schema.TypeInt,
    22  				Optional: true,
    23  				ForceNew: true,
    24  			},
    25  			"password_hash": &schema.Schema{
    26  				Type:     schema.TypeString,
    27  				Optional: true,
    28  				ForceNew: true,
    29  			},
    30  		},
    31  	}
    32  }
    33  
    34  func resourceGroupCreate(d *schema.ResourceData, meta interface{}) error {
    35  	id, err := buildGroup(d, meta.(*cache))
    36  	if err != nil {
    37  		return err
    38  	}
    39  
    40  	d.SetId(id)
    41  	return nil
    42  }
    43  
    44  func resourceGroupDelete(d *schema.ResourceData, meta interface{}) error {
    45  	d.SetId("")
    46  	return nil
    47  }
    48  
    49  func resourceGroupExists(d *schema.ResourceData, meta interface{}) (bool, error) {
    50  	id, err := buildGroup(d, meta.(*cache))
    51  	if err != nil {
    52  		return false, err
    53  	}
    54  
    55  	return id == d.Id(), nil
    56  }
    57  
    58  func resourceGroupRead(d *schema.ResourceData, meta interface{}) error {
    59  	return nil
    60  }
    61  
    62  func buildGroup(d *schema.ResourceData, c *cache) (string, error) {
    63  	return c.addGroup(&types.Group{
    64  		Name:         d.Get("name").(string),
    65  		PasswordHash: d.Get("password_hash").(string),
    66  		Gid:          getUInt(d, "gid"),
    67  	}), nil
    68  }