fixed rg recreation when quota is not specified

2.2
kjubybot 3 years ago
parent 8a716edac3
commit 413fb4b82b

@ -24,6 +24,7 @@ Visit https://github.com/rudecs/terraform-provider-decort for full source code p
package decort package decort
import ( import (
"encoding/json"
"fmt" "fmt"
"net/url" "net/url"
@ -122,6 +123,19 @@ func resourceResgroupCreate(d *schema.ResourceData, m interface{}) error {
d.SetId(api_resp) // rg/create API returns ID of the newly creted resource group on success d.SetId(api_resp) // rg/create API returns ID of the newly creted resource group on success
// rg.ID, _ = strconv.Atoi(api_resp) // rg.ID, _ = strconv.Atoi(api_resp)
if !set_quota {
resp, err := utilityResgroupCheckPresence(d, m)
if err != nil {
return err
}
rg := ResgroupGetResp{}
if err := json.Unmarshal([]byte(resp), &rg); err != nil {
return err
}
d.Set("quota", parseQuota(rg.Quota))
}
// re-read newly created RG to make sure schema contains complete and up to date set of specifications // re-read newly created RG to make sure schema contains complete and up to date set of specifications
return resourceResgroupRead(d, m) return resourceResgroupRead(d, m)
@ -166,8 +180,7 @@ func resourceResgroupUpdate(d *schema.ResourceData, m interface{}) error {
return fmt.Errorf("resourceResgroupUpdate: RG ID %s: changing ext_net_id for existing RG is not allowed", d.Id()) return fmt.Errorf("resourceResgroupUpdate: RG ID %s: changing ext_net_id for existing RG is not allowed", d.Id())
} }
do_general_update := false // will be true if general RG update is necessary (API rg/update)
do_general_update := false // will be true if general RG update is necessary (API rg/update)
controller := m.(*ControllerCfg) controller := m.(*ControllerCfg)
url_values := &url.Values{} url_values := &url.Values{}
@ -314,18 +327,18 @@ func resourceResgroup() *schema.Resource {
}, },
"account_id": { "account_id": {
Type: schema.TypeInt, Type: schema.TypeInt,
Required: true, Required: true,
ValidateFunc: validation.IntAtLeast(1), ValidateFunc: validation.IntAtLeast(1),
Description: "Unique ID of the account, which this resource group belongs to.", Description: "Unique ID of the account, which this resource group belongs to.",
}, },
"def_net_type": { "def_net_type": {
Type: schema.TypeString, Type: schema.TypeString,
Optional: true, Optional: true,
Default: "PRIVATE", Default: "PRIVATE",
ValidateFunc: validation.StringInSlice([]string{"PRIVATE", "PUBLIC", "NONE"}, false), ValidateFunc: validation.StringInSlice([]string{"PRIVATE", "PUBLIC", "NONE"}, false),
Description: "Type of the network, which this resource group will use as default for its computes - PRIVATE or PUBLIC or NONE.", Description: "Type of the network, which this resource group will use as default for its computes - PRIVATE or PUBLIC or NONE.",
}, },
"def_net_id": { "def_net_id": {
@ -367,6 +380,7 @@ func resourceResgroup() *schema.Resource {
"quota": { "quota": {
Type: schema.TypeList, Type: schema.TypeList,
Optional: true, Optional: true,
Computed: true,
MaxItems: 1, MaxItems: 1,
Elem: &schema.Resource{ Elem: &schema.Resource{
Schema: quotaRgSubresourceSchemaMake(), Schema: quotaRgSubresourceSchemaMake(),
@ -387,30 +401,30 @@ func resourceResgroup() *schema.Resource {
}, },
/* /*
"status": { "status": {
Type: schema.TypeString, Type: schema.TypeString,
Computed: true, Computed: true,
Description: "Current status of this resource group.", Description: "Current status of this resource group.",
}, },
"vins": { "vins": {
Type: schema.TypeList, // this is a list of ints Type: schema.TypeList, // this is a list of ints
Computed: true, Computed: true,
MaxItems: LimitMaxVinsPerResgroup, MaxItems: LimitMaxVinsPerResgroup,
Elem: &schema.Schema{ Elem: &schema.Schema{
Type: schema.TypeInt, Type: schema.TypeInt,
},
Description: "List of VINs deployed in this resource group.",
}, },
Description: "List of VINs deployed in this resource group.",
},
"computes": { "computes": {
Type: schema.TypeList, // this is a list of ints Type: schema.TypeList, // this is a list of ints
Computed: true, Computed: true,
Elem: &schema.Schema{ Elem: &schema.Schema{
Type: schema.TypeInt, Type: schema.TypeInt,
},
Description: "List of computes deployed in this resource group.",
}, },
Description: "List of computes deployed in this resource group.",
},
*/ */
}, },
} }

Loading…
Cancel
Save