diff --git a/cloudstack/resource_cloudstack_user_data.go b/cloudstack/resource_cloudstack_user_data.go index 65a3d2ca..1197e8f3 100644 --- a/cloudstack/resource_cloudstack_user_data.go +++ b/cloudstack/resource_cloudstack_user_data.go @@ -21,6 +21,7 @@ package cloudstack import ( "fmt" + "log" "strings" "github.com/apache/cloudstack-go/v2/cloudstack" @@ -125,11 +126,21 @@ func resourceCloudStackUserDataRead(d *schema.ResourceData, meta interface{}) er p := cs.User.NewListUserDataParams() p.SetId(id) + if v, ok := d.GetOk("project_id"); ok { + p.SetProjectid(v.(string)) + } + userdata, err := cs.User.ListUserData(p) if err != nil { return fmt.Errorf("Error retrieving user data with ID %s: %s", id, err) } + if len(userdata.UserData) == 0 { + log.Printf("[DEBUG] User data %s no longer exists", id) + d.SetId("") + return nil + } + d.Set("name", userdata.UserData[0].Name) d.Set("userdata", userdata.UserData[0].Userdata) if d.Get("account").(string) != "" {