devopsgroup-io / vagrant-digitalocean

:droplet: A Vagrant provider plugin that manages DigitalOcean droplets.
Mozilla Public License 2.0
1.71k stars 182 forks source link

Add Support for Projects #292

Closed utkonos closed 1 year ago

utkonos commented 2 years ago

Not sure about individual accounts, but business groups in DO have had the concept of a "Project" for a while. These are groupings of resources including VMs. It would be nice to be able to specify a project for a new VM. Reading the DO API docs, there isn't a parameter to specify a project on droplet creation, but there is an endpoint that assigns a resource (in this case a droplet) to a project once the resource is created. I propose a new attribute for configuring providers (optional of course):

provider.project = 'WidgetFactory'

The process would be to take the string from the attribute above, and make a call to the following endpoint:

GET /v2/projects

Search the returned JSON by the provider string and determine the project's UUID. That UUID along with the UUID of the created droplet are then used in a call to the following endpoint:

POST /v2/projects/$PROJECT_ID/resources

If this seems like a worthy feature, please let me know and I will get a PR ready that adds this feature.