207 Commits

Author SHA1 Message Date
Chris Roberts
b10ff0d51d
Sort guest plugins before running detection
When detecting the machine guest, first sort the guest plugins
    by the number of ancestors. This allows for returning on the
    first match instead of requiring running the detection process
    on every registered guest plugin.
2022-04-25 12:26:36 -05:00
sophia
6daa8d52a2
Remove code for avoiding duped synced folders in config 2022-04-25 12:26:34 -05:00
sophia
19f3d2f0b6
Refactor named plugin bits to apply to all components 2022-04-25 12:26:33 -05:00
sophia
153d218d68
Set plugin name 2022-04-25 12:26:32 -05:00
Chris Roberts
14fa44a449
Update to use command info from sdk 2022-04-25 12:26:32 -05:00
Chris Roberts
bf393065fa
Update guest and synced folder plugin loading to seed machine 2022-04-25 12:26:31 -05:00
sophia
896cdea21f
Delete machine from db 2022-04-25 12:26:23 -05:00
sophia
3dbd9286be
Merge targets with upserting 2022-04-25 12:26:23 -05:00
sophia
12de22a7db
Get machine state 2022-04-25 12:26:23 -05:00
sophia
8a39ee6960
Set target state in addition to machine state 2022-04-25 12:26:22 -05:00
sophia
5ed50277bd
Find target in index by uuid or name 2022-04-25 12:26:22 -05:00
Chris Roberts
3933632216
Update flag mappers to use generic component flag struct 2022-04-25 12:26:21 -05:00
Paul Hinze
92c345b42d
Allow go push plugins to use config from Vagrantfile
* Populate push configs when parsing the vagrantfile
* Allow untyped configs to be shipped over GRPC
* In our demo plugin, walk the vagrantfile and snag the config

Example Vagrantfile that works with the demo plugin:

```ruby
Vagrant.configure("2") do |config|
  config.push.define "myplugin" do |push|
    push.coolkey = "coolvalue"
    push.alist = ["so", "many", "items"]
    push.ahash = { "hashkey" => "hashvalue" }
  end
end

```
2022-04-25 12:26:21 -05:00
sophia
aeda0ec039
Pass error status with job completion results 2022-04-25 12:26:20 -05:00
Chris Roberts
acb32d33f7
Get parent count directly from plugin 2022-04-25 12:26:14 -05:00
Chris Roberts
1155e7be21
Configure plugins and use plugin local functions 2022-04-25 12:26:14 -05:00
sophia
9ea254735a
Set target uuid opposed to resource id
The uuid is the public identifier vs the resource id which should
be for internal operations.
The target uuid should correspond to the machine id (given by
the provider)
2022-04-25 12:26:13 -05:00
sophia
63a4b76c21
Add tests for setting machine id 2022-04-25 12:26:13 -05:00
sophia
294293097c
Set empty machine id when destroying 2022-04-25 12:26:13 -05:00
Paul Hinze
2460961749
Switch to centralized VagrantCWD implementation
Now depends on https://github.com/hashicorp/vagrant-plugin-sdk/pull/104
2022-04-25 12:26:12 -05:00
sophia
ea680d78f7
Seed synced folder plugins with machine 2022-04-25 12:26:12 -05:00
sophia
a86bf277aa
Use guest specified in vagrantfile if available 2022-04-25 12:26:11 -05:00
sophia
31e57414b4
Destroy machine + remove data dir when machine id is set to empty value 2022-04-25 12:26:11 -05:00
sophia
ba1dd33fff
Include seeds in ruby communicator 2022-04-25 12:26:09 -05:00
sophia
d57203f005
Get ruby communincator upload working 2022-04-25 12:26:09 -05:00
sophia
85f7aa1586
Make go communincator plugin work 2022-04-25 12:26:09 -05:00
sophia
b6dfff9679
Implement communicate method for core.Target 2022-04-25 12:26:07 -05:00
sophia
3a43cd35cb
Don't use config if it doesn't exist yet 2022-04-25 12:26:06 -05:00
sophia
04591646a3
Use host from vagrantfile if defined 2022-04-25 12:26:06 -05:00
sophia
1fe695bdf3
Use Vagrantfile info to configure target box 2022-04-25 12:26:06 -05:00
sophia
36dbd73945
Add endpoint for accessing basis/project/target config 2022-04-25 12:26:06 -05:00
sophia
01bc9a8430
Remove unused config from basis 2022-04-25 12:26:06 -05:00
sophia
0153f75b09
Remove unused core components 2022-04-25 12:26:06 -05:00
Chris Roberts
6b37b7ba55
Add seed functions and seed before running 2022-04-25 12:26:05 -05:00
Chris Roberts
bd2d399951
Use function to get component type 2022-04-25 12:26:05 -05:00
sophia
f1dc606d11
Get plugins from basis 2022-04-25 12:26:04 -05:00
sophia
8f8b5d2078
Return synced folders plugin along with synced folder info 2022-04-25 12:26:04 -05:00
sophia
847d87a017
Get synced folder from machine 2022-04-25 12:26:04 -05:00
sophia
de996a6047
Move box loading to machine 2022-04-25 12:26:01 -05:00
sophia
d49944a25d
Only init targets when running a job scoped at the project or target 2022-04-25 12:26:01 -05:00
Chris Roberts
081fcad389
Update guest detection and parent loading in machine 2022-04-25 12:25:59 -05:00
Chris Roberts
a2147ed27f
Update basis ResourceId to match interface 2022-04-25 12:25:59 -05:00
Chris Roberts
22de22e199
Update parent counting when loading plugins 2022-04-25 12:25:59 -05:00
sophia
57afe56edd
Delete box directory if exists 2022-04-25 12:25:57 -05:00
sophia
b12393ce2c
Ensure metadataurl is set for box 2022-04-25 12:25:57 -05:00
sophia
cec195cecb
Remove boxes from db when deleting 2022-04-25 12:25:56 -05:00
sophia
559b160eb8
Use go getter to extract box files 2022-04-25 12:25:56 -05:00
sophia
d786649e03
Add box if not found in box collection 2022-04-25 12:25:55 -05:00
sophia
a233cbefbb
Add ability to add box
This only works for boxes being added as username/boxname from
vagrant cloud.
2022-04-25 12:25:55 -05:00
sophia
2dfb9b933e
Get boxes from project 2022-04-25 12:25:55 -05:00