Commit graph

5519 commits

Author SHA1 Message Date
Chris Roberts
872812eaa4 Fix up some direct conversions to prevent wrong cache returns 2022-06-20 13:08:01 -07:00
Chris Roberts
b8fbe1ace5 Remove some extraneous logging 2022-06-20 13:07:31 -07:00
Chris Roberts
17fc49cf41 Add provider parsing to internal endpoint 2022-06-20 13:05:26 -07:00
Chris Roberts
43979be447 Fix logger usage in plugin manager 2022-06-15 11:14:07 -07:00
Chris Roberts
dc91194f9d Load direct conversions after setup 2022-06-15 11:14:07 -07:00
Chris Roberts
ede3b03f8c Update logger and call internal finalize on configs 2022-06-15 11:14:07 -07:00
Chris Roberts
55512ca0ef Provide easy access to global cache in clients 2022-06-15 11:02:29 -07:00
Chris Roberts
44afa299f0 Perform direct type conversions 2022-06-15 11:02:24 -07:00
Chris Roberts
c24960731f Add vagrantfile client 2022-06-15 10:56:19 -07:00
Chris Roberts
8fcabc2c1d Set global broker and cache values 2022-06-15 10:56:19 -07:00
Chris Roberts
70d725f8a0 Add support for origin value restrictions and custom weighting 2022-06-15 10:56:19 -07:00
Chris Roberts
53aae744a4 Allow callables to modify vertex weight 2022-06-15 10:56:19 -07:00
Chris Roberts
439546d58c Update input vertex to allow origin only setting 2022-06-15 10:56:19 -07:00
Chris Roberts
40cd6e8616 Allow marking inputs as only accepting origin value 2022-06-15 10:56:13 -07:00
Chris Roberts
9da90f0b21 Return false if RHS does not implement hash_code 2022-06-15 10:55:00 -07:00
Chris Roberts
45b9c48f03 Add Class to known types mapper. Indifferent access for hashes. 2022-06-15 10:55:00 -07:00
Chris Roberts
df3cc08b1f Add mappers for config data and procs 2022-06-15 10:55:00 -07:00
Chris Roberts
0a80ce1ea6 Remove config mappers from provisioner 2022-06-15 10:55:00 -07:00
Chris Roberts
a826287f34 Add mappers for the vagrantfile 2022-06-15 10:55:00 -07:00
Chris Roberts
2d5cb6b0fa Force the string proto value to be a string 2022-06-15 10:55:00 -07:00
Chris Roberts
dc5c643364 Add direct conversions of types 2022-06-15 10:55:00 -07:00
Chris Roberts
f949eb9042 Load new mappers and allow for direct conversion 2022-06-15 10:55:00 -07:00
Chris Roberts
4e869330cd Load config service and use global cache 2022-06-15 10:55:00 -07:00
Chris Roberts
8061a95a81 Update internal service plugins and vagrantfile loading 2022-06-15 10:55:00 -07:00
Chris Roberts
41a47617b0 Add config service for handling configuration 2022-06-15 10:55:00 -07:00
Chris Roberts
582f253605 Update types used for provisioner service 2022-06-15 10:55:00 -07:00
Chris Roberts
cde5479b8f Set value directly as it will have indifferent access 2022-06-15 10:55:00 -07:00
Chris Roberts
82efdf3e4b Remove extraneous logging from client setup 2022-06-15 10:55:00 -07:00
Chris Roberts
79f5264c5d Since we are inspecting, don't wrap value 2022-06-15 10:55:00 -07:00
Chris Roberts
a3dd70dd50 Allow for nested plugins 2022-06-15 10:55:00 -07:00
Chris Roberts
8024bd3bf5 Clean up names in funcspec helpers 2022-06-15 10:55:00 -07:00
Chris Roberts
babe5acdaf Remove custom to_proto methods from configs 2022-06-15 10:55:00 -07:00
Chris Roberts
555d8ae7a3 Adjust provisioner to upload file before modifying it 2022-06-15 10:55:00 -07:00
Paul Hinze
71cc8ee7bb
Fix some bugs in provider options handling
- Defaultable needs to default to true when it's not specified
- We need to allow a non-defaultable provider to be selected if it shows
  up in the config
