hashicorp / hashicorp/packer-plugin-cloudstack

CloudStack builder can't find service/disk offerings of ROOT domain in a CloudStack domain setting

Open
#27 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
5
Forks
17
PR merge metrics
No merged PRs in 30d

Description

_This issue was originally opened by @hrak in https://github.com/hashicorp/packer/issues/4541 and has been migrated to this repository. The original issue description is below._

---
When using domains in CloudStack, any disk or service offering created in the ROOT domain is not available for use in Packer in any other domain than ROOT, because the API call for discovering disk & service offerings does not pass the 'listall=true' flag.

As a workaround i have now duplicated a service offering from the ROOT domain in my team domain, but it would be nice if packer sees the default offerings of the ROOT domain.

Packer output:
```
cloudstack output will be in this color.

==> cloudstack: Preparing config...
==> cloudstack: 1 error(s) occurred:
==> cloudstack:
==> cloudstack: * Error retrieving UUID of disk offering : No match found for Medium: &{Count:0 DiskOfferings:[]}
Build 'cloudstack' finished.

==> Builds finished. The artifacts of successful builds are:
```

```
☁ Apache CloudStack 🐵 cloudmonkey 5.3.2. Type help or ? to list commands.

Using management server profile: local

(local) 🐵 > list diskofferings
(local) 🐵 >
(local) 🐵 > list diskofferings listall=true
{
"count": 3,
"diskoffering": [
{
"created": "2015-12-04T15:19:59+0000",
"disksize": 5,
"displayoffering": true,
"displaytext": "Small Disk, 5 GB",
"id": "7ed5b6fe-abcf-4769-a9ea-180aa7240279",
"iscustomized": false,
"name": "Small",
"provisioningtype": "thin",
"storagetype": "shared"
},
{
"created": "2015-12-04T15:19:59+0000",
"disksize": 20,
"displayoffering": true,
"displaytext": "Medium Disk, 20 GB",
"id": "62f4cdf6-5d01-410c-9ca4-0addc9097229",
"iscustomized": false,
"name": "Medium",
"provisioningtype": "thin",
"storagetype": "shared"
},
{
"created": "2015-12-04T15:19:59+0000",
"disksize": 100,
"displayoffering": true,
"displaytext": "Large Disk, 100 GB",
"id": "4517e129-034c-4659-8b56-d8e19b5fb540",
"iscustomized": false,
"name": "Large",
"provisioningtype": "thin",
"storagetype": "shared"
}
]
}
```

Packer version: 0.12.2
CloudStack version: 4.8

Contributor guide

Open the contributing guide

Research direction

Start with the CloudStack builder code that discovers disk and service offerings, then trace the API calls used for those lookups. Reproduce the difference between the default request and the request with `listall=true`; done means offerings from the ROOT domain are discoverable in another domain, with coverage for both disk and service offerings if tests exist nearby.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
cloud
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
40/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.