Commit graph

4531 commits

Author SHA1 Message Date
sophia
436518e445
No need to stringify hash keys when using mappers 2022-04-25 12:26:51 -05:00
sophia
7dd3649d73
Update Symbol proto mappers 2022-04-25 12:26:51 -05:00
sophia
d5aacc0bc6
Thrash around making to proto for config faster 2022-04-25 12:26:51 -05:00
sophia
f4811af759
Use symbol proto when protoizing plugin configs 2022-04-25 12:26:51 -05:00
sophia
ccf2bf6197
Pass config as a SDK hash in order to use the Symbol proto 2022-04-25 12:26:51 -05:00
sophia
a0cec28849
go generate 2022-04-25 12:26:50 -05:00
sophia
77a06e83d0
Close core plugins 2022-04-25 12:26:50 -05:00
sophia
b40dde3797
Module for core plugin manager mappers 2022-04-25 12:26:50 -05:00
sophia
afc6d1c27d
Extract core plugin manager from context 2022-04-25 12:26:50 -05:00
sophia
e90c7a508f
go generate 2022-04-25 12:26:49 -05:00
Paul Hinze
a4f426d26e
Modify SSH utils server mode behavior so ssh -c works
Still work left to do on exec and stderr separation but this represents
enough working to let vagrant-spec assertions pass so I think it's worth a
checkpoint!
2022-04-25 12:26:48 -05:00
Paul Hinze
fda2bcf0cd
Refactor SSHRun action to make room for remote overrides 2022-04-25 12:26:48 -05:00
Paul Hinze
6471a5a310
Refactor Util::SSH to make room for remote overrides
Splitting out methods gives us a place to hook in appropriate behavior
for when we're running in a GRPC server.
2022-04-25 12:26:48 -05:00
sophia
b62bdd8efb
Add missing Target states to proto 2022-04-25 12:26:47 -05:00
Paul Hinze
8f9952089a
Fix commands that run without a project
Some commands like `vagrant init` and `vagrant box` should be able to
run successfully without a full Project available in VAGRANT_CWD (in
other words, they don't require that a valid Vagrantfile be available.)

Thus far we've been assuming that a Project is available when
dispatching commands, which mean that commands of this nature weren't
working.

Here we make the Basis available to serve as an alternative client to
Vagrant::Environment::Remote such that it can be instantiated and passed
through to commands. This required some changes to Environment::Remote
to make its interactions with the client more defensive, but we manage
to avoid needing to make any changes to the normal legacy codepaths.
2022-04-25 12:26:47 -05:00
sophia
725f7a3b6e
go generate 2022-04-25 12:26:47 -05:00
sophia
128599ab68
Get local box metadata in remote box 2022-04-25 12:26:47 -05:00
sophia
29d5b3627d
Always assume machine entry is valid on the ruby side 2022-04-25 12:26:46 -05:00
sophia
f55da8168a
Check if a box is in use using the machines endpoint
This returns a list of machine index entries that use the box. This
is what is expected from the Ruby side.
2022-04-25 12:26:46 -05:00
sophia
30c75b4d4d
go generate 2022-04-25 12:26:46 -05:00
sophia
a39747cc59
go generate 2022-04-25 12:26:46 -05:00
sophia
f1aec2c1c2
Return machine name as sym 2022-04-25 12:26:46 -05:00
sophia
bc641209e8
Check for box version 2022-04-25 12:26:46 -05:00
sophia
d9bcdba830
go generate 2022-04-25 12:26:45 -05:00
sophia
3516aa7131
Set defailt Vagrant log level 2022-04-25 12:26:44 -05:00
sophia
5d348e66a1
Update box proto to use struct for metadata 2022-04-25 12:26:44 -05:00
Paul Hinze
7c1d2e5368
Use optional fields on Synced Folder instead of empty string checks
Addresses concerns raised in discussion here
https://github.com/hashicorp/vagrant-ruby/pull/219#discussion_r816966056
and makes it so we don't have to change any plugin code to make things
work.

Depends on https://github.com/hashicorp/vagrant-plugin-sdk/pull/133
2022-04-25 12:26:44 -05:00
Paul Hinze
2906d2c7df
Populate default when synced folder guest type is not set
This helps fix the unit tests that were failing. Also adding a test for
the new behavior
2022-04-25 12:26:44 -05:00
sophia
1441ea74d2
Get sf type from folders 2022-04-25 12:26:43 -05:00
Chris Roberts
6fe6ee3221
Generated proto update 2022-04-25 12:26:43 -05:00
Chris Roberts
535f82e192
Update remote UI implementation to retain formatting 2022-04-25 12:26:43 -05:00
Chris Roberts
2ec4bb1a13
Add remote override for #ask method 2022-04-25 12:26:42 -05:00
Chris Roberts
ee9af88606
Pass message as string instead of array 2022-04-25 12:26:42 -05:00
Chris Roberts
50a7a578d3
Use initialization args for cache key 2022-04-25 12:26:39 -05:00
Chris Roberts
6d0e08942b
Convert error logger message to warn 2022-04-25 12:26:39 -05:00
Chris Roberts
0a676fd3f1
Remove local provider class replacement in machine 2022-04-25 12:26:39 -05:00
Chris Roberts
924700e103
Support method passthru to local plugins 2022-04-25 12:26:38 -05:00
Chris Roberts
0ad82cf04a
Ensure all remote plugins handle client setup 2022-04-25 12:26:38 -05:00
Chris Roberts
7e9dad2b3e
Add remote host plugin 2022-04-25 12:26:38 -05:00
Paul Hinze
ff86d86ac8
Provisioner Plugins 2022-04-25 12:26:37 -05:00
Paul Hinze
8b6ef27a0f
Fix multiple synced folder handling in server mode
There was a hash assignment that was overriding values when there were
multiple synced folders for a given implementation.

Includes some stub-tastic unit tests to help verify the hash munging
behavior does what it's supposed to do going forward.
2022-04-25 12:26:37 -05:00
Chris Roberts
bdf8527ab0
Generated proto update 2022-04-25 12:26:36 -05:00
Chris Roberts
7cb620da23
Remove method which is no longer used 2022-04-25 12:26:36 -05:00
Chris Roberts
bcff6d6284
Re-enable using local provider from machine 2022-04-25 12:26:35 -05:00
Chris Roberts
a5b3ca9f6d
Return remote plugin instances 2022-04-25 12:26:35 -05:00
Chris Roberts
4a9d501823
Remove module injection on V2 plugins 2022-04-25 12:26:35 -05:00
Chris Roberts
e07a77f919
Update wrapper classes to use remote plugin classes 2022-04-25 12:26:35 -05:00
Chris Roberts
aa98e48e28
Update remote plugins to subclass V2 plugins 2022-04-25 12:26:35 -05:00
Chris Roberts
095a0f8847
WIP checkpoint with callable remote provider action 2022-04-25 12:26:35 -05:00
Chris Roberts
0cf2ea2eb6
Update wrapper initializer to use client from manager 2022-04-25 12:26:35 -05:00
Chris Roberts
3d05ff7ce0
Set client into remote manager on enable and remove on disable 2022-04-25 12:26:35 -05:00
Chris Roberts
070292fb3b
Add class level storage for remote manager client 2022-04-25 12:26:35 -05:00
Paul Hinze
e9426b7a89
Switch to constant stub and add explanatory comment 2022-04-25 12:26:34 -05:00
Paul Hinze
952ba920bc
Return a static priority w/ synced folders in remote manager
Callers expect the manager to return both the class and an integer
priority... so we get a bare minimum working by returning something
reasonable.
2022-04-25 12:26:34 -05:00
sophia
b6de8c3a80
Add guest detect function to client 2022-04-25 12:26:34 -05:00
sophia
56edbfa3b8
Add guest remote plugin module 2022-04-25 12:26:33 -05:00
sophia
87f8c9cc5e
Implement synced folder prepare endpoint 2022-04-25 12:26:33 -05:00
sophia
3ae69c706a
go generate 2022-04-25 12:26:33 -05:00
sophia
231c99b133
go generate . 2022-04-25 12:26:33 -05:00
sophia
1f632d076c
go generate after rebase 2022-04-25 12:26:33 -05:00
sophia
1cda8322af
go generate 2022-04-25 12:26:33 -05:00
sophia
153d218d68
Set plugin name 2022-04-25 12:26:32 -05:00
sophia
1217189616
go generate 2022-04-25 12:26:32 -05:00
sophia
e95d906f74
Get plugin name from client 2022-04-25 12:26:32 -05:00
sophia
764f5c96c5
go generate 2022-04-25 12:26:32 -05:00
Chris Roberts
fc8b01f0ac
Generated proto updates 2022-04-25 12:26:32 -05:00
Chris Roberts
1c3afc0fc9
Generated proto update 2022-04-25 12:26:32 -05:00
Chris Roberts
8867dfc33c
Accept options hash for action methods 2022-04-25 12:26:31 -05:00
Chris Roberts
2acd0fa3b8
Generated proto updates 2022-04-25 12:26:30 -05:00
sophia
bf8b7f6508
go generate 2022-04-25 12:26:27 -05:00
sophia
81a9d7b241
Pass machine to provider functions 2022-04-25 12:26:24 -05:00
sophia
fcf405bdf8
Run provider actions 2022-04-25 12:26:24 -05:00
sophia
8355209654
Accept machine for provider state endpoint 2022-04-25 12:26:24 -05:00
sophia
1e428a0812
Add mappers for provider 2022-04-25 12:26:24 -05:00
sophia
526b7f2318
Remote init from provider grpc api 2022-04-25 12:26:23 -05:00
sophia
809e4044a0
Add provider remote plugin module 2022-04-25 12:26:23 -05:00
sophia
5fda271283
go generate . 2022-04-25 12:26:23 -05:00
sophia
12de22a7db
Get machine state 2022-04-25 12:26:23 -05:00
sophia
371377ebfc
Use provider to get current state for now 2022-04-25 12:26:23 -05:00
sophia
2469016be1
Use remote machine/environment 2022-04-25 12:26:22 -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
Paul Hinze
a841da4fc6
Add a simple push plugin in Go
The only tweak required to get this to work was allowing a DummyConfig
to survive being passed through a remote plugin on the Ruby side.
2022-04-25 12:26:21 -05:00
Paul Hinze
0fef7cc416
Port push plugins
This uses the new Push plugin support added to the plugin SDK in https://github.com/hashicorp/vagrant-plugin-sdk/pull/106 to make the following changes:

 * The plugin manager on the Go side now registers push plugins
 * The the _remote_ plugin manager on the Ruby side now calls over to
   the go side to get push plugins
 * All the wiring is hooked up such that when a push plugin is replaced
   with its remote GRPC-client-wielding equivalent, the messages are
   ferried around.
2022-04-25 12:26:21 -05:00
sophia
deb667ecd3
Use common rpc errdetails messages 2022-04-25 12:26:20 -05:00
sophia
45e64b9890
Add localized message proto 2022-04-25 12:26:20 -05:00
Chris Roberts
914530d26a
Use trace log level for noisy log messages 2022-04-25 12:26:19 -05:00
Chris Roberts
4bcef5de84
Update initial logger configuration to properly apply 2022-04-25 12:26:19 -05:00
Chris Roberts
ec68f6d910
Allow trace to accept args when adding on undefine 2022-04-25 12:26:19 -05:00
Chris Roberts
1b8686d471
Use configurator for level configuration 2022-04-25 12:26:19 -05:00
Chris Roberts
fb1dc2cc59
Load log4r patches at startup 2022-04-25 12:26:19 -05:00
Chris Roberts
d746df4883
Patch Log4r to allow trace logging level 2022-04-25 12:26:19 -05:00
Chris Roberts
8c9b72d56e
Base log message splitting on overall size 2022-04-25 12:26:16 -05:00
Chris Roberts
d8e959c89f
Connect synced folder to client in _initialize method 2022-04-25 12:26:16 -05:00
Chris Roberts
d67aaff74a
Set the client using keyword for synced folder 2022-04-25 12:26:16 -05:00
Chris Roberts
72b8547cce
Generated proto updates 2022-04-25 12:26:15 -05:00
Chris Roberts
031890fcc7
Allow plugin manager to be swapped out for remote manager 2022-04-25 12:26:15 -05:00
Chris Roberts
23d0d9debb
Provide client using keyword argument for synced folder 2022-04-25 12:26:14 -05:00
Chris Roberts
fb2319f1e2
Implement remote plugin manager backed by vagrant go 2022-04-25 12:26:14 -05:00
sophia
1db38e65f8
Setup remote plugin manager when in server mode 2022-04-25 12:26:14 -05:00
sophia
94a203efc9
Inject dummy client into remote synced folders 2022-04-25 12:26:14 -05:00
sophia
05bbd9ec50
Use v2 manager to seed ruby plugins for remote manager 2022-04-25 12:26:13 -05:00
sophia
78fbd12da9
Use remote plugin manager when in server mode 2022-04-25 12:26:13 -05:00
sophia
d5007d4d85
Use remote plugin module when in server mode 2022-04-25 12:26:13 -05:00
sophia
e951c4d971
Add remote plugin manager 2022-04-25 12:26:13 -05:00
sophia
90033b9b68
Only prepend remote mixin synced folders when running in remote mode 2022-04-25 12:26:13 -05:00
sophia
7a75ed6cbb
Get stdout and stderr from privledged execute 2022-04-25 12:26:13 -05:00
sophia
8e85561f61
Get stdout and stderr from command 2022-04-25 12:26:12 -05:00
sophia
c63e7936b2
go generate 2022-04-25 12:26:12 -05:00
sophia
175f05657c
go generate 2022-04-25 12:26:10 -05:00
sophia
9722443d09
Don't check if guest is able to connect
The go side should be doing the checks for ensuring the guest is reachable
2022-04-25 12:26:10 -05:00
sophia
84af97f0a9
Add placeholder remote guest name 2022-04-25 12:26:10 -05:00
sophia
b29b37af0d
Add mappers for time duration proto 2022-04-25 12:26:09 -05:00
sophia
ab395ad730
Move remote communicator to remote plugin module 2022-04-25 12:26:09 -05:00
sophia
514b4e3d89
go generate 2022-04-25 12:26:09 -05:00
sophia
49ad851606
Use named paths proto message for uploading/downloading 2022-04-25 12:26:09 -05:00
sophia
8513a14f9e
Use RemotePath proto message to upload/download files 2022-04-25 12:26:08 -05:00
sophia
1f2084cd17
Add communincator path proto 2022-04-25 12:26:08 -05:00
sophia
4bc2a51748
Pass communincator command 2022-04-25 12:26:08 -05:00
sophia
2e693b60fe
Load remote communincator 2022-04-25 12:26:07 -05:00
sophia
10b4015455
Setup remote communincator 2022-04-25 12:26:07 -05:00
sophia
dc9fe12644
Disable checking for synced folder client 2022-04-25 12:26:07 -05:00
sophia
2bd9c995e9
Don't include folder if it is disabled 2022-04-25 12:26:07 -05:00
sophia
083fe5ea82
Setup remote mixin synced folder module 2022-04-25 12:26:07 -05:00
sophia
9c9c93a0c6
Set folder guestpath and hostpath 2022-04-25 12:26:06 -05:00
sophia
e71e887331
Move remote synced folder module into remote plugin module 2022-04-25 12:26:06 -05:00
Chris Roberts
ac8978eee3
Generated proto updates 2022-04-25 12:26:05 -05:00
sophia
c44046998e
go generate 2022-04-25 12:26:04 -05:00
sophia
d6ecc23a9f
Create synced folder hash 2022-04-25 12:26:04 -05:00
sophia
fa1377528f
go generate 2022-04-25 12:26:04 -05:00
sophia
45cfcc4c34
Return empty response if capability returns an empty response 2022-04-25 12:26:04 -05:00
sophia
46aa1b3e4e
Add synced folder service to list of services 2022-04-25 12:26:04 -05:00
sophia
847d87a017
Get synced folder from machine 2022-04-25 12:26:04 -05:00
sophia
183ceb85eb
go generate 2022-04-25 12:26:03 -05:00
sophia
b58b77ef0b
Add capability methods for remote server 2022-04-25 12:26:03 -05:00
sophia
8bce3e6bd7
Enable remote mode for synced folders 2022-04-25 12:26:03 -05:00
sophia
9002131281
go generate 2022-04-25 12:26:03 -05:00
Chris Roberts
8b7c5efa52
Use custom output to break long log lines. Force encoding. 2022-04-25 12:26:02 -05:00
Chris Roberts
9f3241a5b5
Generated updates 2022-04-25 12:26:01 -05:00
Chris Roberts
3fc453cde6
Adjust log silencing for ruby mapper output 2022-04-25 12:26:00 -05:00
Chris Roberts
687189f7b2
Provider name must return as Symbol 2022-04-25 12:25:59 -05:00
Chris Roberts
0c1ff17c43
Only allow mappers logging output if explicitly requested 2022-04-25 12:25:59 -05:00
Chris Roberts
a85c7cc097
Temp logger fix to prevent encoding based errors 2022-04-25 12:25:59 -05:00
Chris Roberts
84b9b1650a
Add client access to ui 2022-04-25 12:25:57 -05:00
sophia
7aaeaf2e46
Update protos 2022-04-25 12:25:57 -05:00
sophia
c5de0d88f7
Add box from ruby 2022-04-25 12:25:56 -05:00
sophia
69b15f7140
Return list of box info when requesting all boxes 2022-04-25 12:25:56 -05:00
sophia
9e04d926bf
go generate 2022-04-25 12:25:56 -05:00
sophia
f71aa68a69
Get box collection from vagrant-go 2022-04-25 12:25:56 -05:00
sophia
8ead293836
Enable box collection for server mode 2022-04-25 12:25:56 -05:00
sophia
e7a8c7120e
go generate 2022-04-25 12:25:56 -05:00
sophia
9d01b2c60e
Add endpoint for finding boxes 2022-04-25 12:25:54 -05:00
sophia
80f3549716
Initialize remote box with client 2022-04-25 12:25:54 -05:00
sophia
085e30053e
Load box from machine 2022-04-25 12:25:53 -05:00
sophia
d0f7d89104
Enable box in server mode 2022-04-25 12:25:53 -05:00
sophia
62d7324bfc
go generate 2022-04-25 12:25:52 -05:00
sophia
93e94186ba
Add box endpoints 2022-04-25 12:25:52 -05:00
sophia
d7737effbf
Add id to box 2022-04-25 12:25:52 -05:00
sophia
1c27a57213
Use Box as part of machine proto 2022-04-25 12:25:51 -05:00
sophia
ed76183470
Add Box proto message 2022-04-25 12:25:51 -05:00
sophia
0a878721f5
go generate 2022-04-25 12:25:49 -05:00
sophia
4251b2ff7c
Get first level parent from ruby plugins 2022-04-25 12:24:48 -05:00
sophia
92d7c7b291
go generate 2022-04-25 12:24:48 -05:00
sophia
09a836745a
Don't search for parent plugins that don't exist in the Ruby run time 2022-04-25 12:24:48 -05:00
Chris Roberts
8d5e5b1276
Fix loggers to prevent multiple output
Only the parent logger directly under the root/global logger
    needs to have the outputter set. When set on child loggers
    output will be sent to all outputters defined on child + all
    parents. This provides just a single output behavior.
2022-04-25 12:24:47 -05:00
Chris Roberts
61c3134928
Do not provide environment to capability call 2022-04-25 12:24:46 -05:00
Chris Roberts
c92e283e7a
Update logger outputter when setting within repository
Since all loggers get registered into the internal repository
    when created, intercept the logger and force the outputter
    to stderr so it is properly applied to all logger instances
    that may be created.
2022-04-25 12:24:46 -05:00
Chris Roberts
f976d7a19c
Fix logger configuration to apply to all 2022-04-25 12:24:46 -05:00
Chris Roberts
819a4d28a4
Reconfigure legacy vagrant to utilize hclog 2022-04-25 12:24:46 -05:00
Chris Roberts
be4bbe902f
Generated proto updates 2022-04-25 12:24:46 -05:00
sophia
14d17dfd9d
Return capability execution result 2022-04-25 12:24:41 -05:00
sophia
b2cce38f48
Add rpc endpoint to prune out old jobs 2022-04-25 12:24:40 -05:00
sophia
bb336592ea
Remove 'found' from basis/project/target query results 2022-04-25 12:24:39 -05:00
sophia
54c0b0528d
Add remote host module 2022-04-25 12:24:39 -05:00
sophia
eeb950b987
Support to_proto for ui's 2022-04-25 12:24:39 -05:00
sophia
7477455380
Get parents from guest plugin 2022-04-25 12:24:39 -05:00
sophia
0588584438
Get local_data from project client 2022-04-25 12:24:37 -05:00
sophia
9599024fa5
Don't setup paths for remote environment 2022-04-25 12:24:37 -05:00
sophia
42796be551
Get machine from project for guest service 2022-04-25 12:24:37 -05:00
sophia
f1e2a73bfa
Don't use just a client to instantiate a machine 2022-04-25 12:24:37 -05:00
sophia
7a5d045083
Setup guest client when initializing guest 2022-04-25 12:24:37 -05:00
sophia
8efc8542b7
Rename guest client 'capability method to match the client interface 2022-04-25 12:24:37 -05:00
sophia
5d46b93a99
Each component client stores their proto 2022-04-25 12:24:37 -05:00
sophia
83a080521e
Add to_proto to machine in order to pass machine protos around to other plugins 2022-04-25 12:24:37 -05:00
sophia
827b50db77
Get client from machine go impl 2022-04-25 12:24:36 -05:00
sophia
3067fe7dba
Add remote guest 2022-04-25 12:24:36 -05:00
sophia
d196b8635c
Detect Ruby guest plugin 2022-04-25 12:24:36 -05:00
sophia
b8468644f3
Load vagrantfile given by remote project 2022-04-25 12:24:36 -05:00
sophia
ca3d76ca7d
Use project client to populate environment options 2022-04-25 12:24:36 -05:00
sophia
5ca687cad4
Implement project home path, cwd and default private key 2022-04-25 12:24:36 -05:00
Chris Roberts
c1bbc7284b
Generated proto updates 2022-04-25 12:24:35 -05:00
Chris Roberts
f618d991f8
Update RemoteUI name to Remote 2022-04-25 12:24:35 -05:00
Chris Roberts
e090fa4e10
Move UI to remote file and include options to client 2022-04-25 12:24:34 -05:00
Chris Roberts
df53588de5
Store machine client within index entry for use in generating environment 2022-04-25 12:24:34 -05:00
Chris Roberts
99aef42342
Check for server mode before setting constant 2022-04-25 12:24:34 -05:00
Chris Roberts
927fd5e52f
Remove proto requires
They will only be needed when running in server mode, and when
in server mode, they will be loaded at startup
2022-04-25 12:24:34 -05:00
Chris Roberts
b609a44452
Fix method name called on machine client 2022-04-25 12:24:34 -05:00
Chris Roberts
fb629ae4a2
Fix name and use provider_name from client 2022-04-25 12:24:33 -05:00
Chris Roberts
1ae6ca0522
Generated protobuf updates 2022-04-25 12:24:33 -05:00
Chris Roberts
7a1aba1cb9
Use has with indifferent access when loading entry 2022-04-25 12:24:32 -05:00
Chris Roberts
e5184c5719
Call id on client instead of get_id 2022-04-25 12:24:32 -05:00
Chris Roberts
34ecea07bc
Fix method calls when building entry and setting ID 2022-04-25 12:24:32 -05:00
Chris Roberts
9fb979d44c
Extend module on entry not index 2022-04-25 12:24:32 -05:00
Chris Roberts
aaf0ae8504
Generated proto updates 2022-04-25 12:24:31 -05:00
Chris Roberts
8f4bb571a5
Update remote function name and setup 2022-04-25 12:24:30 -05:00
Chris Roberts
b243868ce9
Add remote module for machine index entry 2022-04-25 12:24:30 -05:00
sophia
10a1f1011b
Get datadir for machine and project 2022-04-25 12:24:29 -05:00
sophia
68aa184bee
Get local data path from project 2022-04-25 12:24:28 -05:00
sophia
f722b15661
Remove references to SDK from remote machine index 2022-04-25 12:24:28 -05:00
sophia
f761af3c55
Move client creation into client module 2022-04-25 12:24:28 -05:00
sophia
c71eb9ea0e
UQuery machine index by uuid 2022-04-25 12:24:28 -05:00
sophia
154a4e56f0
Use uuid as Target Index identifier 2022-04-25 12:24:28 -05:00
sophia
83495a4f8b
Fix each machine index machine yielder 2022-04-25 12:24:27 -05:00
sophia
47a0a2d7d2
Record machine client in machine index entry 2022-04-25 12:24:27 -05:00
sophia
6eea1b0afd
Add endpoint for getting all machines from the index 2022-04-25 12:24:27 -05:00
sophia
c5e6a97892
Cache machines in machine index 2022-04-25 12:24:27 -05:00
sophia
8808ef353e
Clean up logging 2022-04-25 12:24:27 -05:00
sophia
f103797592
go generate . 2022-04-25 12:24:27 -05:00
sophia
01fc2926c9
Save machine index entries remotely 2022-04-25 12:24:27 -05:00
sophia
6f54cf51a2
Allow Machine Index entries to have a remote machine reference 2022-04-25 12:24:27 -05:00
sophia
90968ea430
pPss environment client to machine index eentry environment 2022-04-25 12:24:27 -05:00
sophia
3bda8b24ef
Save point: Get a target successfully from target index 2022-04-25 12:24:26 -05:00
sophia
6dae3576a3
Get project ref 2022-04-25 12:24:26 -05:00
sophia
1ea5b2ba91
Save point: use target ref to retrieve info from target index 2022-04-25 12:24:26 -05:00
sophia
663fbab87a
Fill in remote machine index module 2022-04-25 12:24:26 -05:00
sophia
7de0fe1bd8
Get machine index remote service setup 2022-04-25 12:24:26 -05:00
sophia
c123335456
Save point: connect to machine index service 2022-04-25 12:24:26 -05:00
sophia
a5445b708e
go generate 2022-04-25 12:24:26 -05:00
sophia
040f02e60d
Add proto to delete target 2022-04-25 12:24:25 -05:00
Chris Roberts
378019f014
Generated proto updates 2022-04-25 12:24:25 -05:00
Chris Roberts
fe293dfd1f
Require client to be set and provide stub on initial startup
When running in server mode, make the Environment validate a client
option is provided on instantiation. If no client option is provided,
raise an exception since it is required in server mode.

Since an initial Environment is required during start, include a
stub value for the client so the initial Environment can be instantiated
successfully and the GRPC service can be started.
2022-04-25 12:24:23 -05:00
Chris Roberts
3ca9519f5c
Generated proto updates 2022-04-25 12:24:23 -05:00
Chris Roberts
cad5a7f717
Generated proto update 2022-04-25 12:24:21 -05:00
sophia
0d0ff5c5c6
Define communicator configs as plugin configs 2022-04-25 12:24:21 -05:00
sophia
a128d98dea
Move to_proto to config classes 2022-04-25 12:24:21 -05:00
sophia
5128f604ca
go generate 2022-04-25 12:24:20 -05:00
sophia
0e40c2eb97
to_proto save point 2022-04-25 12:24:20 -05:00
sophia
ada96f13a3
Upload targets found in Vagrantfile 2022-04-25 12:24:20 -05:00
sophia
8d1b9a4a8c
Update regex for dummy config fields 2022-04-25 12:24:20 -05:00
sophia
85271c616e
Collect config defined by community plugins 2022-04-25 12:24:20 -05:00
sophia
f316afdd38
Set project and basis configuration type as vagrantfile 2022-04-25 12:24:19 -05:00
sophia
53c822d76a
Define Vagrantfile DB form 2022-04-25 12:24:19 -05:00
sophia
5bfa4a6f48
Move Vagrantfile proto definition to the plugin sdk 2022-04-25 12:24:19 -05:00
sophia
eeb7028a48
Building after rebase 2022-04-25 12:24:19 -05:00
sophia
5f532fc986
Make box url a repeated field 2022-04-25 12:24:18 -05:00
sophia
c2176d5e80
Extract vagrant and communicator settings from Vagrantfile 2022-04-25 12:24:18 -05:00
sophia
849755646b
Define config for config.ssh, winrm, winssh, vagrant 2022-04-25 12:24:18 -05:00
sophia
da58bbc1c1
Get all config.vm.* variables 2022-04-25 12:24:18 -05:00
sophia
b152cc4f2b
Allow dummy config to eval config blocks to set instance variables 2022-04-25 12:24:18 -05:00
sophia
9c1d09eb8a
Extract providers 2022-04-25 12:24:18 -05:00
sophia
81368d83dd
More complicated provider setup 2022-04-25 12:24:18 -05:00