2022-06-08 17:25:16 -05:00
Paul Hinze
8b08b3117c
Use plugin options for Synced Folder priorities
Now that plugin options are available, we can use them to interpret
synced folder priorities and remove the shim we had in place.
2022-06-06 17:39:09 -05:00
Paul Hinze
8dbe72a5a0
Use Component Options to implement ProviderOptions
* Populates ComponentOptions into plugin structs
* Maps options for legacy Provider Plugins into PluginOptions
* Demos use of PluginOptions in a stub provider
* Honors plugin priority and defaultable settings
2022-06-03 16:37:05 -05:00
sophia
194882214a Add machine readable bool endpoint to terminal ui 2022-05-31 15:47:47 -05:00
sophia
32bb18e9b9 Only output machine readable data if the terminal is not interactive 2022-05-31 10:53:21 -05:00
sophia
65e851d646 Output machine readable data as table 2022-05-31 10:28:26 -05:00
Paul Hinze
49aa226613
Temporary workaround to let Docker provider work
Comment has the details, but this should hopefully be short lived
2022-05-25 16:19:50 -05:00
Paul Hinze
02a06bca45
Fixes for provider capability invocations
It looks like I might have been the first to hit provider cabability
invocation in testing these changes, and so I found these few missing
methods on the client. They're just copied over from the other
capability hosts.

Calling capabilities on a provider also revealed that the wrong Machine
type was being pulled out of the funcspec args, so we had to correct
that too in order to get the capability calls working.
2022-05-25 16:19:50 -05:00
Paul Hinze
06350a7afc
Port default provider selection
- Pulls in the SDK changes to Project.DefaultProvider and Project.Target
- Implements the hefty default provider method
- Un-hard-codes provider from Target, and sets it when a Target is
  looked up from a Project
2022-05-25 16:19:50 -05:00
Paul Hinze
102e100108
client/target_index: Make yard comments conformant 2022-05-25 16:19:49 -05:00
sophia
2c0f43db3b Make flags that are only defined as --no- work 2022-05-23 11:41:08 -05:00
sophia
0b6781444a Resolve issue with Vagrant core providing more flag options than Vagrant legacy
This occurs when boolean flags in legacy Vagrant does
not define both a positive and negative boolean flag.
For example, --force and --no-force flags
2022-05-18 15:49:17 -05:00
sophia
28beec7bad Set alias for boolean flags that have a 'no-' option 2022-05-17 15:04:07 -05:00
sophia
887903c0e1 Set aliases for command flags 2022-05-17 14:06:04 -05:00
sophia
d708bab84a Add error message for errors originating from a remote 2022-05-13 17:14:50 -05:00
sophia
ba1384eb88 Fix machine mappers 2022-05-04 11:51:43 -05:00
sophia
e020c6600e Hacks to let a remote machine be instantiated with or with out a client 2022-05-04 11:25:54 -05:00
sophia
92a0b1c541 Allow remote machine to be initialized with just a machine client 2022-05-04 11:23:06 -05:00
sophia
31393eb3a9 Fill in some missing target client functions 2022-05-04 11:22:41 -05:00
sophia
0117c01e4b Fill in environment remote class 2022-05-04 11:22:41 -05:00
sophia
f340e192f2 Fill in project ruby client 2022-05-04 11:22:41 -05:00
sophia
0a37521ef2 Remove reload machine function from the grpc api 2022-05-04 09:32:36 -05:00
sophia
6dfca17d54 Get machine state from go impl 2022-05-04 09:32:36 -05:00
sophia
b4fbf76a33 Plug machine#uid methods into remote go backend 2022-05-04 09:32:36 -05:00
sophia
adf2340712 Update Ruby clients for proto changes 2022-04-25 14:12:28 -05:00
sophia
cddcfef0a1
Update Box#UpdateInfo to use box metadata client 2022-04-25 12:26:57 -05:00
sophia
35c094f570
Get box update info 2022-04-25 12:26:57 -05:00
Chris Roberts
9ab74271cf
Add some comments and expand some method documentation 2022-04-25 12:26:57 -05:00
Chris Roberts
f220ac2f94
Add name based re-weight helper. Add documentation/comments. 2022-04-25 12:26:56 -05:00
Chris Roberts
f9e55a8f9d
Fill in vertex base methods 2022-04-25 12:26:56 -05:00
Chris Roberts
66c9fd45d6
Map key and value when converting Hash types 2022-04-25 12:26:56 -05:00
Chris Roberts
1bf4c8d090
Provide Graph#each_vertex helper to graph 2022-04-25 12:26:56 -05:00
Chris Roberts
12cb795392
Add name support for inputs 2022-04-25 12:26:56 -05:00
Paul Hinze
eacb798a71
Fix action hooks running twice in destroy_on_error scenarios
The "destroy_on_error" functionality for `vagrant up` is implemented in
the `recover()` action chain, and works by firing off a destroy action
from inside that chain.

This is all well and good, but it copies its existing `env` which has
had `action_name` set for the up action. This was causing action_hooks
for up actions to attach to this destroy action stack.

Setting the action_name explicitly in the env before firing the runner
should correct the behavior. I'm not sure if raw_action_name is used
anywhere but I figured it was better to be consistent vs conservative in
what we change.
2022-04-25 12:26:56 -05:00
Chris Roberts
305fddb49a
Retry cached path executions with full graph 2022-04-25 12:26:55 -05:00
Chris Roberts
f3a3bb83fd
Only register types for blind maps after a blind map 2022-04-25 12:26:55 -05:00
Chris Roberts
e8a4c35cf6
Remove any unpacking of value prior to mapping 2022-04-25 12:26:55 -05:00
Chris Roberts
2baea78820
Properly clone mappers 2022-04-25 12:26:55 -05:00
Chris Roberts
823e589a26
Freeze base mappers list to prevent direct modifications 2022-04-25 12:26:55 -05:00
Chris Roberts
2f9daa8498
Include value in error message when mappers not found 2022-04-25 12:26:55 -05:00
Chris Roberts
61b5d3549f
Don't use blind mapping when generating value 2022-04-25 12:26:54 -05:00
Chris Roberts
3917449552
Provide source information when mapping, register blind maps 2022-04-25 12:26:54 -05:00
Chris Roberts
f6a46634a5
When performing a blind map, if previous mapping found, use it 2022-04-25 12:26:54 -05:00
Chris Roberts
1d555b025f
Use global list of mappers and cache as defaults 2022-04-25 12:26:54 -05:00
Chris Roberts
7404ef89a6
Isolate generate class from instance so we can do class checks 2022-04-25 12:26:54 -05:00
Chris Roberts
8cc6116cdf
Store previous successful lookups for future graph generation 2022-04-25 12:26:54 -05:00
Chris Roberts
aaed7b2d82
Update Method vertex hash code and allow callable access 2022-04-25 12:26:54 -05:00
Chris Roberts
3a6308b7fc
Use blocks for logging content to reduce processing 2022-04-25 12:26:54 -05:00
sophia
7b470d4b25
Ensure box metadata has optional arguments 2022-04-25 12:26:53 -05:00
sophia
03ecb877e6
Update box metadata Name endpoint to boxName 2022-04-25 12:26:53 -05:00
sophia
66524426d0
Update ruby remote box metadata for proto changes 2022-04-25 12:26:53 -05:00
sophia
0556c804fd
Add load metadata client endpoint 2022-04-25 12:26:52 -05:00
sophia
1f5d66fd76
Get box metadata client from box 2022-04-25 12:26:52 -05:00
sophia
428c3b02fd
Use remote box metadata implementation 2022-04-25 12:26:52 -05:00
sophia
3e641fbe6b
Stub machine index proto mapper for environment test 2022-04-25 12:26:51 -05:00
sophia
333fc16096
Map provisioner config to Hash using mappers instead of assuming Struct type 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
9a61574f52
Add core plugin manager to default mapper list 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
05244e67c1
Add mappers for core plugin manager 2022-04-25 12:26:50 -05:00
sophia
b3003e8cb6
Add core plugin service client 2022-04-25 12:26:50 -05:00
Paul Hinze
1341bfe0af
Tweak Ruby->Go error handling so exit codes match
In legacy Vagrant, any exception raised that's a subclass of
Vagrant::Errors::VagrantError is considered user-facing and so causes
the error message to be printed to the console and the process to use
exit code 1. Anything outside of that causes the process to use exit
code 255. (See `bin/vagrant` for the code.)

Here we mirror that behavior by treating errors that have a
LocalizedMessage as user-facing and those without as unexpected. This
allows the basic virtualbox component to pass in vagrant-spec!
2022-04-25 12:26:49 -05:00
Paul Hinze
09c03893b2
Simplify truncate_to per feedback
No need to spin up a full regexp if it's not necessary!
2022-04-25 12:26:49 -05:00
Paul Hinze
253c6658b3
Truncate error message to address RST_STREAM issues
This is the result of a whole journey of learning about GRPC errors! See
the hefty inline comment which has all the context for future
generations.
2022-04-25 12:26:49 -05:00
Paul Hinze
7f56168959
Work around a few global flag collisions for ssh command
* `vagrant ssh` has a --no-tty flag colliding with the one defined in
   `bin/vagrant` - in fact none of the flags in `bin/vagrant` are
   processed in `serve` mode, so remove the code that captures them from
   the CommandInfo OptionParser dance
 * `vagrant ssh` has a `--plain` flag colliding with the one defined in
   `internal/cli/base.go` - this flag was inherited from Waypoint, so we
   can just rename it to line up with the (inversely defined) `--color`
   flag used in legacy vagrant
2022-04-25 12:26:48 -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
128599ab68
Get local box metadata in remote box 2022-04-25 12:26:47 -05:00
sophia
b6d42d0695
Clean up machine client 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
4dcd120448
Load machine from machine ref 2022-04-25 12:26:46 -05:00
sophia
8b5bc0cd1c
Set box metadata url 2022-04-25 12:26:45 -05:00
sophia
3516aa7131
Set defailt Vagrant log level 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
0fc068822a
Fix rsync ownership settings in synced folders
When the opts are being pass through the go side, we get back empty
string values instead of nil values, so the `||=` assignment was not
working to populate the default owner and group. This was causing the
rsync_post hook to fail on linux guests.
2022-04-25 12:26:43 -05:00
Chris Roberts
f457cbb72b
Use machine UI when processing actions 2022-04-25 12:26:43 -05:00
Chris Roberts
df0bbe343f
Support bold style and add #clear_line 2022-04-25 12:26:43 -05:00
Chris Roberts
71fb214d95
Add #input to terminal client and use event stream 2022-04-25 12:26:43 -05:00
Paul Hinze
06ad1b4565
Fixup tests for Ruby 3.0
This is a pass through test failures and deprecation warnings:

 * Make all ambiguous `.with(..., key: val)` use explicit hashes to
   prevent test failures for argument mismatch in Ruby 3.0
 * Scope down all unbounded `raise_error` to address warnings (remove
   one test that was revealed to be referencing a nonexistent variable
   once the raise_error was scoped.)
 * Update all `any_instance` usage to new syntax to address warnings
 * Allow the service cache to be cleared and do so between some tests
 * Fix a small bug in with_plugin's plugin not found code path (revealed
   by a scoped and_raise)
2022-04-25 12:26:40 -05:00
Chris Roberts
20d717a521
Update provisioner service plugin setup and caching 2022-04-25 12:26:39 -05:00
Chris Roberts
74ff5da434
Trace item registration in the cache 2022-04-25 12:26:39 -05:00
Chris Roberts
39a85d1cf3
Support caching plugins within services 2022-04-25 12:26:39 -05:00
Chris Roberts
2b5bd64ec8
Remove local provider injection to machine 2022-04-25 12:26:39 -05:00
Chris Roberts
ab8dee7a72
Add some missing mappers for converting to proto 2022-04-25 12:26:39 -05:00
Chris Roberts
6dd5a3ae9b
Load plugins within #with_plugin helper 2022-04-25 12:26:39 -05:00
Chris Roberts
d070b2cc6f
Initialize cache in the proper location within Service class 2022-04-25 12:26:38 -05:00
Chris Roberts
b0b5d1191e
Update and document cacher 2022-04-25 12:26:38 -05:00
Chris Roberts
f88254eb23
Let #with_plugin load plugins by type 2022-04-25 12:26:38 -05:00
sophia
b7d12a0907
Get provider from remote machine 2022-04-25 12:26:38 -05:00
Chris Roberts
f183a8a810
Update provisioner service implementation 2022-04-25 12:26:38 -05:00
Chris Roberts
2f4670e48a
Define cache for services and provide it 2022-04-25 12:26:38 -05:00
Chris Roberts
8542650e38
If destination is any, only allow proto destinations 2022-04-25 12:26:38 -05:00
Chris Roberts
3e7f72b9b0
Extract direct arguments to use for spec 2022-04-25 12:26:37 -05:00
Chris Roberts
987998aa41
Grab cacher from local instance 2022-04-25 12:26:37 -05:00
Chris Roberts
b976be72bd
Simplify cacher 2022-04-25 12:26:37 -05:00
Chris Roberts
d82702064f
Only deactivate remote plugin manager if activated 2022-04-25 12:26:37 -05:00
Chris Roberts
83ca40e239
Refactor Ruby service implementations
Update the Ruby service implementations to use the funcspec util
    module for generating spec content. A helper method is now used
    for generating a parent class for services to subclass which
    automatically includes all required modules for usage.
2022-04-25 12:26:37 -05:00
Paul Hinze
ff86d86ac8
Provisioner Plugins 2022-04-25 12:26:37 -05:00
Chris Roberts
2b38005dfb
Include namespace for wrapper type 2022-04-25 12:26:37 -05:00
Chris Roberts
4679d39039
Fix name and method call in folders mappers 2022-04-25 12:26:37 -05:00
sophia
94698704ab
Fix some small errors 2022-04-25 12:26:37 -05:00
Chris Roberts
c7fdd92eb5
Add folders type to mappers 2022-04-25 12:26:36 -05:00
Chris Roberts
14d2d66d29
Use folders and options types in client/services 2022-04-25 12:26:36 -05:00
Chris Roberts
c32ba38b70
Add mappers for Folders type 2022-04-25 12:26:36 -05:00
Chris Roberts
0cb053c20c
Add a Folders type 2022-04-25 12:26:36 -05:00
Chris Roberts
c00eb5a5a8
Store options value as hash 2022-04-25 12:26:36 -05:00
Chris Roberts
f507a3d7ff
Add todo note about deleted entries 2022-04-25 12:26:36 -05:00
Chris Roberts
b7f074e492
Remove debugging artifacts 2022-04-25 12:26:36 -05:00
Chris Roberts
ac8790b694
Remove deleteion of host and machine index entries 2022-04-25 12:26:36 -05:00
Chris Roberts
9a6f5fa316
Don't unany mapping if source value is proto 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
095a0f8847
WIP checkpoint with callable remote provider action 2022-04-25 12:26:35 -05:00
Chris Roberts
d2f795e11b
Provide client to manager enable helper method 2022-04-25 12:26:35 -05:00
sophia
55fb52f174
Update the synced folder client to pass direct values 2022-04-25 12:26:34 -05:00
Paul Hinze
f314c090e2
Set local machine within provider service
See inline comment for more context
2022-04-25 12:26:34 -05:00
Paul Hinze
8730b9f100
Fix MachineState mapper so IsRunning actions work
The IsRunning action checks if `env[:machine].state.id == :running` but
this check was never passing as the protobuf-washed version of machine
state was yielding a machine state w/ a string value like `"running"`.

Easy fix in the mapper!
2022-04-25 12:26:34 -05:00
Paul Hinze
a5f0996f5f
Fix ssh_info protobuf empty value handling
In https://github.com/hashicorp/vagrant-plugin-sdk/pull/115 we make the
SSHInfo fields optional, which allows us to remove zero values and fix
default value population within Machine#ssh_info.
2022-04-25 12:26:34 -05:00
sophia
29eb55909c
Refactor guest detect client 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
8911ebd2b7
Get hash of synced folders 2022-04-25 12:26:33 -05:00
sophia
87f8c9cc5e
Implement synced folder prepare endpoint 2022-04-25 12:26:33 -05:00
sophia
19f3d2f0b6
Refactor named plugin bits to apply to all components 2022-04-25 12:26:33 -05:00
sophia
6c28de9ea9
Refactor named plugin service/client endpoints 2022-04-25 12:26:33 -05:00
sophia
153d218d68
Set plugin name 2022-04-25 12:26:32 -05:00
sophia
e95d906f74
Get plugin name from client 2022-04-25 12:26:32 -05:00
Chris Roberts
e2b135eb80
Accept options for actions on provider service 2022-04-25 12:26:31 -05:00
Chris Roberts
38d7bcc51f
Use machine as default argument for synced folder caps 2022-04-25 12:26:31 -05:00
Chris Roberts
ea3932be22
Allow options hash for action on provider client 2022-04-25 12:26:31 -05:00
Chris Roberts
e7686882fa
Log error and stacktrace on mapping errors 2022-04-25 12:26:31 -05:00
Chris Roberts
c6f6bf0c47
Include source and destination in no path exception message 2022-04-25 12:26:31 -05:00
Chris Roberts
32ea6a4509
Add new options type with mappers 2022-04-25 12:26:31 -05:00
Chris Roberts
312080ba60
Only write graph when logging mapper output 2022-04-25 12:26:31 -05:00
Chris Roberts
710adc8f7b
Retain simple hash type for now 2022-04-25 12:26:31 -05:00
Chris Roberts
4c9f14572a
Update target to addr in plugin protos 2022-04-25 12:26:30 -05:00
Chris Roberts
9e58090d09
Update the provider client to use funcspec utility 2022-04-25 12:26:30 -05:00
Chris Roberts
9f5e7780aa
Modifications to provide expected behavior of communicator client 2022-04-25 12:26:30 -05:00
Chris Roberts
b0f59c40f6
Update the search to use a reversed graph
Reverse the graph before searching so we are only working with
    a single possible destination. A DFS is used to initially prune
    down the graph.
2022-04-25 12:26:30 -05:00
Chris Roberts
3865008b89
Update weights and remove vertices from destination output 2022-04-25 12:26:30 -05:00
Chris Roberts
a98d91e15f
Unpack named arguments and provide value to flag generation request 2022-04-25 12:26:30 -05:00
Chris Roberts
b26a1ac515
Log error when input type is missing 2022-04-25 12:26:30 -05:00
Chris Roberts
2f0fdfc153
Add unique vertex type for root 2022-04-25 12:26:30 -05:00
Chris Roberts
cd99ff6525
Add logging to funcspec helper and build named types correctly 2022-04-25 12:26:30 -05:00
Chris Roberts
5609a32af0
Fix input type for duration mapping 2022-04-25 12:26:30 -05:00
Chris Roberts
32c77ef96a
Remove need for environment when mapping machine 2022-04-25 12:26:29 -05:00
Chris Roberts
0a9c02f957
Return hash with indifferent access from mapper 2022-04-25 12:26:29 -05:00
Chris Roberts
afdaf046dc
Log errors from submapping on direct type 2022-04-25 12:26:29 -05:00
Chris Roberts
14895eded1
Grab value from cache when mapping 2022-04-25 12:26:29 -05:00
Chris Roberts
58568b06fa
Define expected type with name 2022-04-25 12:26:29 -05:00
Chris Roberts
c9d93f2f8a
Request machines instead of targets 2022-04-25 12:26:29 -05:00
Chris Roberts
025808ba27
Add types for communicator information 2022-04-25 12:26:29 -05:00
Chris Roberts
8d8e9ae8ea
Properly include Empty argument to calls 2022-04-25 12:26:29 -05:00
Chris Roberts
ad402fd6d0
Update component clients to use FuncSpec module 2022-04-25 12:26:29 -05:00
Chris Roberts
6e16a8835c
Update clients to subclass Client 2022-04-25 12:26:29 -05:00
Chris Roberts
c413335e14
Add mappers for new types 2022-04-25 12:26:29 -05:00
Chris Roberts
451f3041f9
Add support for named vertices to mappers graph 2022-04-25 12:26:28 -05:00
Chris Roberts
286886ae89
Add named vertex type 2022-04-25 12:26:28 -05:00
Chris Roberts
32251ecb64
Include named value to mapper graph 2022-04-25 12:26:28 -05:00
Chris Roberts
1f731bbf9f
Add more default type maps 2022-04-25 12:26:28 -05:00
Chris Roberts
7c69fde71c
Break out type finding from unany method 2022-04-25 12:26:28 -05:00
Chris Roberts
4cf1090725
Add new custom types for easier conversions 2022-04-25 12:26:28 -05:00
Chris Roberts
58dd2e491f
Update cacher implementation 2022-04-25 12:26:28 -05:00
Chris Roberts
e29011d0b3
Add FuncSpec module
This module provides helper methods for handling FuncSpecs
    and generating FuncSpec::Args protos. At this stage it is
    intended for use in client implementations
2022-04-25 12:26:28 -05:00
Chris Roberts
e533d9f0a8
Convert client to class and populate with modules 2022-04-25 12:26:28 -05:00
sophia
891eb27e9a
Rename plugin "target" to "addr" 2022-04-25 12:26:27 -05:00