Skip to content

Fix UserData not being found when added to a project - #293

Open
bddvlpr wants to merge 1 commit into
apache:mainfrom
bddvlpr:fix/user-data-in-project
Open

Fix UserData not being found when added to a project#293
bddvlpr wants to merge 1 commit into
apache:mainfrom
bddvlpr:fix/user-data-in-project

Conversation

@bddvlpr

@bddvlpr bddvlpr commented Jun 5, 2026

Copy link
Copy Markdown

Description

When a user data resource is nested in a particular project using project_id, a global search will not find that particular user data.

If for some reason (as the case before),the userdata list command succeeds but doesn't contain any user data itself, throw an error for that.

Reproduce bug

resource "cloudstack_project" "test-project" {
  name = "test-project"
}

resource "cloudstack_user_data" "test-userdata" {
  name = "cloudinit-test"
  userdata = base64encode(file("../some-cloudinit.yaml"))
  project_id = cloudstack_project.test-project.id
}

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes cloudstack_user_data read behavior when the user data is registered under a CloudStack project by ensuring the read lookup includes project_id, preventing “not found” results from global-only searches.

Changes:

  • Include project_id in ListUserData parameters during resource read.
  • Add a guard for empty ListUserData results to avoid indexing into an empty slice.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread cloudstack/resource_cloudstack_user_data.go
@bddvlpr
bddvlpr force-pushed the fix/user-data-in-project branch from f7be625 to 4c879d8 Compare July 10, 2026 12:29
@bddvlpr
bddvlpr force-pushed the fix/user-data-in-project branch from 4c879d8 to f3f0ab2 Compare July 31, 2026 09:05
Copilot AI review requested due to automatic review settings July 31, 2026 09:05

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

Suppressed comments (1)

cloudstack/resource_cloudstack_user_data.go:142

  • PR description says that if ListUserData succeeds but returns no entries, the provider should throw an error. This new branch instead logs and clears the resource ID (treating it as deleted), which changes behavior and can cause Terraform to silently “forget” an existing user data if the API returns an empty list unexpectedly. Please either update the PR description to match the intended ‘treat as deleted’ behavior, or change this branch to return an explicit error when zero results are returned.
	if len(userdata.UserData) == 0 {
		log.Printf("[DEBUG] User data %s no longer exists", id)
		d.SetId("")
		return nil
	}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants