James Shubin
5e38c1c8fe
examples: Remove old hcl examples
...
The hcl frontend was removed a while back. Might as well remove these
examples too.
2019-02-24 14:10:01 -05:00
James Shubin
ae7ebeedd1
engine: resources: Add CheckApply event detection to resource tests
...
This adds the ability to wait with a timeout for CheckApply happenings
in a resource. This helps avoid unnecessary long sleeping and timing
guesses. This also adds a cleanup function to run at the end.
2019-02-24 14:10:01 -05:00
James Shubin
652b657809
resources: exec: Avoid possible deadlock race
...
Some of the early code I wrote probably wouldn't pass my own reviews
today. Here's one example of a rare deadlock that could sometimes occur
when a Process/CheckApply caused a shutdown, but the bufio tried to send
on a channel that nobody was going to read any more. Now we properly
unblock that send with a context.
2019-02-24 12:28:59 -05:00
James Shubin
62a6e0da1d
misc: Add two test helpers
...
Hopefully these make testing and debugging easier!
2019-02-24 12:28:59 -05:00
James Shubin
0d0d48d9f6
test: Shell tests should use unified timeout command
2019-02-24 12:28:59 -05:00
James Shubin
ab5957f1e9
make: Clean up the Makefiles so the output is more elegant
...
This avoids printing erroneous messages when nothing is actually
happening.
2019-02-24 12:28:59 -05:00
James Shubin
463ba23003
util: Improve the sync primitives.
2019-02-24 12:28:59 -05:00
James Shubin
ccad6e7e1a
test: Enable and fix up some more tests
...
An unstable engine probably masked some of these issues.
2019-02-24 12:28:59 -05:00
James Shubin
aa165b5e17
engine: Add the retry loop around Process
...
This adds back the retry loop around Process. This is done as a
separate commit so you can more easily see the logic of the retry magic
This commit is similar but different to the earlier commit adding retry
around Watch.
2019-02-24 12:28:59 -05:00
James Shubin
f06e87377c
engine: Add limit delay before Process can run
...
This adds back the limit delay around Process.
2019-02-24 12:28:59 -05:00
James Shubin
4c3bf9fc7a
engine: Add the retry loop around Watch
...
This adds back the retry loop around Watch. This is done as a separate
commit so you can more easily see the logic of the retry magic.
2019-02-24 12:28:59 -05:00
James Shubin
253ed78cc6
engine: Rewrite the core algorithm
...
The engine core had some unfortunate bugs that were the result of some
early design errors when I wasn't as familiar with channels. I've
finally rewritten most of the bad parts, and I think it's much more
logical and stable now.
This also simplifies the resource API, since more of the work is done
completely in the engine, and hidden from view.
Lastly, this adds a few new metaparameters and associated code.
There are still some open problems left to solve, but hopefully this
brings us one step closer.
2019-02-24 12:28:59 -05:00
James Shubin
4860d833c7
converger: Rewrite the converger module
...
I found a deadlock in the converger code, and I realized the code was
sufficiently bad that it needed a good clean up.
2019-02-24 12:28:59 -05:00
James Shubin
450d5c1a59
util: Add an easy ACK sync primitive
2019-02-24 12:28:59 -05:00
Toshaan Bharvani
88fcda2c99
lang: funcs: Added an uptime function
...
Signed-off-by: Toshaan Bharvani <toshaan@vantosh.com >
2019-02-24 12:20:58 -05:00
James Shubin
00db953c9f
lang: funcs: funcgen: Clean up some small details
...
Some small changes were needed, here they are. Unfortunately this only
supports the `string` type at the moment.
2019-02-21 13:06:29 -05:00
Julien Pivotto
a0df4829a8
lang: Add more string functions, autogenerated
...
Signed-off-by: Julien Pivotto <roidelapluie@inuits.eu >
2019-02-21 17:50:06 +01:00
James Shubin
b0e1f12c22
test: Add expanders when running in travis
...
Hopefully this makes things more readable.
2019-02-20 09:35:31 -05:00
James Shubin
ee56155ec4
test: Split travis tests into three blocks
...
Our tests were taking near 50 minutes which kills them. This also makes
it easier to spot small issues faster.
2019-02-20 09:35:02 -05:00
Jeff Waugh
16d7c6a933
build: Fix macOS build
...
Add pkg-config to fix builds with augeas and libvirt on macOS.
2019-02-14 23:06:18 +11:00
Johan Bloemberg
f7a06c1da9
etcd: Connection options (socket file, ipv6)
...
- Allow unix domain socket to be used as client url
- Using ::1 as clienturl should not create default local ipv4 listener
- Add shell tests
2019-02-13 18:55:20 +01:00
James Shubin
4c8086977a
engine: resources: file: Update the format string
...
The %s in the format string is not technically correct here.
2019-02-08 12:38:10 -05:00
James Shubin
b1f088e5fa
engine: resources: Add a test running for testing individual resources
...
This adds a simulated engine that can run and test single resources. It
can't test all aspects and features that the engine supports, but is
probably pretty decent for testing the actual CheckApply and Watch
semantics. Be warned that it actually applies changes on your machine,
so please don't write tests that make undesirable changes.
2019-02-08 12:36:37 -05:00
James Shubin
1247c789aa
lang: Remove unnecessary log package
2019-02-08 10:23:44 -05:00
Johan Bloemberg
749038c76d
misc: Make build on macOS work
2019-02-08 00:14:17 +01:00
Johan Bloemberg
0a052494c4
misc: Add goimports dep
2019-02-08 00:14:17 +01:00
James Shubin
90fa83a5cf
lang: funcs: core: Move world API functions
...
Some of the core functions interact with the remote "world" API. Move
them all into the same package.
2019-02-07 12:32:32 -05:00
James Shubin
4eaff892c1
lang: funcs: core: Rename core module files
...
More cleanup...
2019-02-07 12:19:59 -05:00
James Shubin
f368f75209
lang: funcs: core: Drop unnecessary core prefix from imports
...
This unbreaks the mcl bindata code. Of course we could change the parser
to allow this prefix, but this is cleaner. The packages still have a
core prefix, which it seems we could also remove, but this isn't
particularly important for anything.
2019-02-07 09:33:20 -05:00
Lander Van den Bulcke
04048b13ed
lang: funcs: Add strings.split function
...
Signed-off-by: Lander Van den Bulcke <landervdb@inuits.eu >
2019-02-07 10:55:39 +01:00
Lander Van den Bulcke
5acc33c751
lang: funcs: Add tests for sqrt function
...
Signed-off-by: Lander Van den Bulcke <landervdb@inuits.eu >
2019-02-06 17:11:42 +01:00
James Shubin
b449be89a7
examples: Add uncommited nspawn example
2019-02-06 08:57:11 -05:00
Lander Van den Bulcke
dac019290d
lang: funcs: Add sqrt function
...
Signed-off-by: Lander Van den Bulcke <landervdb@inuits.eu >
2019-02-06 14:32:13 +01:00
Julien Pivotto
bdc424e39d
lang: Add to_lower and to_upper functions
...
Signed-off-by: Julien Pivotto <roidelapluie@inuits.eu >
2019-02-06 14:24:15 +01:00
Lander Van den Bulcke
10193a2796
make: Use gem --no-document instead of deprecated flags
...
Signed-off-by: Lander Van den Bulcke <landervdb@inuits.eu >
2019-02-06 12:02:10 +01:00
Julien Pivotto
2c9a12e941
docker: Update FROM to go:1.11
...
Signed-off-by: Julien Pivotto <roidelapluie@inuits.eu >
2019-02-06 10:48:24 +01:00
Felix Frank
8ba6c40f0c
langpuppet: Fix Cli method invocations for wrapped GAPIs
...
Since the langpuppet GAPI creates fresh new CliContext objects,
it has to make sure to provide the original parent context, because
the child GAPIs expect to be able to access its data.
2019-02-05 16:34:55 +01:00
James Shubin
bbfeb49cdf
examples: Add more examples and clean up some
2019-02-04 05:03:37 -05:00
James Shubin
f61e1cb36d
examples: Add missing mcl files
...
I forgot to add these, sorry.
2019-02-03 09:58:04 -05:00
James Shubin
4a3e2c3611
engine: nspawn: Add an nspawn example with an improved exec
...
This adds the cwd fields to exec, better error messages to svc (which is
nested in nspawn) and a fancier nspawn example!
2019-02-01 09:44:55 -05:00
James Shubin
81faec508c
integration: Avoid duplicate events from recwatch
2019-02-01 07:58:38 -05:00
James Shubin
9966ca2e85
examples: Improve dynamic cpus virt example
2019-02-01 07:58:38 -05:00
James Shubin
35c26f9ee5
engine: resources: virt: Clean up virt resource for lang
2019-02-01 07:58:38 -05:00
James Shubin
b5e29771ab
lang: funcs: Add a trim space function to the new strings module
2019-02-01 07:00:05 -05:00
James Shubin
f5f09d3640
lang: funcs: Add str2int example function
...
We might want to move this into a real module eventually.
2019-02-01 06:59:07 -05:00
James Shubin
5a531b7948
lang: funcs: Add a new readfile function
...
This adds a new function that reads files from the local host.
2019-02-01 05:20:22 -05:00
James Shubin
f716a3a73b
lang: funcs: Rename template functions to remove periods
...
Due to a limitation in the template library, we need to rename some
functions. It's probably worth looking into modifying this library or
finding an alternate version.
2019-02-01 03:58:02 -05:00
James Shubin
ce8c8c8eea
engine: resources: Fix a small typo in error message
2019-02-01 03:49:08 -05:00
James Shubin
fc48fda7e5
engine: resources: Fix a possible panic on closed channel
...
I don't know how often it happens, but we should catch it.
2019-02-01 03:48:24 -05:00
James Shubin
78936c5ce8
examples: lang: Update examples to fix imports and port from yaml
...
Some small fixes that are useful for demos!
2019-02-01 03:47:18 -05:00